Lecture slides and code will be posted regularly. Schedule subject to (severe) change.
| Tue Sep 15 | Intro to C++ A crash course in a modern typed language. |
| Thu Sep 17 | Structures How do you store several values together? A lightweight alternative to classes—even with their own functions! |
| Tue Sep 22 | Initialization and References A fundamental—and powerful—feature of C++ that gives it an efficiency advantage. Plus, double ampersands. |
| Thu Sep 24 | Streams Making the most of a powerful, efficient abstraction for input and output. |
| Tue Sep 29 | Containers An abstraction of the fundamental array into something more powerful and flexible. |
| Thu Oct 1 | Iterators For loops will never be the same again! |
| Tue Oct 6 | Template Functions Giving C++ the power of a dynamically typed language, without most of the risks... |
| Thu Oct 8 | Functions Stop writing so much code! Generalize with concept lifting and lambdas. |
| Tue Oct 13 | STL Summary A detailed review of most of the first half of the class! |
| Thu Oct 15 | Template Classes These can be useful. |
| Tue Oct 20 | Const-Correctness Using the compiler to your advantage to ensure the security of your code (i.e. that you don't mess up). |
| Thu Oct 22 | Operators Can you multiply two students? Maybe not, but we'll see how to make your classes more intuitive and powerful. |
| Tue Oct 27 | Special Member Functions Controlling fundamental behaviors of your classes for efficiency and memory. |
| Thu Oct 29 | Move Semantics What does the = sign really mean? Does anyone really know? We'll find out! |
| Tue Nov 3 | Class cancelled |
| Thu Nov 5 | RAII Harness the compiler to stop bugs before your code ever runs. (No more memory leaks!) |
| Tue Nov 10 | Guest lecture Template meta-programming! |
| Thu Nov 12 | Final lecture A wrap up of the things we've discussed this quarter |