Course overview
The development of a sound theoretical understanding of advanced algorithms and practical problem solving skills using them. Advanced algorithm topics chosen from: Dynamic Programming, Linear Programming, Matching, Max Flow / Min Cut, P and NP, Approximation Algorithms, Randomized Algorithms, Computational Geometry.
Course learning outcomes
- Develop a sound theoretical understanding of advanced algorithms and practical problem solving skills using them.
- Develop basic knowledge of a wide range of advanced algorithm design techniques including dynamic programming, linear programming, approximation algorithms, and randomised algorithms.
- Develop basic advanced algorithm analysis skills for analysing the approximation ratio of approximation algorithms and the probability of randomised algorithms.
- Explain a wide range of advanced algorithmic problems, their relations and variants, and application to real-world problems.