Here are the topics we'll be covering this semester -- sorta in the shape of the path we'll follow through 'em:
vectors | +-----list management | classes---------+ C-arrays/ | +-----pointers | +-----------pointers & arrays | +------iterators/ | vectors/---------------+ | strings/------+ | C-strings-----+ dynamic memory& | +-----------------memory management (element vs. block)/ | memory management (ctors, dtors)/--------+ text files& | +---------*string streams/ | *cmd-line args/------+ operator overloading& | +-----------function objects/ | *accumulators/-----+ | *predicates/---+ *stream hierarchy/ | +------------inheritance& | +-----------polymorphism/ | multiple inheritance/---------+ | other modes/----------+ templates& | +----------------*smart pointers (ref count)/ | *templ meth pattern/---------------+
In the above tree structure, an appended slash (/) signifies that the topic might only take a single lecture or less. An appended ampersand (&) instead means that the topic can easily take two or more lecture periods. A prepended asterisk/star (*) implies that the topic is more suitable than others for moving to an online-only form (such that it would be up to the individual whether they wanted to learn that material or not).
And speaking of self-study, please notice the following relationships amongst the various topics we have/will have covered:
templates + sorting/searching => generic algorithms templates + mem manage + class => generic containers iterators + STL containers/algorithms => yea!
As already mentioned, if we have time, we may also get to cover these topics: