Prerequisite: CSCI 210. Offered Occasionally. In-depth study of a typical object-oriented programming language (C++) from a software engineering perspective, with emphasis on features supporting the development of large, efficient and reusable object-oriented applications. Principles and practice of three software development paradigms: developing classes from scratch, reuse of existing classes, incremental extension of frameworks. Encapsulation, templates, polymorphism, dynamic binding and virtual methods, operator's overloading, complex associations, dynamic aggregation, inheritance (single and multiple), exception handling, the standard template library. Introduction to UML for describing program designs. |