Lecture Book Mappings
In Summer 2026, I selected Tour C++ 3rd edition as the required book because it is direct and to the point. However, some of you may want more details; the optional book (Programming Principles and Practice using C++, 3rd edition (PPP)) provides more information. Note that in 2025, it was reversed.
Here is the information for each lecture and mapping to each book
The following hands out can help you if you don't have PPP and you prefer read longer text
Handout-errors.pdf ; Handout0.pdf ; Handout1.pdf ; handout-objectstypeandvalue.pdf
| Lecture (PPT) | Read in A Tour of C++ (3rd ed.) | Read in PPP (3rd ed.) | learncpp.com (supplemental) |
|---|---|---|---|
| 1 Hello World; Objects, Types, Values |
Ch. 1 (The Basics): §1.1-1.6, 1.8 | Ch. 1-2 (+ §3.3-3.4) | Ch. 1: C++ Basics Ch. 4: Fundamental Data Types 10.8: Type deduction (auto) |
| 2 Functions, Scope, Constants, Pointers/References |
Ch. 1: §1.3, 1.5-1.9 (pointers/refs = §1.7) | Ch. 3 & 7; pointers/refs to Ch. 15-16 | Ch. 5: Constants (const/constexpr) Ch. 7: Scope & Namespaces Ch. 12: References & Pointers |
| 3 User-Defined Types & Modularity |
Ch. 2 (UDTs) + Ch. 3 (Modularity) | Ch. 8 + Ch. 7 (namespaces, modules/headers) | Ch. 13: Enums & Structs Ch. 14: Introduction to Classes 7.2: Namespaces |
| 4 (Summer 2026: short video) |
N/A | N/A | N/A |
| 5 Functions: declarations, definitions, scope, namespaces, headers |
Ch. 1: §1.3 (functions), §1.5 (scope); Ch. 3: §3.2 (separate compilation/headers), §3.3 (namespaces), §3.4 (argument passing) | Ch. 7 (Technicalities: Functions, etc.) | 2.1: Introduction to functions 2.11: Header files Ch. 7: Scope & Namespaces 12.6: Pass by const reference |
| 6 Classes & class design (interface, operators, inheritance) |
Ch. 5 (Classes): §5.2 concrete, §5.3 abstract, §5.4 virtual functions, §5.5 hierarchies; Ch. 6 (operator overloading) | Ch. 8 (Technicalities: Classes) + Ch. 12 (Class Design) | Ch. 14: Introduction to Classes Ch. 21: Operator Overloading Ch. 24: Inheritance 25.2: Virtual Functions |
| 7 Free store, pointers, destructors |
§1.7 (pointers/arrays/refs); §5.2 (ctors/dtors, free-store Vector); §15.2 (pointers) | Ch. 15 (Vector and Free Store) | 12.7: Introduction to Pointers 19.1: Dynamic allocation (new/delete) 15.4: Destructors |
| 8 Arrays, pointers, references, C-style strings |
§1.7 (pointers/arrays/refs); §3.4 (reference parameters); §15.3-15.4 (array, span, alternatives) | Ch. 16 (Arrays, Pointers, and References) | 12.3: Lvalue references 17.7: C-style arrays 17.9: Pointer arithmetic & subscripting 17.10: C-style strings |
| 9 Essential operations (copy/move, ctors/dtors) |
Ch. 6 (Essential Operations): §6.2 copy/move, §6.3 resource management, §6.4 conventional ops/comparisons; §5.2.2 (subscripting, initializer-list ctor); §16.6 (move/forward) | Ch. 17 (Essential Operations) | 14.14: Copy constructor 21.12: Copy assignment 21.13: Shallow vs. deep copy 22.3: Move constructors & assignment 21.9: Subscript operator |
| 10 Templates & exceptions (generic Vector, RAII, smart pointers) |
Ch. 7 (Templates); §4.2 (exceptions); Ch. 6 (resource management/RAII); §15.2 (unique_ptr/shared_ptr) | Ch. 18 (Templates and Exceptions) | 11.6: Function templates 13.13: Class templates 27.2: Basic exception handling 22.5: std::unique_ptr 22.6: std::shared_ptr |
|
HW#1 topics Classes, inheritance, virtual functions, smart pointers |
Ch. 5 (Classes), Ch. 6 (Essential Operations), §15.2 (smart pointers) | Ch. 8 (Classes), Ch. 12 (Class Design and Inheritance) |
Ch. 14: Introduction to Classes Ch. 24: Inheritance 25.2: Virtual Functions Ch. 22: Move Semantics & Smart Pointers |