Advanced Object-oriented Programming


To introduce data structures and advanced programming language features within the context of a high-level programming language (Java).
To demonstrate principles, provide indicative examples, develop problem-solving abilities and provide students with experience and confidence in the use of advanced features to implement algorithms in a contemporary software setting.


Overview of object-oriented languages and Java [2 lectures]
Abstract Data Types [8 lectures]
Classes and class hierarchies in Java [13 lectures]
Robustness and error-handling [3 lectures]
Concurrency [4 lectures]
Input/Output and Network Programming in Java [6 lectures]

Recommended Texts

Reading lists are managed at Click here to access the reading lists for this module.

Learning Outcomes

(LO1) Be familiar with data structures and advanced programming concepts within Java

(LO2) Be able to carry out the construction of software artefacts utilising these concepts

(LO3) Be capable of carrying out the development of complex elements, such as user interfaces, multiprocessing, and fault-tolerant components

(S1) Problem Solving - Numeracy and computational skills

(S2) Problem Solving - Analysing facts and situations and applying creative thinking to develop appropriate solutions

Learning Strategy

Teaching Method: Lecture

Teaching Method: Laboratory Work