331H Algorithms and Complexity: Honors

Undergraduate Program
Core - Theory

This course includes:  algorithmic paradigms: divide and conquer, dynamic programming, greedy algorithms.  Graph algorithms. Randomized algorithms. Undecidability.  NP-completeness.  Approximation algorithms. Sorting lower bound. Selected topics from amortized analysis, network flow, linear programming.


The following coursework with a grade of at least C- in each course: Computer Science 313K or 313H, 312, 314 or 314H, 429 or 429H; Mathematics 408C, 408N, or 427L; and SSC 321 or SDS 321 or M362K and a prerequisite or co-requisite of M340L and consent of the honors director.