Applications open for 2023 entry Apply online now


15 Credits

Efficient algorithms are the centrepiece in software development: How much time does a computer program take to output a solution? How much memory space does it occupy?

This course presents the mathematical techniques used for the design and complexity analysis of computer algorithms. It covers fundamental concepts, data structures and algorithms (including recursion, dynamic programming, hash tables, sorting, graph algorithms) that students will encounter throughout the duration of this Master’s programme as well as in their subsequent careers.