읽게 된 동기

코딩의 신 아샬님의 유튜브를 가끔 보는데 코딩의 신 아샬님의 책 목록 유튜브에서 ‘어떻게 문제를 풀 것인가’, 이 책이 필독서라고 하셔서 고민하지않고 바로 구입했다.

리뷰

전체적으로 이 책은 교수의 입장에서 정말 ‘어떻게 문제를 풀 것인가?’를 다루고 있다. 몇 가지 예시와 마지막에는 직접 연습 문제를 줌으로써 이해시키고 있다. 다만 이 책의 문제는 번역 자체가 2002년도에 나오다보니 번역 어투가 상당히 어색했다. 이해하기가 어려울 정도는 아닌데 읽기 힘든 점이 아쉬웠다. 그리고 비슷한 내용이 반복되는 부분도 있었기도 하고…

이 책을 읽으면 정말 문제를 어떻게 더 효율적으로 풀어야 될지 알게 된다. 개발적인 측면에 있어서도 많은 도움이 되겠지만 알고리즘에 더욱 효과적일 것이다. 소장한다기보다 도서관에서 빠르게 이러이러한 언급이 있구나 정도로만 파악해도 되겠다.

필사

  1. 어떻게 문제를 풀 것인가?
    1. 문제에 대한 이해
      1. 구하고자 하는 것(미지의 것)은 무엇인가?
      2. 주어진 자료는 무엇인가?
      3. 주어진 조건은 무엇인가?
      4. 그림을 그려보아라
      5. 적절한 기호를 붙여라
      6. 조건을 여러 부분으로 분해하라
    2. 계획의 작성
      1. 관련된 문제, 유사한 문제를 알고 있는가?
      2. 문제를 다르게 진술할 수 있을까?(다르게 생각할 수 있을까?)
      3. 문제를 부분적으로 풀 수 있는가?
      4. 조건 가운데 일부분만 남기고 다른 것은 버려보아라.
      5. 주어진 자료를 모두 사용했는가?
      6. 주어진 조건을 모두 사용했는가?
      7. 문제에 포함된 핵심적인 개념을 모두 고려했는가?
    3. 계획의 실행
      1. 매 단계를 점검하라.
      2. 각 단계가 옳다는 것을 증명할 수 있는가?
    4. 반성
      1. 결과를 점검할 수 있는가?
      2. 결과를 다른 방법으로 이끌어 낼 수 있는가?
      3. (직관적으로) 한 눈에 알 수 있는가?
      4. 결과나 방법을 다른 문제에 활용할 수 있는가?
  2. 교사는 학생으로 하여금 ‘적절한 몫의 활동’을 할 수 있도록, 너무 지나치지도 모자라지도 않게 도와주어야 할 것이다.
  3. 교사는 스스로 학생의 입장에 서 보고, 학생의 경우를 살펴보고, 학생의 마음속에서 무엇이 일어나고 있는가를 이해하려고 노력하여야 하며, 질문을 하거나 ‘학생 자신에게 일어날 수도 있었던’ 사고 단계를 지적해주어야 한다.
  4. 문제가 잘 선정되어야 한다. 너무 어려워도 너무 쉬워도 안 되며 자연스럽고 흥미로워야 하고, 어느 정도 시간을 들여 자연스럽고 재미있게 표현되도록 노력해야 할 것이다.
  5. 무엇보다도 문제를 설명하는 언어적 진술이 이해되어야 한다.
  6. 교사는 학생들이 충분히 앞을 내다 보게 되었다는 확신이 선 다음에 실제로 계산해 보도록 권해야 한다.
  7. ‘피타고라스의 정리를 적용할 수 있는가?’와 같은 발문은 나쁜 발문이다. 발문에 함의된 암시를 이해할 수 있기때문이다.
  8. ‘증명 문제’에서는 가정과 결론이 핵심 부분이며, ‘답을 구하는 문제’에서는 미지인 것, 자료, 조건이 핵심 부분이다.
  9. 만약 문제가 복잡하다면 ‘큰’단계, ‘작은’단계로 구분해서, 큰 단계가 여러 개의 작은 단계로 이루어지도록 하자.
  10. 만일 제시된 문제를 풀 수 없다면 너무 괴로워하지 말고 좀 쉬운 문제를 푸는 것으로 위안을 찾도록 하자.
  11. 교수의 첫 번째 규칙은 가르치려고 하고 있는 것을 아는 것이다. 교수의 두 번째 규칙은 가르치려고 하는 것보다 좀 더 많은 것을 아는 것이다.
  12. 귀납법 : n에 대해서 참이면 n+1에 대해서도 참이어야 한다.(n으로부터 n+1으로의 증명)
  13. 귀류법 : 가정으로부터 해답이 없다는 것을 보이게 되는 분석법