Analysis of Algorithms - CSC 325
This course is about the design and analysis of algorithms. The student learns some basic mathematical tools that allow him to give an estimate of the running time of an algorithm without actually implementing it. We mainly describe three programming strategies that help us solve a problem more efficiently: divide-and-conquer, Graph Algorithms, dynamic programming, greedy, Backtracking, and Branch and Bound. Several important problems that are interesting from a practical and theoretical point of views will be analyzed, including some of the very well-known NP-complete problems. Prerequisite: CSC 313.