ICS 311: Algorithms

Description: Design and correctness of algorithms, including divide-and-conquer, greedy and dynamic programming methods. Complexity analyses using recurrence relations, probabilistic methods, and NP-completeness. Applications to order statistics, disjoint sets, B-trees and balanced trees, graphs, network flows, and string matching.


Course Learning Outcomes

Program Learning Outcomes

Prerequisites: 211 and 241, or consent.

Textbook(s): Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein, Introduction to Algorithms, Third Edition, The MIT Press, 2009.

Grading: 3 projects (worth 10% each) 3 midterms (worth 10% each) in-class assignments (worth 20% total) final exam (worth 20%)

Policies: 10% in-class 90% midterms and final


Each week requires reading one chapter from the text, approximately 30 pages on average per week.