6.001 | Spring 2005 | Undergraduate

Structure and Interpretation of Computer Programs


This section provides the assigned readings for the course. All readings are from the course textbook:

Buy at MIT Press Abelson, Harold, Gerald Jay Sussman, and Julie Sussman. Structure and Interpretation of Computer Programs. 2nd ed. Cambridge, MA: MIT Press, 1996. ISBN: 9780262011532.

The book is available online through the MIT Press Web site, and is also available in downloadable form.

MIT Press: Buy at MIT Press Structure and Interpretation of Computer Programs (SICP) main site

Full text of SICP (PDF)

Downloadable file (ZIP - 1.2 MB), courtesy of MIT Press and used with permission. (The ZIP file contains: 212 .gif files, 39 .html files, 2 .jpg files, 1 .css file.)

L1 Introduction to Computation  
L2 Scheme Basics Section 1.1
L3 Procedures, Processes, and Recursion Section 1.2
L4 Orders of Growth and Kinds of Procedures Section 1.2
L5 Data Abstraction Section 2.1
L6 Higher Order Procedures Section 1.3
L7 Good Programming Practices  
L8 Using Higher Order Procedures Section 1.3, Section 2.2.4
L9 Symbols and Quotation Section 2.3
L10 Tagged Data Section 2.4
L11 Advanced Data Types  
L12 Data Mutation Section 3.3.1-3.3.3
L13 Trees, Graphs and Search  
L14 Graphs and Search  
L15 Environment Model Section 3.1, Section 3.2
L16 Object Oriented Programming I  
L17 Object Oriented Programming II  
L18 Object Oriented Programming III  
L19 Interpretation  
L20 The Meta-circular Evaluator Section 4.1
L21 Lazy Evaluation Section 4.2, Section 3.5
L22 Asynchronous Computing Section 3.4
L23 Universal Machines  
L24 Geometric Folding Algorithms: Origami, Linkages, and Polyhedra  
L25 Peer-To-Peer Computing Research: A Fad?  
L26 Computability  

Learning Resource Types
Online Textbook
Lecture Notes
Lecture Videos