어떻게 문제를 풀 것인가?를 읽고...
읽게 된 동기
코딩의 신 아샬님의 유튜브를 가끔 보는데 코딩의 신 아샬님의 책 목록 유튜브에서 ‘어떻게 문제를 풀 것인가’, 이 책이 필독서라고 하셔서 고민하지않고 바로 구입했다.
리뷰
전체적으로 이 책은 교수의 입장에서 정말 ‘어떻게 문제를 풀 것인가?’를 다루고 있다. 몇 가지 예시와 마지막에는 직접 연습 문제를 줌으로써 이해시키고 있다. 다만 이 책의 문제는 번역 자체가 2002년도에 나오다보니 번역 어투가 상당히 어색했다. 이해하기가 어려울 정도는 아닌데 읽기 힘든 점이 아쉬웠다. 그리고 비슷한 내용이 반복되는 부분도 있었기도 하고…
이 책을 읽으면 정말 문제를 어떻게 더 효율적으로 풀어야 될지 알게 된다. 개발적인 측면에 있어서도 많은 도움이 되겠지만 알고리즘에 더욱 효과적일 것이다. 소장한다기보다 도서관에서 빠르게 이러이러한 언급이 있구나 정도로만 파악해도 되겠다.
필사
- 어떻게 문제를 풀 것인가?
- 문제에 대한 이해
- 구하고자 하는 것(미지의 것)은 무엇인가?
- 주어진 자료는 무엇인가?
- 주어진 조건은 무엇인가?
- 그림을 그려보아라
- 적절한 기호를 붙여라
- 조건을 여러 부분으로 분해하라
- 계획의 작성
- 관련된 문제, 유사한 문제를 알고 있는가?
- 문제를 다르게 진술할 수 있을까?(다르게 생각할 수 있을까?)
- 문제를 부분적으로 풀 수 있는가?
- 조건 가운데 일부분만 남기고 다른 것은 버려보아라.
- 주어진 자료를 모두 사용했는가?
- 주어진 조건을 모두 사용했는가?
- 문제에 포함된 핵심적인 개념을 모두 고려했는가?
- 계획의 실행
- 매 단계를 점검하라.
- 각 단계가 옳다는 것을 증명할 수 있는가?
- 반성
- 결과를 점검할 수 있는가?
- 결과를 다른 방법으로 이끌어 낼 수 있는가?
- (직관적으로) 한 눈에 알 수 있는가?
- 결과나 방법을 다른 문제에 활용할 수 있는가?
- 문제에 대한 이해
- 교사는 학생으로 하여금 ‘적절한 몫의 활동’을 할 수 있도록, 너무 지나치지도 모자라지도 않게 도와주어야 할 것이다.
- 교사는 스스로 학생의 입장에 서 보고, 학생의 경우를 살펴보고, 학생의 마음속에서 무엇이 일어나고 있는가를 이해하려고 노력하여야 하며, 질문을 하거나 ‘학생 자신에게 일어날 수도 있었던’ 사고 단계를 지적해주어야 한다.
- 문제가 잘 선정되어야 한다. 너무 어려워도 너무 쉬워도 안 되며 자연스럽고 흥미로워야 하고, 어느 정도 시간을 들여 자연스럽고 재미있게 표현되도록 노력해야 할 것이다.
- 무엇보다도 문제를 설명하는 언어적 진술이 이해되어야 한다.
- 교사는 학생들이 충분히 앞을 내다 보게 되었다는 확신이 선 다음에 실제로 계산해 보도록 권해야 한다.
- ‘피타고라스의 정리를 적용할 수 있는가?’와 같은 발문은 나쁜 발문이다. 발문에 함의된 암시를 이해할 수 있기때문이다.
- ‘증명 문제’에서는 가정과 결론이 핵심 부분이며, ‘답을 구하는 문제’에서는 미지인 것, 자료, 조건이 핵심 부분이다.
- 만약 문제가 복잡하다면 ‘큰’단계, ‘작은’단계로 구분해서, 큰 단계가 여러 개의 작은 단계로 이루어지도록 하자.
- 만일 제시된 문제를 풀 수 없다면 너무 괴로워하지 말고 좀 쉬운 문제를 푸는 것으로 위안을 찾도록 하자.
- 교수의 첫 번째 규칙은 가르치려고 하고 있는 것을 아는 것이다. 교수의 두 번째 규칙은 가르치려고 하는 것보다 좀 더 많은 것을 아는 것이다.
- 귀납법 : n에 대해서 참이면 n+1에 대해서도 참이어야 한다.(n으로부터 n+1으로의 증명)
- 귀류법 : 가정으로부터 해답이 없다는 것을 보이게 되는 분석법