Module 35308 (2022)
Module description - Algorithms and Complexity
The Module Description is a strict subset of the Syllabus Page.
Module Title | Algorithms and Complexity |
School | School of Computer Science |
Module Code | 06-35308 |
Level | 3/H |
Member of Staff | Rajesh Chitnis Anupam Das |
Semester | Semester 2 - 20 credits |
Pre-requisites |
|
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. |
Outcomes |
On successful completion of this module, the student should be able to:
|
Assessment |
|