Skip to main content
 

COMP53215: Algorithms and Complexity

Type Tied
Level 5
Credits 15
Availability Available in 2025/2026
Module Cap
Location Durham
Department Computer Science

Prerequisites

  • None

Corequisites

  • None

Excluded Combinations of Modules

  • None

Aims

  • Provide knowledge and critical understanding of paradigms, and fundamental ideas behind algorithms.
  • Provide knowledge and critical understanding of paradigms, fundamental ideas and methods relating to computational complexity.
  • Discuss the design and analysis of efficient algorithms.

Content

  • Algorithmic methods: e.g. divide and conquer, dynamic programming.
  • Mitigating hardness: e.g. approximation, branch and bound, exact methods.
  • Computational complexity: e.g. classes between L and EXPTIME, time and space hierarchy theorems, FPT and the W-hierarchy.
  • Randomised Algorithms: e.g. QuickSort, randomised data structures.
  • Probabilistic Methods: e.g. Monte Carlo methods, tail inequalities

Learning Outcomes

Subject-specific Knowledge:

  • By the end of this module, students should be able to demonstrate:
  • a systematic understanding of core techniques for constructing algorithms.
  • an advanced understanding of core concepts from computational complexity theory.
  • an ability to design novel algorithms to solve specific complex problems.

Subject-specific Skills:

  • By the end of this module, students should be able to demonstrate:
  • familiarity with state-of-the-art algorithms to solve complex challenges and understanding of computational complexity implications.
  • competence to translate abstract problem descriptions into algorithmic formulations; competent and educated selection of appropriate solution algorithms.

Key Skills:

  • By the end of this module, students should be able to demonstrate:
  • familiarity with advanced paradigms and modern algorithms underlying computer science applications, and their analysis

Modes of Teaching, Learning and Assessment and how these contribute to the learning outcomes of the module

  • Lectures enable students to learn the core material relevant to the topic and problem classes enable students to develop their theoretical understanding and problem-solving skills.
  • Summative assessments and formative exercises encourage students to focus their ability to independently analyse and solve problems as it relates to the topic of algorithms and complexity.

Teaching Methods and Learning Hours

ActivityNumberFrequencyDurationTotalMonitored
Lectures81 per week2 hours16Yes
Lectures81 per week1 hour8Yes
Problem Classes11 per week2 hours8Yes
Preparation and Reading118 
Total150 

Summative Assessment

Component: CourseworkComponent Weighting: 100%
ElementLength / DurationElement WeightingResit Opportunity
General Test30 minutes33
Exercise67

Formative Assessment

Via problem classes.

More information

If you have a question about Durham's modular degree programmes, please visit our Help page. If you have a question about modular programmes that is not covered by the Help page, or a query about the on-line Postgraduate Module Handbook, please contact us.

Prospective Students: If you have a query about a specific module or degree programme, please Ask Us.

Current Students: Please contact your department.