Design and Analysis of Algorithms (G6017)
15 credits, Level 5
Autumn teaching
On this module, you’ll explore the design of algorithms.
You’ll examine strategies for dealing with wide classes of algorithmic problems, such as:
- divide and conquer
- randomised algorithms
- dynamic programming
- greedy algorithms
- network flow algorithms.
You’ll apply these strategies to write solutions to new problems of asymptotic complexity.
You’ll also explore when each strategy should be applied. For example, in polynomial time, you’ll learn:
- dynamic programming is a useful tool for solving problems
- a greedy algorithm is typically faster.
Teaching
77%: Lecture
23%: Seminar
Assessment
25%: Coursework (Problem set)
75%: Examination (Unseen examination)
Contact hours and workload
This module is approximately 150 hours of work. This breaks down into about 44 hours of contact time and about 106 hours of independent study. The University may make minor variations to the contact hours for operational reasons, including timetabling requirements.
We regularly review our modules to incorporate student feedback, staff expertise, as well as the latest research and teaching methodology. We鈥檙e planning to run these modules in the academic year 2026/27. However, there may be changes to these modules in response to feedback, staff availability, student demand or updates to our curriculum.
We鈥檒l make sure to let you know of any material changes to modules at the earliest opportunity.
Courses
This module is offered on the following courses:
- Computer Science (with an industrial placement year) BSc
- Computer Science (with an industrial placement year) MComp
- Computer Science BSc
- Computer Science MComp
- Computer Science and Artificial Intelligence (with an industrial placement year) BSc
- Computer Science and Artificial Intelligence BSc
- Computing for Business and Management (with an industrial placement year) BSc
- Computing for Business and Management BSc
- Computing for Digital Media and Games (with an industrial placement year) BSc
- Computing for Digital Media and Games BSc
- Data Science (with an industrial placement year) BSc
- Data Science BSc
- Software Engineering (with an industrial placement year) BSc
- Software Engineering BSc