Students who successfully complete the course should be able to:
Organize a program into a set of tasks and translate those tasks into classes.
Design classes, functions, and overloaded operators efficiently.
Organize similar tasks into simple class hierarchies in order to reduce redundant code.
Write software using the basic concepts of templates and template meta-programming, as well as use template functions to generate code at compile-time.
Use classes in the Standard Template Library, and understand when various containers should be employed.
Structure and Content
This module covers an introduction to the C++ programming language. The principles of object-orientated programming are introduced, including classes, inheritance, polymorphism, operator over-loading, and templates. Also, the Standard Template Library (STL) will be described. Finally, some advanced design patterns will be discussed.