Lectures

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

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