CS994 – Object Oriented Programming

Credits 20
Level 5
Semester 1
Prerequisites CS995
Availability Possible elective
Contact Lectures: 20 | Tutorials: 0 | Labs: 40
Assignment: 70 | Self Study: 70
Assessment Individual lab test (50%) and Individual coursework assignment (50%)
Resit The resit assessment will be a lab-based exam (100%)

Konstantinos (Kostas) Liaskos

General Aims

This module will provide students with programming skills in Java. In addition, students will learn key concepts and general techniques from object-oriented (OO) programming that will enable them to quickly learn other object-oriented languages, such as C++ or C#.

Learning Outcomes

On completion of this module students will be able to:

  • understand and use objects in common object-oriented languages;
  • understand and develop programs using class based object-oriented programming;
  • understand and develop programs using template based object-oriented programming.


  • OO fundamentals: Objects, Classes, State, Instances
  • Anatomy of a class – source code
  • Making decisions
  • Data types
  • Strings
  • Library classes and Documentation
  • Collections
  • Iteration
  • Testing and Debugging
  • Handling errors
  • Designing classes
  • Input/Output
  • Pair programming

Recommended Text/Reading*

* This list is indicative only – the class lecturer may recommend alternative reading material. Please do not purchase any of the reading material listed below until you have confirmed with the class lecturer that it will be used for this class.

Objects First with Java: A Practical Introduction using BlueJ, Sixth Edition, David J. Barnes and Michael Kölling, Pearson, 2016. [Library link]

Head First Java, Second Edition, Kathy Sierra and Bert Bates, O’Reilly, 2005. [Online access]

Java API Specification: https://docs.oracle.com/javase/8/docs/api