Schedule

Class meets Tuesday at 1:30-2:20 and Thursday at 12:30-2:20 using streaming video in Canvas. All lectures will be recorded. When possible they will be prerecorded and provided via Youtube. Non-lecture components may not be recorded.

All aspects of the schedule are subject to change.

Week Date Materials Due Extra
1 Sep 9 First Day Discussion
Introduction [video]
Build Systems [video]
What a programmer does
C++ Seasoning
Embracing Algorithms
2 Sep 15 Build Systems [video]
Sep 17 Complexity [video]
A taste of modern C++ [video]
Exercise 0
Background Survey
3 Sep 22 Agile? [video]
Your Project [video]
Sep 24 Term Project Discussion
Programming Exercise
(R) Code Complete 1, 2, 28, 29
Exercise 1 (tomorrow)
4 Sep 29 A Tour of Architecture [video]
Oct 1 In class example
Object Oriented Programming [video]
(R) Code Complete 3, 4, 5, 10, 11
5 Oct 6 Unit Testing [video] Exercise 2 (yesterday!!)
Oct 8 Generic Programming & Templates [video] (R) Code Complete 31, 32, 12, 13
6 Oct 13 Traits Demo
Generic Programming & Templates [video]
Oct 15
Composition, Polymorphism, and Types
1.1, 1.2, & 3 of
On Understanding Types, Data Abstraction, and Polymorphism
(The whole thing is classic.)
7 Oct 20 Strategic and Tactical Programming
Oct 22 Design Patterns (R) Code Complete 27, 33, 6, 7, 8
Iteration 1 (tomorrow)
Peer and self review
8 Oct 27 Design Patterns
Oct 29 Antipatterns from Iteration 1
9 Nov 3 Visitor example
Visitors
Nov 5 Code Review 1 (R) Code Complete 14, 15, 16, 9, 17, 19
10 Nov 10 Thinking in Sequences:
find, filter, map, & reduce
Nov 12 Code Review 2 Iteration 2 (tomorrow)
11 Nov 17 Designing APIs for Simplicity
& Preventing Errors
Nov 19 Individual team meetings (R) Code Complete 20, 21, 22, 24, 34
12 Nov 24 Exercise 5 Discussion
Nov 26 Code Review 3
13 Dec 1 Thinking about correctness
Designing for security
Dec 3 Code Review 4
14 Dec 8 Epilogue
All questions anwered
Iteration 3 (!)
Exercise 6