Overview
This course starts with an introduction to the basic concepts and techniques of modular
program construction and Object-Oriented Programming (OOP). It continues with two
modest-sized case-studies that introduce some of the basic OOP programming idioms
(Design Patterns) in realistic settings.
There are three main ideas: encapsulation, that programs should be built from objects
that satisfy a coherent specification and hide the details of how that specification
is implemented; object identity, that each object has a distinct identity, so that
multiple objects can co-exist and interact with each other; and polymorphism, that
objects that implement the same interface can be used interchangeably to give a
variety of behaviours.
This is a module with a one-third practical weight. There is a correspondingly
heavy use of practicals to develop understanding of OOP in general, and the use
of Java in particular.