The Universal Machine: A Multimedia Introduction to Computing

Problem solving and software development

Table of Contents (for 3 of 16 chapters)

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)
Elementary!
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)
An inheritance hierarchy

Back to themes of The Universal Machine
Back to features of the book
Back to home page for The Universal Machine