Department of Computer Science

Course director: M. Wharton
Implementation details

COSC 3331.03 Object-Oriented Programming and Design

Section A  Winter       Mon, Wed, Fri 15:30

Introduction to the theoretical and practical methods of Object-Oriented software construction. Topics include: single and multiple inheritance, type hierarchies, polymorphism, operator overloading, class library design, templates, constraint based programming; and contract model of design.

This course is a detailed introduction to the methodology and practice of Object-Oriented software construction, one of the major areas of software engineering practice and research.

A source program in an object-oriented programming environment is based on independently defined abstract program units called object classes or types; the object instances of the classes are created in the program and interact through message passing at run-time. Each object is a program unit which packages both a coherent collection of data elements and the methods (routines) for their manipulation. The object encapsulates its data elements, which means that the object class has an interface which defines all and only what is visible about the object instances to other objects in the program environment. These techniques promote the reuse of reliable code and reduce the frequency of the kinds of programming which arise in attempting to integrate the different parts of a complex program.

The course will introduce the theoretical concepts of object-oriented programming and design, and present examples using the object-oriented programming language C++.

The course assumes a general knowledge of C++ (i.e. base types, control structure, pointers, references, functions, parameter passing, etc.) as well as general notion of abstract data types and as they are implemented in C++ (i.e. classes).

The topics to be covered include the following.

Text: t.b.a.

Prerequisites: general prerequisites

Degree Credit Exclusion: COSC3010A.03