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

Instructor
  • Clyde Kruskal (kruskal@cs.umd.edu), Office: 2240 Brendan Iribe Center, Office Hours: TBA
Prerequisite
  • CMSC 351 or equivalent
Piazza
Books
  • 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)
Exams
  • TBA
Syllabus

Teaching Assistants
Kusal De Alwis
kdealwis@terpmail.umd.edu
Yunheng Han
yhhan@terpmail.umd.edu
Daniel Hofman
dhofman@cs.umd.edu

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