Department: BSc Computer Science
Module Description: This module builds on what students studied in Data Structure and Algorithms module. The module provides an introduction to the design and analysis of computer algorithms. The students will learn how to analyze the performance of computer algorithms. We will discuss classic algorithm design strategies (e.g., divide-and-conquer, dynamic programming, greedy approaches), more in-depth understanding of data structures (hash functions, graphs and their search operations), classic problems (e.g., knapsack problem, graph-related problems) and the algorithms to solve them. We will also analyze algorithm complexity throughout.
Cormen, T.H., Leiserson, C.E., Rivest, R.L. and Stein, C. (2022). Introduction to algorithms. 4th ed. MIT press. 3rd edition available