This course is designed to expose students to advanced programming techniques necessary for the development of large, complex software projects. The course will also enable students to develop good quality software; such as modularity, efficiency, reliability and encapsulation.This course will use C++ as the language of instruction and implementation.