Algorithms are well defined procedures for executing some computational tasks, and form the backbone of computer science. This unit is concerned with the design and analysis of algorithms, and these concepts are introduced through the study of graph algorithms, searching algorithms, string processing algorithms, greedy and dynamic programming algorithms as well as algorithms from other selected areas. These algorithms are studied in the context of the modern computer applications they facilitate. Elementary analysis of the algorithms is performed and complex classes of problems and approximation algorithms are also described. -- Course Website
Prerequisites: CITS2200 Data Structures and Algorithms