6.001 Structure and Interpretation of Computer Programs

6.001 Structure and Interpretation of Computer Programs (Spring 2005, MIT OCW). Instructors: Prof. Eric Grimson, Prof. Peter Szolovits, and Prof. Trevor Darrell. This course introduces students to the principles of computation. Upon completion of 6.001, students should be able to explain and apply the basic methods from programming languages to analyze computational systems, and to generate computational solutions to abstract problems. Substantial weekly programming assignments are an integral part of the course. It offers an online version of the textbook for the course, Structure and Interpretation of Computer Programs, 2nd ed., by Harold Abelson and Gerald Jay Sussman.

These twenty video lectures by Hal Abelson and Gerald Jay Sussman are a complete presentation of the course, given in July 1986 for Hewlett-Packard employees, and professionally produced by Hewlett-Packard Television. (from

Lecture 10B - Storage Allocation and Garbage Collection

Go to the Course Home or watch other lectures:

Lecture 01A - Overview and Introduction to Lisp
Lecture 01B - Procedures and Processes; Substitution Model
Lecture 02A - Higher-order Procedures
Lecture 02B - Compound Data
Lecture 03A - Henderson Escher Example
Lecture 03B - Symbolic Differentiation; Quotation
Lecture 04A - Pattern Matching and Rule-based Substitution
Lecture 04B - Generic Operators
Lecture 05A - Assignment, State, and Side-effects
Lecture 05B - Computational Objects
Lecture 06A - Streams, Part 1
Lecture 06B - Streams, Part 2
Lecture 07A - Metacircular Evaluator, Part 1
Lecture 07B - Metacircular Evaluator, Part 2
Lecture 08A - Logic Programming, Part 1
Lecture 08B - Logic Programming, Part 2
Lecture 09A - Register Machines
Lecture 09B - Explicit-control Evaluator
Lecture 10A - Compilation
Lecture 10B - Storage Allocation and Garbage Collection