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

Ralph Morelli. Object-Oriented Problem Solving: Java, Java, Java. 2nd edition, Prentice Hall, 2003.

Learning Outcomes

By the end of this module, students should be familiar with data structures and advanced programming concepts within Java; should be able to carry out the construction of software artefacts utilising these concepts; and should be capable of carrying out the development of complex elements, such as user interfaces, multiprocessing, and fault-tolerant components.

Learning Strategy

The module will be taught as 36 lectures [3 lectures a week for 12 weeks].