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- |