Below are the lecture topics for each of the sessions as well as key assignment dates.

1 Introduction to C: Welcome to the Memory Jungle  
2 Subtleties of C: Data Structures and Floating-Point Arithmetic Released: Assignment 1
3 Guest Lectures: Assembly; Secure Programming in C  
4 Style and Structure: Transition from C to C++ Due: Assignment 1
5 Object-Oriented C++: Abstraction, Inheritance, STL Released: Assignment 2
6 Design Patterns: Higher-Level Program Design

Due: Assignment 2

Released: Assignment 3

7 Introduction to Projects: Unit Testing, Third-Party Libraries, Code Review Released: Assignment 4 (final project)
8 Project Environments: Iterators, N-Body Problem, Setup Due: Assignment 3
9 Visualization: OpenGL, Makefiles, Large Projects Due: First code review
10 Course Recap, Interviews, Advanced Topics: Grab Bag & Perspective Due: Second code review; Assignment 4 (final project)