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.
Instructor: Arkady Yerukhimovich (arkady AT cs)
Class Time: MTWThF, 9:30 – 10:50
Office Hours: Thursday 12:20 (in class room)
Class
Room: CSIC 1122 Text
Book: Jon Kleinberg and Eva Tardos, Algorithm Design,
Addison-Wesley, 2005.