Introduction to object-oriented design, architecture, and programming. Use of packages, class libraries, and interfaces. Encapsulation and representational abstraction. Inheritance. Polymorphic programming. Exception handling. Iterators. Introduction to a class design notation. Numerical computation. Applications in various areas.
A minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in CISC 121.