Structure and Interpretation of Computer Programs

by Harold Abelson and Gerald Jay Sussman with Julie Sussman

1 Building Abstractions with Procedures
2 Building Abstractions with Data
3 Modularity, Objects, and State
4 Metalinguistic Abstraction
5 Computing with Register Machines