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 |