| Lecture | Section | Topics |
|---|---|---|
| Week 1 Wednesday | Basic C++ | Basic C++ syntax, basic input/output |
| Week 1 Friday | Basic C++ | Numerical types, strings, vectors, pass-by-reference |
| Week 2 Monday | Assignment 1 | |
| Week 2 Wednesday | Basic C++ | Pointers, arrays, C-style strings, arguments to main(), memory allocation |
| Week 2 Friday | Basic C++ | Code style |
| Week 3 Monday | Object-oriented C++ | Classes, constructors, destructors, assignment operator, const correctness, file layout, include guards |
| Week 3 Wednesday | Object-oriented C++ | Operator overloading, inheritance, namespaces |
| Week 3 Friday | Unix development tools | Simple shell, make, grep, gdb, testing |
| Week 4 Monday | Unix development tools | Revision control, more advanced shell programming, shell utilities |
| Week 4 Wednesday | Advanced C++ | Generic code, templates |
| Week 4 Friday | Advanced C++ | Associative Containers, Exceptions |
| Week 5 Wednesday | Advanced C++ | Exception Safety, auto_ptr |
| Week 5 Friday | Assignment 3 | |
| Week 6 Monday | Advanced C++ / C++ STL | String streams, Iterators, Containers |
| Week 6 Wednesday | C++ STL | Specific STL containers, function objects |
| Week 6 Friday | C++ STL | STL algorithms |
| Week 7 Monday | C++ STL | STL mutating algorithms |
| Week 7 Wednesday | Revision |