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: 

CSC375H1. NOTE: Students not enrolled in the Computer Science Major or Specialist program at the UTSG, UTM, or UTSC are limited to a maximum of three 300-/400-level CSC/ECE half-courses.

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