COMP0004 Object-Oriented Programming

This database contains the 2018-19 versions of syllabuses.

Note: Whilst every effort is made to keep the syllabus and assessment records correct, the precise details must be checked with the lecturer(s).

Academic session



Object-Oriented Programming



Module delivery

1819/A4U/T2/COMP0004 Undergraduate

Related deliveries


Prior deliveries




FHEQ Level


FHEQ credits



Term 2

Module leader

Roberts, Graham


Roberts, Graham

Mohamedally, Dean

Fu, Yun

Module administrator

Ball, Louisa


This module provides a thorough introduction to object-oriented (OO) programming. The key object-oriented concepts such as class design, inheritance, dynamic binding and interfaces, are introduced, along with design strategies for smaller sized object-oriented programs. Material is also included on data representation and data processing, the implementation of common data structures such as lists, trees and hash tables, and on development tools and practices.

To learn how to apply object-oriented design concepts, and practice programming skills, the module has a substantial practical element, with weekly lab classes, sets of exercise questions, and an individual programming mini-project.

Learning outcomes

On successful completion of the module, a student will be able to:

  1. Design and implement smaller-scale object-oriented programs
  2. Have a good knowledge of key object-oriented principles and design strategies
  3. Read, write, and process data sets using object-oriented streams
  4. Understand how core data structures are implemented using classes
  5. Use programming tools such as an integrated development environment (IDE), debugger, and code repository

Availability and prerequisites

This module delivery is available for selection on the below-listed programmes. The relevant programme structure will specify whether the module is core, optional, or elective.

In order to be eligible to select this module as optional or elective, where available, students must meet all prerequisite conditions to the satisfaction of the module leader. Places for students taking the module as optional or elective are limited and will be allocated according to the department’s module selection policy.

Programmes on which available:

  • BSc Computer Science (Year 1)
  • MEng Computer Science (International Programme) (Year 1)
  • MEng Computer Science (Year 1)
  • MEng Mathematical Computation (International Programme) (Year 1)
  • MEng Mathematical Computation (Year 1)


In order to be eligible to select this module:


Topics covered in lectures or via online material:

Object-Oriented Principles

  • Taking an object-oriented approach to software development
  • Classes and the use of abstractions
  • Key design principles and development practices

Object-Oriented Programming

  • Designing and implementing classes
  • Identifying and implementing class relationships
  • Using abstract classes, interfaces and inheritance
  • Developing smaller-scale programs taking an object-oriented approach
  • Effective object-oriented design and programming practices
  • Documenting designs using the Unified Modelling Language (UML)

Data Representation

  • Implementing common data structures
  • Storing data in files and basic databases
  • Processing data using streams

An indicative reading list is available via


The module is delivered through a combination of lectures and lab classes.


This module delivery is assessed as below:



Weight (%)



In-class test (1 Hour)




Individual programming project (Up to 1500 lines of code)



In order to pass this Module Delivery, students must:

  • achieve an overall weighted Module mark of at least 40.00%;

AND, when taken as part of BSc Computer Science; MEng Computer Science, and MEng Mathematical Computation:

  • achieve a mark of at least 30.00% in any Components of assessment weighed ≥ 30% of the module.

Where a Component comprises multiple Assessment Tasks, the minimum mark applies to the overall component.