Unit information: Algorithms and Data in 2026/27

Please note: Programme and unit information may change as the relevant academic field develops. We may also make changes to the structure of programmes and assessments to improve the student experience.

Unit name Algorithms and Data
Unit code COMS20017
Credit points 20
Level of study I/5
Teaching block(s) Teaching Block 4 (weeks 1-24)
Unit director Professor. Mirmehdi
Open unit status Not open
Units you must take before you take this one (pre-requisite units)

COMS10018 Object-Oriented Programming and Algorithms

COMS10014 Mathematics for Computer Science A or equivalent

COMS10013 Mathematics for Computer Science B or equivalent

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

None

Units you may not take alongside this one

None

School/department School of Computer Science
Faculty Faculty of Engineering

Unit Information

Unit directors: John Lapinskas (Algorithms) and Majid Mirmehdi (Data)

Why is this unit important?

On the one hand, a deeper understanding of algorithm design, and of the limitations of efficient algorithms, is key to solving difficult computational problems. On the other, to handle problems and generate solutions (e.g. algorithms), a fundamental understanding of the nature of the data is essential.

How does this unit fit into your programme of study?

This is a mandatory unit taken in year 2 introducing first aspects of using data as a driver and source for computational activity as well as refining the fundamental algorithmic concepts acquired in year one.

Your learning on this unit

An overview of content

The unit runs in two distinct parts each focusing on one of the subjects:

For the data part, the aim is to acquaint students with the fundamental aspects of processing digital data, presented in the context of concrete examples from applications in machine learning, data mining, and (1D/2D) signal processing. Particular emphasis is placed on the importance of representation and modelling.

For the algorithms part, the aim is to provide a solid foundation in the theory of computation, algorithms and data structures.

How will students, personally, be different as a result of the unit

Students will learn how to solve unfamiliar programming problems in consistent and verifiable ways, both by designing new algorithms and by applying familiar algorithms in unfamiliar ways. They will also learn how to tell when a problem is (very likely to be) unsolvable with an efficient algorithm in its current form. Finally, they will develop a strong understanding of graphs, which are vital tools both in algorithm design and in computer science more generally.

To handle problems and generate solutions (e.g. algorithms), a fundamental understanding of the nature of the data is essential. The unit enables the student to analyse, visualise and interrogate data, generate more efficient and compact representations of data, and to model how well it represents a problem.

Learning Outcomes

On successful completion of this unit, students will:

  1. Be able to describe and apply the most common algorithmic design paradigms, including graph theory, NP-hardness, and dynamic programming.
  2. Recall, and be able to reason about, standard examples of these paradigms.
  3. Be able to describe and apply key methodologies for data representation, feature extraction, modelling, estimation, clustering, and classification in digital data processing.
  4. Demonstrate the ability to describe, contextualise and apply training/learning in modelling, classifying and clustering.
  5. Be able to analyse data processing problems and decide what techniques to apply.

How you will learn

Teaching will be delivered through a combination of:

  • synchronous lectures and asynchronous videos or materials to introduce fundamental concepts and support revision
  • scheduled labs and help sessions covering formative programming tasks and problem sheets with staff support for hands-on activities or drop-in sessions
  • self-directed exercises with opportunities to discuss these with staff

How you will be assessed

Tasks which help you learn and prepare you for summative tasks (formative):

Weekly labs and classes containing example problems and programming exercises, with sample solutions and direct feedback from unit teaching staff.

Tasks which count towards your unit mark (summative):

  • Invigilated Exam 1 ( 50%) (ILOs 3-5)
  • Sequence of in-class tests (progress check assessments) TB2 (5%) (ILOs 1-2)
  • Invigilated Exam 2 ( 45%) (ILOs 1-2)

Additionally:

  • Exam 1 assessment period is considered a “must pass” component: students must achieve a mark of at least 40% in this exam to obtain credit points for this unit.
  • The sequence of in-class tests and Exam 2 are jointly considered a “must pass” component: students must achieve a weighted average mark of at least 40% in these assessments to obtain credit points for this unit.

When assessment does not go to plan:

Students will be required to retake a failed “must-pass” component in a like-for-like fashion, in accordance with the University rules and regulations.

Resources

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. COMS20017).

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 University Workload statement relating to this unit for more information.

Assessment
The assessment methods listed in this unit specification are designed to enable students to demonstrate the named learning outcomes (LOs). Where a disability prevents a student from undertaking a specific method of assessment, schools will make reasonable adjustments to support a student to demonstrate the LO by an alternative method or with additional resources.

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. For appropriate assessments, if you have self-certificated your absence, you will normally be required to complete it the next time it runs (for assessments at the end of TB1 and TB2 this is usually in the next re-assessment period).
The Board of Examiners will take into account any exceptional circumstances and operates within the Regulations and Code of Practice for Taught Programmes.