Practice functional programming, including lambda functions.
Practice designing classes, writing serialization and parsing code.
Practice creating class hierarchies and implementing their methods.
Practice with static methods and The Big Three methods.
Pointer practice: addresses, dereferencing, allocation, etc.
throw with exceptions.
A chance to practice implementing and using user-defined operators.
A chance to practice designing and implementing simple classes.
A chance to practice design and implementation with simple user-defined types.
Write a complete program from scratch. Compile and run it.
Get up and running with a compiler. Recall how to write functions.