The object-oriented programming paradigm is presented in this course. Students implement data abstraction using classes and inheritance, creating reusable objects that are the basis for object-oriented programs. Polymorphism is implemented using virtual functions. Topics include inline functions, function and operator overloading, base and derived classes, multiple inheritance, and storage management in constructors and destructors. Prerequisite: CSC 150 and CSC 201, or equivalent computer experience by advisement.