Skip to main content

Unit information: Object-Oriented Programming and Algorithms I in 2022/23

Please note: you are viewing unit and programme information for a past academic year. Please see the current academic year for up to date information.

Unit name Object-Oriented Programming and Algorithms I
Unit code COMS10017
Credit points 20
Level of study C/4
Teaching block(s) Teaching Block 2 (weeks 13 - 24)
Unit director Dr. Hannuna
Open unit status Not open
Units you must take before you take this one (pre-requisite units)

COMS10016 Imperative and Functional Programming.

Units you must take alongside this one (co-requisite units)


Units you may not take alongside this one
School/department School of Computer Science
Faculty Faculty of Engineering

Unit Information

Unit Directors: Christian Konrad and Sion Hannuna

This unit provides an introduction to object-oriented programming and to the design and analysis of algorithms. It is delivered in two distinct streams each focusing on one of the subjects. The unit assumes no prior exposure to either of the two subjects.

  • For object-oriented programming, the aim is to introduce objects and classes. Further important principles include inheritance, abstraction, encapsulation, polymorphism, and design patterns.
  • For the design and analysis of algorithms, the aim is to introduce students to some fundamental algorithms and data structures, and the basics of algorithmic design and analysis.

Your learning on this unit

Successful completion of this unit will enable students to:

  1. Understand the structure and semantics of a relevant object-oriented programming language.
  2. Understand and explain key features and characteristics of such languages (i.e. encapsulation, abstraction, inheritance, polymorphism).
  3. Undertake domain/problem analysis and produce elegant and efficient designs, adhering to Object Oriented principles.
  4. Write effective and efficient code in a relevant object-oriented programming language.
  5. Understand and be able to reproduce/implement important algorithms for searching, sorting and pattern matching.
  6. Understand and be able to write formal proofs regarding the operation of key algorithms.
  7. Understand asymptotic notation and be able to identify complexity bounds for simple algorithms.

How you will learn

Teaching will be delivered through a combination of synchronous and asynchronous sessions, including lectures, practical activities supported by drop-in sessions, problem sheets and self-directed exercises.

How you will be assessed

50% Exam (Summer);

50% Coursework, completed in groups - the mark will be informed by a viva.


If this unit has a Resource List, you will normally find a link to it in the Blackboard area for the unit. Sometimes there will be a separate link for each weekly topic.

If you are unable to access a list through Blackboard, you can also find it via the Resource Lists homepage. Search for the list by the unit name or code (e.g. COMS10017).

How much time the unit requires
Each credit equates to 10 hours of total student input. For example a 20 credit unit will take you 200 hours of study to complete. Your total learning time is made up of contact time, directed learning tasks, independent learning and assessment activity.

See the Faculty workload statement relating to this unit for more information.

The Board of Examiners will consider all cases where students have failed or not completed the assessments required for credit. The Board considers each student's outcomes across all the units which contribute to each year's programme of study. If you have self-certificated your absence from an assessment, you will normally be required to complete it the next time it runs (this is usually in the next assessment period).
The Board of Examiners will take into account any extenuating circumstances and operates within the Regulations and Code of Practice for Taught Programmes.