Part I
Common Ground

2 The Value of Abstraction
 2.1 Abstractions and the World
 2.2 Implementations
 2.3 Obstacles
 2.4 Guidance
3 Machines for Computations
 3.1 Paradigms
 3.2 Mathematics and Algorithms
 3.3 Example of Generic Programming