Advance pointers and dynamic memory usage. Concepts of object-oriented design and programming. Includes classes, friend functions, templates, operator overloading, polymorphism, inheritance, exception handling, containers, iterators and the standard template library. Applications involve the use of simple data structures such as stacks, queues, linked lists and binary trees. Recursion, searching and sorting algorithms. The above concepts are implemented through a series of hands-on programming projects, all of which are completed as part of the homework requirements. Prerequisite: CS-225 or CS-200. Corequisite: MA-124. (3-0-3)