The student will be introduced to and be expected to master the Object
Oriented concepts offered by the C++ programming language. These
include data encapsulation and methods (abstract data type - classes),
class objects, constructors, destructors, operator overloading,
inheritance, friends, virtual functions, and more. In addition, some
concepts learned in CSI such as pointers, linked lists, stacks, and
queues will be revisited. Most importantly, the student will learn
the object oriented programming paradigm: a technique for general
programming unlike the algorithmic style of earlier imperative
languages such as Pascal, C, and Algol. The student will learn
primarily by doing extensive, and hopefully interesting, homework
exercises. By the end of the course the student will be expected to
analyze a given problem and design an efficient class structure to
solve it.