CSC373H1: Algorithm Design, Analysis & Complexity

Hours: 
36L/12T

Standard algorithm design techniques: divide-and-conquer, greedy strategies, dynamic programming, linear programming, randomization, network flows, approximation algorithms.  Brief introduction to NP-completeness: polynomial time reductions, examples of various NP-complete problems, self-reducibility.  Additional topics may include approximation and randomized algorithms.  Students will be expected to show good design principles and adequate skills at reasoning about the correctness and complexity of algorithms.

Prerequisite: 
Exclusion: 
Distribution Requirements: 
Science
Breadth Requirements: 
The Physical and Mathematical Universes (5)