Spring 2011 CS61A: Structure and Interpretation of Computer Programs (Brian Harvey)

Spring 2011 is the last semester that Brian Harvey taught CS61A at Berkeley. After he left, they switched from teaching SICP in LISP, like it was written, to teaching Composing Programs, a book based on SICP, but in Python. You can read what he had to say about SICP at https://people.eecs.berkeley.edu/~bh/sicp.html The lectures for Spring 2011 are archived on archive.org, and there is a course site as well, but everything is rather scattered. This website is an attempt to make the course easy to follow. An organized homepage for the already existing content.

Prequisite: Enough programming that you are familiar with recursion. If not, do Simply Scheme first, or as a corequisite. Lab 1 here will set you up with the environment needed for it.

Corequisite: Calculus 1

Course calendar:

Weekend Monday Tuesday Wednesday Thursday Friday
Week 1 First Lab Lecture 1: functional programming 1
Handout (don't worry about the administrative stuff, the hw, or the lab, that's all covered here as relevant)
Lecture Notes
Reading (SICP 1.1) (don't worry about the exercises, hws and labs will assign)
Homework (Week 1, due Monday)
Week 1 Second Lab Lecture 2: functional programming 2
Computer Workstation Ergonomics (UMich)
Ergonomics (NIH DOHS)
Lecture Notes
Week 1 Second Lab Solution
Reading (SICP 1.3)
Lecture 3: higher-order procedures 1
Lecture Notes
Homework (Week 2, due Monday)
Week 1 Homework Solution
Week 2 Lab
Lecture 4: higher-order procedures 2
Lecture Notes
Week 2 Lab Solution Lecture 5: user interface 1 -Alan Kay-