“Structure and Interpretation of Computer Programs” (SICP) is a computer science textbook by Harold Abelson and Gerald Jay Sussman. Used at MIT for decades, it taught programming as a way of thinking about computation and abstraction.
The MIT Approach
SICP introduced programming through fundamental ideas rather than syntax. Using Scheme as its language, it focused on abstraction, modularity, and how to build complex systems from simple parts.
Key Concepts
The book covers profound ideas:
- Abstraction: Hiding complexity behind interfaces
- Higher-order functions: Functions as data
- Metalinguistic abstraction: Building interpreters and compilers
- State and assignment: When and why to use mutation
- Streams and lazy evaluation: Modeling infinite sequences
- Logic programming: Declarative computation
Impact
SICP influenced generations of programmers:
- Used at MIT and many universities for introductory CS
- Praised by industry leaders as life-changing
- Demonstrated depth possible in introductory courses
- Available free online, continuing to inspire self-learners
Legacy
Though MIT now uses Python for introductory courses, SICP remains influential. Its focus on ideas over syntax and its beautiful progression from simple to complex continue to inspire how programming is taught.