Module 06-35308 (2022)
Algorithms and Complexity
Level 3/H
Rajesh Chitnis Anupam Das | Semester 2 | 20 credits |
Co-ordinator: Rajesh Chitnis
Reviewer: Anupam Das
The Module Description is a strict subset of this Syllabus Page.
Outline
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
On successful completion of this module, the student 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
Pre-requisites
- 06-30175 - Data Structures & Algorithms
- 06-35324 - Mathematical and Logical Foundations of Computer Science
- 06-35393 - Theories of Computation
Taught with
- 06-35326 - Algorithms and Complexity (Extended)
Cannot be taken with
- 06-35326 - Algorithms and Complexity (Extended)
Assessment
- Main Assessments: 1.5 hour examination (50%) and continuous assessment (50%)
- Supplementary Assessments: 1.5 hour examination (100%)
Programmes containing this module
- BSc Artificial Intelligence & Computer Science [0144]
- BSc Artificial Intelligence & Computer Science with an Industrial Year [9502]
- BSc Artificial Intelligence & Computer Science with Study Abroad [452B]
- BSc Computer Science [4436]
- BSc Computer Science with an Industrial Year [9499]
- BSc Computer Science with Digital Technology Partnership (PwC) [610C]
- BSc Computer Science with Digital Technology Partnership (Vodafone) [893C]
- BSc Computer Science with Study Abroad [5571]
- BSc Mathematics and Computer Science [5196]
- BSc Mathematics and Computer Science with an Industrial Year [9495]
- MEng Computer Science/Software Engineering [4754]
- MEng Computer Science/Software Engineering with an Industrial Year [9501]
- MSci Computer Science [4443]
- MSci Computer Science with an Industrial Year [9509]
- MSci Computer Science with Study Abroad [5576]
- MSci Mathematics and Computer Science [5197]
- MSci Mathematics and Computer Science with an Industrial Year [9496]