CS21b: Structure and Interpretation of Computer Programs

CS21b (Autumn 2008): Structure and Interpretation of Computer Programs

"There are only 5 ideas in Computer Science, and by the time you
finish this course, you will know 3 of them."
Course instructor:
Harry Mairson (Volen 257, x2724, mairson@cs). Office
hours: Monday and Wednesday 12-1pm, and by arrangement. If you can't
make these hours, drop by another time--I'm flexible, and usually in.
I promise to talk to you during office hours, and I probably will
anyways if it's another time.
TA:
Matthew Goldfield, email, x6-2728, Volen 136. Office hours: Tuesday and Thursday, 12-1.30pm, and by appointment.
Class Information
PROBLEM SETS
Submission Guidlines
Problem Set 1: Lunar Lander (due September 17).
pdf
required Scheme code
Problem Set 2: Computer Psychiatrist (due October 13).
pdf
required Scheme code
Problem Set 3: Stable Marriage (due October 30).
pdf
required Scheme code
Problem Set 4: Streams (due November 5).
pdf
required Scheme code
Problem Set 5: Metacircular Evaluator (due November 19).
pdf
required Scheme code
normal order Scheme evaluator
Problem Set 6: Metacircular Compiler (due December 8).
pdf
required Scheme code
Handouts
Symbolic differentiation: procedural and data representations of knowledge
Syntactic sugar: making the language you want
An explicit-control metacircular evaluator
Explicit-control metacircular evaluator: example calculations
Separating syntactic analysis from execution