Welcome to the website for the book All of Programming, by Andrew Hilton and Anne Bracy.

All of Programming provides a platform for instructors to design courses which properly place their focus on the core fundamentals of programming, or to let a motivated student learn these skills independently. A student who masters the material in this book will not just be a competent C programmer, but also a competent programmer.

The book is exclusively an ebook. It has approximately 700 pages of text and 7.5 hours of embedded videos, so we strongly urge you to read it on an application that supports video viewing (for example, Adobe Reader).

The book has 4 Parts and an Appendix whose topics are as follows:

Part 1: Introduction to Programming in C
Introduction, Reading Code, Types, Writing Code, Compiling and Running, Fixing Your Code: Testing and Debugging, Recursion, Pointers, Arrays, Uses of Pointers, Interacting With the User and System, Dynamic Allocation, Programming in the Large

Part 2: C++
Transition to C++, Object Creation and Destruction, Strings and IO Revisited, Templates, Inheritance, Error Handling and Exceptions

Part 3: Data Structures and Algorithms
Introduction To Algorithms and Data Structures, Linked Lists, Binary Search Trees, Hash Tables, Heaps and Priority Queues, Graphs, Sorting

Part 4: Other Topics
Balanced BSTs, Concurrency, Advanced Topics in Inheritance, Other Languages: Java, Python, SML ... And Beyond

Appendices
Why Expert Tools?
UNIX Basics, Editing: Emacs, Other Important Tools, Miscellaneous C and C++ Topics E Compiler Errors Explained, Answers to Selected Exercises