Lessons

Week 1
Monday Tuesday Wednesday Objects, types, and values (part 1) Thursday Objects, types, and values (part 2) Friday Type conversions Saturday Expressions and statements
Week 2
Monday Selection and iteration Tuesday Introduction to Functions (part 1) Wednesday Introduction to Functions (part 2) Thursday structs Friday Vectors and strings Saturday Two-dimensional vectors
Week 3
Tuesday Wednesday Command line compilation and execution Thursday Friday Line-by-line debugging Saturday Compilation and execution in detail (part 1)
Week 4
Monday Compilation and execution in detail (part 2) Tuesday Build systems: make Wednesday Version control: git (part 1) Thursday Version control: git (part 2) Friday Software and errors (part 1) Saturday Software and errors (part 2)
Week 5
Monday Handling non-local errors at runtime (part 1) Tuesday Handling non-local errors at runtime (part 2) Wednesday Testing and debugging Thursday Test-driven development Friday Pointers Saturday Arrays
Week 6
Monday References and argument passing Tuesday Wednesday Introduction to classes Thursday Introduction to classes cont. Friday Operator overloading for user-defined types (part 1) Saturday Operator overloading for user-defined types (part 2)
Week 7
Monday Streams and input validation (part 1) Tuesday Streams and input validation (part 2) Wednesday Data representation (part 1) Thursday Data representation (part 2) Friday Data representation (part 3) Saturday Functions and the stack
Week 8
Monday Allocation of memory to variables on the stack Tuesday Dynamic allocation of objects on the free store (part 1) Wednesday Dynamic allocation of objects on the free store (part 2) Thursday Two-dimensional arrays on the free store Friday An implicit contract with the free store manager Saturday Tools for testing and debugging memory issues (part 1)
Week 9
Monday Tools for testing and debugging memory issues (part 2) Tuesday RAII and dynamic memory in classes (part 1) Wednesday RAII and dynamic memory in classes (part 2) Thursday Copy semantics (part 1) Friday Copy semantics (part 2) Saturday Dynamic structures (part 1)
Week 10
Monday Dynamic structures (part 2) Tuesday Singly linked lists (part 1) Wednesday Singly linked lists (part 2) Thursday Function templates (part 1) Friday Function templates (part 2) Saturday Class templates
Week 11
Monday Inheritance (part 1) Tuesday Inheritance (part 2) Wednesday Inclusion polymorphism (part 1) Thursday Inclusion polymorphism (part 2) Friday An introduction to trees Saturday Introduction to binary search trees (BSTs)
Week 12
Monday BST Traversals Wednesday BST queries (part 1) Thursday BST queries (part 2) Friday BST construction Saturday BST insertion and destruction
Week 13
Monday An introduction to graphs Tuesday Graph representations (part 1) Wednesday Graph representations (part 2) Thursday Implementing an undirected graph type using adjacency lists (part 1) Friday Implementing an undirected graph type using adjacency lists (part 2) Saturday Breadth-first search
Week 14
Monday Introduction to design patterns Tuesday The strategy pattern Wednesday Introduction to iterators Thursday Implementing a Doubly Linked List Iterator Friday Introduction to move semantics (part 1) Saturday Introduction to move semantics (part 2)
Week 15
Monday Introduction to smart pointers Tuesday Introduction to unique and shared pointers Wednesday