Advanced C++ Programming
Advanced C++ Programming
Course Overview: This course is for experienced C++ programmers who wish to
deepen their understanding of the language and learn advanced techniques. The course
consists of three modules.
A preliminary module reviews topics, including inheritance, the ANSI C++ Standard
Library, templates. I/O streams, and practical issues of C++ programming, such as
reliability, testing, efficiency and interfacing to C. This material is covered as needed if
the students are missing the proper background for the course. If a student has taken
Object Innovations Course 156, this section can be skipped.
The second module covers more advanced topics. Advanced issues of inheritance and
polymorphism are covered. Principles of effective class design, including the orthodox
canonical form, use of composition, templates and interface inheritance. The course
covers exception handling and runtime type information (RTTI). Multiple inheritance is
covered, including the complications that are introduced by this powerful feature.
Advanced applications of C++ concepts are studied, including smart pointers and
reference counting.
The third module introduces the Standard Template Library (STL). The main
components of data structures, algorithms and iterators are covered. Illustrations are
provided of a number of important containers, such as vectors, stacks, queues, lists and
sets.
Extensive programming examples and exercises are provided. A number of larger scale
case studies are used to illustrate object oriented programming techniques and to give
the student practical experience in putting together features of C++ learned in the
course. A file is provided containing all the examples and laboratory exercises in the
course.
LEARNING OBJECTIVES