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: