Course Description
This is an intermediate algorithms course with an emphasis on teaching techniques for the design and analysis of efficient algorithms, emphasizing methods of application. Topics include divide-and-conquer, randomization, dynamic programming, greedy algorithms, incremental improvement, complexity, and cryptography.
Learning Resource Types
theaters
Lecture Videos
theaters
Recitation Videos
assignment_turned_in
Problem Sets with Solutions
grading
Exams with Solutions
notes
Lecture Notes
Instructor Insights

Frisbees® featuring a flow network were tossed out during lectures to reward class participation. (Photo courtesy of Prof. Devadas)