Quick links:
Structure and Interpretation of Computer Programs, also called the Wizard Book, is a book based on an introductory computer science course taught at MIT from 1981 to 2007.
Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot.
– Eric Raymond
Don’t take Eric’s word for it — study the book yourself! This repository provides notes based on the video lectures that you will find useful if:
- You want SICP ‘distilled’ in a small file.
- You want to see how old MIT Scheme code is implemented in Racket’s
#lang sicp
. - You’re following the video lectures, and of course, if:
- You came across this repository late at night and you have nothing better to do.
These notes are based on the 1986 presentation of 6.001 (SICP),
produced by Hewlett-Packard. The notes are generated using Emacs’
Org mode, are written in literate programming style, and use
Racket’s #lang sicp
. In some (very few) cases, this causes the
code in these notes to differ from the equivalent code in
MIT-Scheme. These instances are pointed out in the notes.
SICP and its video lectures are particularly well-suited to literate programming, given the fact that SICP’s exercises and example programs are highly inter-dependent. Often, later lectures require small procedures defined in past lectures. All-in-all, this makes writing code while following SICP a tough job, since yank-pasting dependencies every time you need them is tiring, and a bug fix will not propagate to all the pastes. This is where literate programming becomes useful, since it maintains only one copy of each code block, and changes can be forward-propagated by re-evaluation.
The videos the notes are based on are licensed by MIT under CC-BY-SA 3.0. The citation of the course on MIT OCW is:
Eric Grimson, Peter Szolovits, and Trevor Darrell. 6.001 Structure and Interpretation of Computer Programs. Spring 2005. Massachusetts Institute of Technology: MIT OpenCourseWare, https://ocw.mit.edu. License: Creative Commons BY-NC-SA.
All material in this repository that is my creative property is licensed under CC-BY-NC-SA 4.0.