Lecture slides and code will be posted regularly. Schedule subject to change.

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