PART I THE REAL WORLD DOMAIN: PROBLEM SOLVING AND SYSTEMATIZING THE SOLUTION
1. Introduction: Starting to Think Like a Programmer
2. A Strategy for Solving Problems
3. Description Languages & Representations
4. Problems of Choices and Repeated Actions
5. Calculating and Keeping Track of Things
6. Extending our Vocabulary: Data & Control Abstractions
7. Object Orientation: Taking a Different View
8. Looking Forward to Program Design
PART II THE COMPUTER DOMAIN: DATA, DATA STRUCTURES, AND PROGRAM DESIGN SOLUTIONS
9. Data Types For Computer Programs
10. Sub-Programming and Baking Cakes: Procedures and Functions
11. Streams and Files, Input and Output
12. Static Data Structures
13. Dynamic Data Structures
14. Object-Orientation Revisited
15. Getting it to Run in Processing: Putting your Programs into a Real Programming Language
16. Testing, Debugging, and Documentation