Algorithms and Data Structures (ADS) is a 10 credit course at Level 10, normally taken in Year 3. It runs in Semester 2. The exam is in , and is worth 75% of the course mark. The University descriptor is here.
Introductory concepts Review of CS2. Models of computation; time and space complexity; upper and lower bounds, big-O and big-Omega notation; average and worst case analysis.
Divide and conquer Matrix multiplication: Strassen's algorithm; the discrete Fourier transform (DFT), the fast Fourier transform (FFT). Expressing the runtime of a recursive algorithm as a recurrence relation; solving recurrence relations.
Sorting Quicksort and its analysis; worst-case, best-case and average-case.
Data structures: Disjoint sets The "disjoint sets'' (union-find) abstract data type: specification and implementations as lists and trees. Union-by-rank, path-compression, etc., "heuristics''. Applications to finding minimum spanning trees.
Dynamic programming Introduction to the technique; examples: Matrix-chain multiplication, Longest common subsequences.