Prerequisites
Apart from reasonable fluency in the Java language,
the main prerequisite for this course is a thorough
understanding of the material presented in OOP-I.
Students taking the M.Sc. in Computer Science who wish
to take this course without having taken OOP-I are
advised to familiarise themselves with that material
in preparation.
Overview
This two-term module starts with an
introduction to the basic concepts and techniques of Object
Oriented Programming (OOP) and modular program construction. It
continues with a number of modest-sized case-studies that introduce
a wide variety of OOP programming idioms (Design Patterns) in
realistic settings, and closes with a case study of significant
size in which many of the idioms are deployed.
Learning Outcomes
Students taking this course with appropriate prerequisites
are expected by the end of the course
- to have a practical understanding of the main principles of
modular program construction, including (in particular) the
principles of program and data abstraction;
- have an understanding of the principal design
patterns used to clarify the structure of large
systems built in object-oriented languages; and
- to be able to recognise and use these
patterns in appropriate situations.
Supplementary Remarks
- Neither OOP-I&II are specifically about
programming in Java, but over the years we have met
people who believe they understand Object-Oriented
programming because they have done a little
programming in Java. In our experience they have
rarely been right.
- This course is being given for the last time this year.
It was originally designed as part of a two-course module
on Object-Oriented Programming that was presented as an
organic whole over two terms as OOP-I and OOP-II. One
consequence of this history is that some of the material
we will present will repeat from a different perspective
a small amount of the material now presented in OOP-I.
- Originally the Java GUI model was presented in OOP-I as an
exemplar of the Model-View-Controller and Composite patterns,
and in response to the expressed needs of our students. That
material is now presented entirely in OOP-II.