Design and Analysis of Algorithms

Course Description

This course presents fundamental techniques for designing efficient computer algorithms, proving their correctness, and analyzing their complexity. General topics include graph algorithms, basic algorithm design paradigms (such as greedy algorithms, divide-and-conquer, and dynamic programming), network flows, NP-completeness, and other selected topics in algorithms.

Course Information

  • Clyde Kruskal (, Office: 2240 Brendan Iribe Center, Office Hours: TBA
  • CMSC 351 or equivalent
  • Textbook
    • Jon Kleinberg and Eva Tardos, Algorithm Design, Addison-Wesley, 2005.
  • Supplementary Books
    • Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2009). Introduction to Algorithms (3rd ed.). MIT Press (Any edition is fine)
    • Parberry and Gasarch. Problems on Algorithms (free with small suggested donation)
  • TBA

Teaching Assistants
Kusal De Alwis
Yunheng Han
Daniel Hofman

Office Hours

Monday Tuesday Wednesday Thursday Friday
11:00 AM Daniel Daniel
11:30 AM Daniel Daniel
12:00 AM Daniel Daniel
12:30 AM
1:00 PM
1:30 PM
2:00 PM Yunheng Kruskal/Daniel Yunheng Kruskal
2:30 PM Yunheng Kruskal/Daniel Yunheng Kruskal
3:00 PM Yunheng Kruskal Yunheng Kruskal
3:30 PM Yunheng Kruskal Yunheng Kruskal
4:00 PM
4:30 PM
5:00 PM Kusal Kusal
5:30 PM Kusal Kusal
6:00 PM Kusal Kusal
6:30 PM Kusal Kusal
7:00 PM
7:30 PM

Online Resources