- Author: Neil Gray
- Format: Postscript, PDF (by chapter)
- Price: free
This book is primarily intended to be a text for the programming component in an introductory two semester computer science course (some materials are a little advanced and might postponed to later semesters). This intent shows in terms of references to “students”, “assignments” and “later studies in computing”. However, the book should be equally suited to an individual who wants to learn how to program their own personal computer. If used as a text for an introductory computer science course, the contents of this book would normally be supplemented by a variety of other materials covering everything from “ethics” to “Turing machines”.
It is assumed that you are “computer literate”. In your school or college, or at work, you will have used word processing packages, and possibly other packages like spreadsheets and data bases. Although most schools do provide at a limited introduction to programming (usually in Pascal or possibly a dialect of Basic), this text does not rely on such past experience.
Note: this text was completed in 1996. C++ has been revised quite a bit since then! When the examples were written, C++’s “namespace” feature had been defined but was not supported on available compilers; so the examples don’t use namespace. (Of course, in modern C++ they should.)
Further, the iostream library has been updated. Some of the functions have changed their signatures; some features have been added, others removed.
So, be cautious with the code – it is well a little out of date.
Chapters include:
- Computer Hardware
- Programs: Instructions in the Computer
- Operating Systems
- Why have “high-level” languages?
- C++ development environment
- Sequence
- Iteration
- Selection
- Simple use of files
- Functions
- Arrays
- Programs with functions and arrays
- Standard algorithms
- Tools
- Design and documentation
- Enum, Struct, and Union
- Examples using structs
- Bits and pieces
- Beginners’ Class
- Dynamic data and pointers
- Collections of data
- A World of Interacting Objects
- Intermediate class
- Two more “trees”
- Templates
- Exceptions
- Example: Supermarket
- The Power of Inheritance and Polymorphism
- Reusable designs
- Frameworks for understanding