저는 바보라서 프로그램을 짤 때 찍다시피 짜거든요. 그런데 운이 좋으면 돌아가요.
어제는 공리꼴과 논리식이 주어졌을 때 후자가 전자의 인스턴스인지 아닌지를 판단하는 코드를 짰어요.
https://gist.github.com/mecheng98/26784a12ef3e613b7484bd231743c67b
부끄럽지만, 아무리 생각해봐도 도대체 왜 돌아가는지를 알 수가 없습니다.
남들에게 프로그램이 돌아가는 원리를 설명하고 싶은데, 수학적 사고력이 부족하네요.
어떻게 해야 프로그래밍 증명을 하는 데 필요한 수학적 사고력을 늘릴 수 있을까요?
일단 전에 추천해주신 이산수학 책부터 펴는 게 맞을까요??
프로그램 경험 있으신 분들은 조언해주시면 감사하겠습니다.
코드 읽는건 일이라서 안했고요, 알고리즘이 돌아가는것을 확인하는걸 코드로 확인하는게 이상하게 보여요. 작은 subroutine들은 코드짜고 테스트하고 하는식으로 잘 짜였는지 확인하는게 당연하지만, 큰 전체 알고리즘을 코드를 짜서 돌아가는지 확인하는건 너무 비효율적이예요. 나중에 틀린경우 어디가 틀렸는지 알수도 없구요
사람이 보고 바로 이해할수있는 레벨로 알고리즘을 쓰고 거기서 그게 돌아가는걸 확인하는게 먼저 아닐까요
답변해주셔서 감사합니다
궁금한게 있는데 돌아갈 거 같아서 짜보고 돌아가면 진짜 왜 돌아가는지를 후에 판단하시는거임? 보통 반대로 하지않나요?
전 바보라서 찍다시피 프로그래밍해요 ㅠㅠ
저도 물론 중간중간 찍듯이 하는 건 있지만 그건 보통 알고리즘을 찍는게 아니라 코딩? 이라해야하나 그걸 찍는 게 보통인데
근데 생각해보면 저도 가끔 알고리즘 찍기도 하네요. 근데 보통 찍은 건 틀리는 경우가 많던데
판단 알고리즘을 먼저 구상하고 맞을 것 같으면 그때 짜는거 아닌가..? 100% 논증하고 짜진 않겠지만요
그리고 수리논리 관련한건 반례가 더 국소적일 수 있으니 알고리즘 먼저 제대로 구상하는게 맞을 것 같아요
일반적인 ps문제같은건 가끔 찍기도하지만..
조언해주셔서 감사합니다