This course builds on the C++ foundation developed in CSC 133 and is the second core course required for students in the Computer Information Systems General Option program. It discusses the software engineering principles of encapsulation and reuse, and how they lead to abstract data types. The object oriented programming features of classes, inheritance, polymorphism and composition are covered, along with the C++ features of constructors and operator overloading. Students implement programs using these features in the C++ programming language.