Lectures

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