Course page for CS2020 - Design and Analysis of Algorithms
Back to my homepage
Basics: Models of computation, asymptotic notation, recursion.
Divide-and-conquer paradigm: Binary search, merge sort, bucket and radix sort, medians and order statistics, and other problems.
Dynamic programming: Edit distance, Viterbi algorithm, and other examples.
Greedy algorithms: Minimum change, Huffman codes, and other examples.
Graph algorithms: BFS, DFS, topological sorting, shortest path algorithms, maximum flow.
Other topics: Backtracking, string matching, Fast Fourier Transform, etc.
1. Introduction to algorithms: Cormen, Leiserson, Rivest and Stein
2. Online lecture notes by Jeff Erickson
3. Algorithm Design: Kleinberg and Tardos
4. The Algorithm Design Manual by Steven Skiena
Division of credit:
Attendance: 10%, Assignments: 10%, Quizzes: 15%, Midsem: 30%, Endsem: 35%.