This course examines traditional and adaptive algorithms, formal methods of analyzing their efficiency and the empirical verification thereof. Topics include asymptotic analysis, recursion, mathematical induction, greedy algorithms, and dynamic-programming, Students study several problem domains such as sorting, searching and graphs.
Prerequisite: CS 241, MATH 251 (may be taken concurrently)