We use cookies to ensure that we give you the best experience on our website. You can change your cookie settings at any time. Otherwise, we'll assume you're OK to continue.

Durham University

Faculty Handbook 2022-2023

Module Description

Please ensure you check the module availability box for each module outline, as not all modules will run each academic year.

Department: Computer Science


Type Open Level 3 Credits 10 Availability Available in 2022/23 Module Cap None. Location Durham


  • COMP2181 Theory of Computation


  • None

Excluded Combination of Modules

  • None


  • The aim of the module is to equip students with the ability to design and analyse efficient algorithms and data structures.


  • To be chosen from the following:
  • hashing (universal, perfect, Cuckoo, Bloom filters)
  • treaps
  • skip lists
  • splay trees
  • basic models and algorithms for sub-linear space (streaming)
  • basic models and algorithms for sub-linear time (e.g., property testing)
  • basic PRAM (shared-memory parallel) algorithms and techniques

Learning Outcomes

Subject-specific Knowledge:
  • On completion of the module, students will be able to demonstrate:
  • a knowledge about various important problem solving paradigms in the broad area of algorithmic design.
  • an understanding of how to measure, transfer and handle data
  • an ability to apply techniques and methods from the relevant topics to tackle fundamental algorithmic problems;
  • an ability to conduct review and self-study to further their knowledge beyond the taught material.
Subject-specific Skills:
  • On completion of the module, students will be able to demonstrate:
  • an ability to apply methods and techniques from various algorithmic design paradigms
  • an ability to apply methods and techniques from discrete mathematics
  • an ability to reason with and and apply methods of mathematical proof
Key Skills:
  • On completion of the module, students will be able to demonstrate:
  • an ability to think critically;
  • an ability to work with abstract problems;
  • an ability to undertake general problem solving.

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

  • Lectures enable the students to learn new material relevant to the design of efficient algorithms and data structures, as well as their applications.
  • Formative and summative assessments assess the application of methods and techniques, and examinations in addition assess an understanding of core concepts.

Teaching Methods and Learning Hours

Activity Number Frequency Duration Total/Hours
lectures 22 2 per week 1 hour 22
preparation and reading 78
total 100

Summative Assessment

Component: Examination Component Weighting: 100%
Element Length / duration Element Weighting Resit Opportunity
Examination 2 hours 100% No

Formative Assessment:

Example formative exercises are given during the course. Additional revision lectures may be arranged in the module's lecture slots in the 3rd term.

Attendance at all activities marked with this symbol will be monitored. Students who fail to attend these activities, or to complete the summative or formative assessment specified above, will be subject to the procedures defined in the University's General Regulation V, and may be required to leave the University

If you have a query about a specific module or degree programme, please contact the appropriate department.

If you have a question about Durham's modular degree programmes, please visit our FAQ webpage. If you have a question about modular programmes that is not covered by the FAQ, or a query about the on-line Faculty Handbook, please contact us using the Comments and Questions form below.