6.001 | Spring 2005 | Undergraduate

Structure and Interpretation of Computer Programs

Lecture Notes

This section contains the online lectures for the course, which are expected to be read by students in preparation for recitation sessions. Each lecture contains a set of exercises which students must complete by a given date. Please see the calendar for more information on the dates the exercises are due.

Lec # Topics
L1 Introduction to Computation (PDF - 2.1 MB)

Scheme Basics (PDF - 1.5 MB)

A Story about using Lisp in a Startup Company (PDF)

L3 Procedures, Processes, and Recursion (PDF - 2.1 MB)
L4 Orders of Growth and Kinds of Procedures (PDF - 1.7 MB)
L5 Data Abstraction (PDF - 2.1 MB)
L6 Higher Order Procedures (PDF - 2.1 MB)
L7 Good Programming Practices (PDF - 1.6 MB)
L8 Using Higher Order Procedures (PDF - 1.6 MB)
L9 Symbols and Quotation (PDF - 1.4 MB)
L10 Tagged Data (PDF - 2.2 MB)
L11 Advanced Data Types (PDF - 2.2 MB)
L12 Data Mutation (PDF - 1.7 MB)
L13 Trees, Graphs and Search (PDF - 2.2 MB)
L14 Graphs and Search
L15 Environment Model (PDF 1 of 2 - 1.6 MB) (PDF 2 of 2 - 2.2 MB)
L16 Object Oriented Programming I (PDF - 2.3 MB)
L17 Object Oriented Programming II (PDF - 1.7 MB)
L18 Object Oriented Programming III (PDF - 2.0 MB)

Interpretation (PDF 1 of 2 - 2.5 MB) (PDF 2 of 2 - 1.3 MB)

Interpreter Code (PDF)


The Meta-circular Evaluator (PDF - 2.6 MB)

Evaluator Code (PDF)


Lazy Evaluation (PDF 1 of 2 - 2.0 MB) (PDF 2 of 2 - 1.2 MB)

Lazy Evaluator Code (PDF)

L22 Asynchronous Computing (PDF - 1.2 MB)
L23 Universal Machines (PDF)
L24 Geometric Folding Algorithms: Origami, Linkages, and Polyhedra
L25 Peer-To-Peer Computing Research: A Fad?
L26 Computability (PDF)
Learning Resource Types
menu_book Online Textbook
grading Exams
notes Lecture Notes
group_work Projects
theaters Lecture Videos