SICP는 처음에는 Lisp를 공부하다가 알게된 책이지만 지금은 프로그래밍의 기초를 한번 다지고 싶어서 한번 잡아본 책이다. 엄청 어렵다는 말도 있고, 생각보다 얻을게 없다는 사람들도 있지만 그래도 이 책에서 다루는 내용과 공부할 만한 가치가 분명 있다는 후기를 믿고 한번 공부해보기로 했다.
하지만 역시 소문대로 SICP의 내용은 어려웠다. 문제는 몇개를 제외하고는 어느정도 풀 수 있었지만 글의 내용을 이해하는게 가장 힘들었다. 첫 단원부터 설명하는 내용이 잘 이해가 되지 않아 몇번이고 읽어서야 어느정도 이해할 수 있었다. 그래서 몇번이고 포기할까 생각했다. 그러다 우연히 SICP에 관한 자료들을 몇개 발견했다.
전북대학교 인지컴퓨팅연구실의 한 수업중 하나다. 실제로는 다른 대학교에서 사용하는 자료를 사용하는 것 같다. 여기서 얻을 수 있는 강의자료는 영어로 되어있지만 나름 이해할 수 있도록 풀어써저있다. 실제로 책에서 힘들게 이해한 내용들이 이 강의자료에 어느 정도 있어서 미리 알지 못한 것이 아쉽다.
mit에서는 이젠 SICP로 공부하지 않지만 혼자 공부할 수 있도록 강의자료를 아직 남겨두고 있다. 강의 슬라이드는 전북대학교에서 제공하는 내용과 거의 같다. 강의자료는 둘 중 하나만 보면 될 것 같다. 하지만 강의 슬라이드 뿐만 아니라 과제와 풀이도 있고 pdf 버전 영어책도 제공한다.
이제는 이 강의 자료와 책으로 공부할 예정이다. 일단 1단원 문제는 모두 풀긴 했으나, 풀기만 했지 실제로 맞을지는 모른다. 그렇기에 내용은 다시 한번 훑어보고 문제를 다시 풀어 블로그에 상세하게 올려보도록 할 것이다.
2020/02/17 추가
이 책을 감수한 이광근 교수님이 직접 강의했던 영상을 발견했다. 일단 SICP를 교재로 사용하고 있으나 모든 내용을 가르지는지는 모르겠다.