chapter 1 - building abstractions with procedures
1.1 the elements of programming
1.2 procedures & the processes they generate
1.3 formulating abstractions with higher-order procedures
chapter 2 - building abstractions with data
2.1 introduction to data abstraction
2.2 hierarchical data & the closure property
2.4 multiple representations for abstract data
2.5 systems with generic operations
chapter 3 - modularity, objects, state
3.1 assignment & local state
3.2 the environment model of evaluation
3.3 modeling with mutable data
3.4 concurrency: time is of the essence
chapter 4 - metalinguistic abstraction
4.1 the metacircular evaluator
chapter 5 - computing with register machines
5.1 designing register machines
5.2 a register-machine simulator
5.3 storage allocation & garbage collection
5.4 the explicit-control evaluator