이 포스팅은 2016년 4월 13일부터 컴퓨터 프로그램의 구조와 해석(Structure and Interpretation of Computer Science 2/E를 읽고 요약한 것이다.

머리말

«컴퓨터 프로그램의 구조와 해석(Structure and Interpretation of Computer Science 2/E (이하 SICP)»은 1980년부터 매사추세츠 공과 대학(Massachusetts Institute of Technology, 약칭 MIT) 컴퓨터 과학 입문 과정을 바탕이 된 내용을 다룬다.

더 정확히 말하면, 이 교과는 1978년에 개발하기 시작해 1980년 가을 학기 이후 현재와 같은 틀로 매년 600~700명의 학생들이 배우고 있다.

초판은 MIT에서 한 학기 동안 다루는 교과 과정을 거의 그대로 따르고 있다. 이 두 번째 판은 증보되었기 때문에, 한 학기에 모두 다루기에는 내용이 너무 많을 것이다.

이 컴퓨터 과학 입문 교과 과정의 설계의 두 가지 중요한 생각들은 다음과 같다.

  1. 컴퓨터 언어는 방법론(methodology)에 대한 아이디어를 나타내는 데 쓸 수 있는 새로운 표현 수단이다. 다시 말해, 프로그래밍은 무엇보다 생각의 혁신이며 프로그램이 컴퓨터라는 기계에서 실행된다는 점은 그다지 중요한 사실이 아니다.
  2. 본 입문 과정은 무엇보다도 큰 소프트웨어 시스템의 지적 복잡성(intellectual complexity)을 다루는 기법을 익히는 것에 중점을 둔다. 즉, 특정 언어를 익히거나, 알고리즘을 이해하고 분석하거나, 컴퓨팅 이론의 기초를 배우는 것은 부차적인 목표들이다.

이 책에서는 위의 내용을 가르치는 과정에서, 프로그래밍 언어 Lisp의 방언인 Scheme을 사용한다. 따라서, 이 과정을 따르면서 예제를 직접 쳐보려면 Scheme의 IDE인 Racket을 설치 후 실행하면 된다.

참고 소프트웨어

  1. Racket

참고 사이트

  1. 2005년도 MIT OpenCourseWare 전기전자공학 SICP 수업