The Universal Machine: A Multimedia Introduction to Computing

Table of Contents
(View organization by theme)

Preface
Chapter 1. Introducing ... the Universal Machine!
1.1 Connotations of "universal machine"
1.2 The Very Idea of the Universal Machine
1.3 Anatomy of the Machine
1.4 Faces of the Machine
Babbage's Analytical Engine
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 3. A Taste of C++
3.1 "Hello, universe!"
3.2 Arithmetic in C++
3.3 A change machine
3.4 The char data type
3.5 Programming as problem solving: making ATM deposits
3.6 Beyond C++--: more types and operators (optional)
A function droid`
Chapter 4. Programming languages and their translators
4.1 Interpreters vs. compilers
4.2 How compilers produce actual machine code
4.3 Lookout for C++--
4.4 Inside Knobby's programming language translator
4.5 A brief history of programming languages
Grace Murray Hopper, pioneer of programming languages
Chapter 5. Classes: an outside look
5.1 Abstract data types
5.2 Constructors and members
5.3 The LOOKOUT class library
5.4 Beyond C++--: browsing C++ header files (optional)
A class can keep information private
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 7. Structured programming with control structures
7.1 Conditionals
7.2 Using conditionals--interactive and menu-driven programs
7.3 Repetitions
7.4 Common loop idioms
7.5 Preventing and removing bugs in loops
7.6 Programming as problem solving: ATM interface
7.7 Beyond C++--: more types, operators and control structures (optional)
definite loop structure
Chapter 8. Peeling the onion: computer architecture
8.1 The register machine
8.2 Boolean circuits
Chapter 9. Functions and decomposition
9.1 Flow of control through function calls
9.2 Local and global variables
9.3 Return values
9.4 Functional decomposition
9.5 Parameters
9.6 Function prototypes
9.7 Preconditions and postconditions
9.8 Recursion (optional)
9.9 Programming as problem solving: the ATM by decomposition
Global vs. local scope of variables
Chapter 10. Operating systems and networks
10.1 A brief history of operating systems
10.2 Booting an operating system
10.3 Operating system architecture
10.4 Networks
10.5 Protection and security
An OS scheduling a process
Chapter 11. Strings and arrays
11.1 Subscripts in Lstrings.
11.2 Arrays of homogeneous elements
11.3 Searching and sorting
11.4 Two-dimensional arrays
11.5 Beyond C++--: inside arrays (optional)
Inside an IntArray
Chapter 12. Computing theory
12.1 Complexity and efficiency
12.2 Abstract "computing machines"
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
Chapter 14. Classes: an inside look
14.1 Classes create types
14.2 Inheritance via class derivation
14.3 The Automatic Teller Machine, one more time!
14.4 Another example: Files
14.4 Beyond C++--: inline functions and dynamic binding (opt.)
Chapter 15. Social and ethical issues
15.1 Computers and society
15.2 Computers and social change
15.3 Computers and privacy
15.4 Computers and legal issues
15.5 Professional ethics
Ethical and legal issues involve tradeoffs
Chapter 16. Artificial intelligence
16.1 Big questions
16.2 AI algorithms and engines
16.3 AI engines and AI technology
16.4 Neural networks
16.5 Agents and robots
Appendix: C++ language structures
Index
Cog, a humanoid robot

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