331 Algorithms and Complexity

Program: 
Undergraduate Program
Division: 
Core - Theory

This course includes:  algorithmic paradigms: divide and conquer, dynamic programming, greedy algorithms.  Graph algorithms. Randomized algorithms. Undecidability.  NP-completeness.  Approximation algorithms.

Prerequisites: 

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.