Prerequisites:COMSC 111, MATH 221 or permission of instructor Students with COMSC 220 are not eligible to take this course except for grade replacement This course studies analysis of algorithms and the relevance of analysis to the design of efficient computer algorithms. Algorithmic approaches covered include greedy, divide and conquer, and dynamic programming. Topics include sorting, searching, graph algorithms, and disjoint set structure. NP-completeness and approximation algorithms are also introduced.