Introduces object-oriented and related memory concepts; motivates modern C++ as the language of choice; topics include pointers and structs, objects, heap allocation, data encapsulation, classes, namespaces, constructors and destructors, virtual functions and destructors, operator overloading and standard input/output, inheritance and polymorphism, and templates. It incorporates project-based learning of design methodologies using UML 2.0 and modern software development tools and version control systems.