Aims of this Module:
To describe a number of advanced topics in the design and analysis of efficient sequential algorithms, and a few key results related to the study of their complexity. At the conclusion of the module students should:
Teaching and learning strategies:
Students will be expected to attend three hours of formal lectures in a typical week. Lectures will introduce students to the academic content. In addition, students will be expected to devote unsupervised time to private study. Private study will provide time for reflection and consideration of lecture material and background reading. For each unit of this module, practical applications of the techniques students learn will be explored and demonstrated.
Pattern-matching algorithms including FSA and the Knuth-Morris-Pratt algorithm.
Lossless compession algorithms including Huffman coding.
Graph algorithms for finding maximum matchings in bipartite graphs and trees.
NP-Completeness including the status of the P v NP problem and polynomial-time reductions for some classic problems.
Approximation Algorithms the complexity class NPO and methods for designing efficient approximation algorithms. Also, the complexity classes APX and PTAS.
Plus selected further topics.