Home > Notes > Books

Notes and Solutions from Structure and Interpretation of Computer Programs

I've been slowly working through Structure and Interpretation of Computer Programs. Sometimes I skip a problem if I get stuck or just bored with a topic. My solutions aren't always correct or elegant.

My initial motivation was the resources at Teach Yourself Computer Science, as well as the sort of cult status the book has come to occupy in parts of the software community. Since starting however I've also discovered its a low pressure way to force myself to commit code everyday, and a good way to accomplish something small at the start of my day.

Lately though the notes have been filling a different role and being a kind of playground to try out different features for the static site generator that builds this site. I've spent more time writing a Scheme syntax highlighter, adding template support for the exercises, and styling things than I've spent solving exercises for the past while. So while these are far from the most correct or complete SICP solutions out there, they're at least pretty.

Is this an efficient way to work through the book? Probably not, but it is keeping me engaged and providing opportunities to work on a bunch of small unrelated programs, so I'm not too bothered.

As a source text I'm using the very nicely formatted version by Github user Sarabander available here. I've also been watching the original lectures here. I'm using the Racket SICP Collections for exercises.

Progress

Chapters

  1. Building Abstractions with Procedures
  2. Building Abstractions with Data
  3. Modularity, Objects, and State
  4. Metalinguistic Abstraction
  5. Computing with Register Machines