Further Object-Oriented Programming - CO520

Looking for a different module?

Module delivery information

Location Term Level1 Credits (ECTS)2 Current Convenor3 2020 to 2021
Spring 5 15 (7.5) DR O Chitil checkmark-circle
Spring 5 15 (7.5) DR Y He checkmark-circle


This module builds on the foundation of object-oriented design and implementation found in CO320 to provide both a broader and a deeper understanding of and facility with object-oriented program design and implementation. Reinforcement of foundational material is through its use in both understanding and working with a range of fundamental data structures and algorithms. More advanced features of object-orientation, such as interface inheritance, abstract classes, nested classes, functional abstractions and exceptions are covered. These allow an application-level view of design and implementation to be explored. Throughout the course, the quality of application design and the need for a professional approach to software development is emphasised.


This module appears in the following module collections.

Contact hours

Total contact hours:44
Private study hours: 106
Total study hours: 150

Method of assessment

13.1 Main assessment methods
Assessment 1 – Quiz (5%)
Assessment 2 – Programming (25%)
Assessment 3 – Programming (25%)
Assessment 4 – In-class Test (30%)
Assessment 5 – Class Exercises (15%)

Assessment 1 - Class Exercises (10%)
Assessment 2 - Quiz (15%)
Assessment 3 - Inheritance & Polymorphism (20%)
Assessment 4 - GUI & Exception (25%)
Assessment 5 - In-class Test (30%)

13.2 Reassessment methods

Indicative reading

"Objects first with Java – A practical introduction using BlueJ", David J. Barnes and Michael Kölling, Pearson Education, 2017, ISBN 978-1-292-15904-1.

See the library reading list for this module (Canterbury)

See the library reading list for this module (Medway)

Learning outcomes

8. The intended subject specific learning outcomes.
On successfully completing the module students will be able to:
8.1 Use advanced features of an object-oriented programming language, such as inheritance and graphical libraries, to write programs. [A2]
82 Use object-oriented analysis, design and implementation with a minimum of guidance, to recognise and solve practical programming problems involving inheritance hierarchies. [A4, B7, C1]
8.3 Design appropriate interfaces between modular components. [B5]
8.4 Evaluate the quality of competing solutions to programming problems. [A4, C2]
8.5 Evaluate possible trade-offs between alternative solutions, for instance those involving time and space differences. [C2]
8.6 Thoroughly test solutions to programming problems. [A4, C2]
8.7 Discuss the quality of solutions through consideration of issues such as encapsulation, cohesion and coupling. [C2]

9. The intended generic learning outcomes.
On successfully completing the module students will be able to:
9.1 Make appropriate choices when faced with trade-offs in alternative designs. [B1]
9.2 Recognise and be guided by social, professional and ethical issues and guidelines and the general contexts in which they apply. [B6]
9.3 Deploy appropriate theory and practices in their use of methods and tools. [B5]


  1. Credit level 5. Intermediate level module usually taken in Stage 2 of an undergraduate degree.
  2. ECTS credits are recognised throughout the EU and allow you to transfer credit easily from one university to another.
  3. The named convenor is the convenor for the current academic session.
Back to top

University of Kent makes every effort to ensure that module information is accurate for the relevant academic session and to provide educational services as described. However, courses, services and other matters may be subject to change. Please read our full disclaimer.