Structure and Interpretation of Computer Programs, 2nd Edition by Harold Abelson, Gerald Jay Sussman
- Chapter 1. Building Abstractions with Procedures
- Chapter 2. Building Abstractions with Data
- Chapter 3. Modularity, Objects, and State
- Chapter 4. Metalinguistic Abstraction
- Chapter 5. Computing with Register Machines