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

**Professor:**Clyde Kruskal (kruskal AT cs)**Teaching Assistant:**Arkady Yerukhimovich (arkady AT cs)**Office Hours:**Wed. 1:00-4:00 (in TA room)**Class Time:**Tu, Th 2:00 – 3:15**Class Room:**CSIC 2107**Text Book:**Jon Kleinberg and Eva Tardos, Algorithm Design, Addison-Wesley, 2005.

- Homework 1 Due: Feb. 22
- Homework 2 Due: Mar. 15
- Homework 3 Due: Mar. 29
- Homework 4 Due: Apr. 26
- Homework 5 Due: May 10

- Midterm Tuesday Apr. 10
- Redo Exam - due in class Thursday, Apr. 19
- Makeup Exam - Wednesday, Apr. 25 5:15-7:15PM In CSIC 2118

You must be in the exam room by 6:15PM and you can not leave the exam room before 6:15PM. - Final Exam - Wednesday, May 16 10:30-12:30 In CSIC 2107

__Additional Office Hours__

Prof. Kruskal - Tuesday 05/15 - 9-12

Arkady Yerukhimovich - Tuesday 05/15 - 12-3