This course is designed to teach advanced programming techniques to those who have learned basic programming concepts and are ready to learn in depth programming. It focuses on object-oriented programming. The main concepts discussed are: Objects; Data Abstraction; Data Encapsulation; Polymorphism; and Inheritance. The C++ language constructs that are used to implement these concepts are also discussed. Some of these are: Classes; Overloaded Operators; Overridden Methods; Friend Functions; Virtual Functions; Templates; and Files. Some selective advanced topics will also be discussed at the end of the course.
The goal of this course is to learn good programming practices.