Algorithm design strategies, including greedy, divide-and-conquer, and dynamic programming methods. Advanced data structures, including balanced search trees, graphs, heaps, and priority queues. Advanced methods of searching and sorting. Computational complexity and analysis of algorithms. NP-complete problems.
Counts towards the Mathematics major and minor.
Counts towards the Computer Science major and minor.
CSC 221 and CSC/MAT 220, or permission of instructor.