- Chapter 2. Problem solving before programming
- 2.1 Problem solving strategies
- 2.2 Algorithms: paths through "problem space"
- 2.3 From blind search to informed hacking
- 2.4 Analytical reasoning
- 2.4.1 Outlining as top-down decomposition
- 2.4.2 An Automatic Teller Machine (ATM) problem
- 2.4.3 Bottom-up composition
- 2.5 The analogical approach
- 2.5.1 Copy and paste
- 2.5.2 Object-orientation
- 2.5.3 An object-oriented analysis of the ATM problem
- 2.6 Programming in Knobby's World (optional)
|
|
- Chapter 6. Software development life cycle
- 6.1 Programming-in-the large
- 6.2 The "waterfall" life cycle
- 6.3 Analysis of requirements
- 6.4 Design
- 6.5 Coding
- 6.6 Testing and debugging
- 6.7 Delivery and maintenance
|
|
- Chapter 13. Object-oriented software
- 13.1 Object-oriented problem solving
- 13.2 Responsibility-driven design
- 13.3 Generalizing through inheritance
- 13.4 Designing Abstract Data Types (optional)
|
|