Course Details in 2026/27 Session


If you find any data displayed on this website that should be amended, please contact the Curriculum Management Team.

Module Title LH Algorithms and Complexity
SchoolComputer Science
Department Computer Science
Module Code 06 35308
Module Lead Dr Rajesh Chitnis
Level Honours Level
Credits 20
Semester Semester 2
Pre-requisites
Co-requisites
Restrictions Please contact the School for information on pre-requisite learning.
Contact Hours Lecture-33 hours
Practical Classes and workshops-11 hours
Guided independent study-156 hours
Total: 200 hours
Exclusions
Description Algorithms are at the heart of computer science. In this module we will develop a range of core algorithmic ideas such as dynamic programming, greedy methods, divide-and-conquer techniques, and network flows. We will then learn how to use these to design efficient algorithms for a range of problems, motivated by a range of applications. We will then consider core concepts from computational complexity theory such as NP-completeness, and their implications for algorithm design. Finally, we will consider some advanced modern topics such as approximate and randomized algorithms, parameterized algorithms and complexity, and algorithms for streams of data.
Learning Outcomes By the end of the module students should be able to:
  • Understand, explain, and apply core techniques for constructing algorithms
  • Design novel algorithms to solve specific problems
  • Understand and apply core concepts from computational complexity theory
  • Appreciate and explain modern topics in algorithmic theory
Assessment 35308-01 : Examination : Exam (Centrally Timetabled) - Written Unseen (50%)
35308-02 : Continuous Assessment : Coursework (50%)
Assessment Methods & Exceptions Assessment:
Examination (50%),
Continuous Assessment (50%)

Reassessment:
Examination (100%)
Other
Reading List