Time: TuTh 5:00pm - 6:20pm
Location: Cooke 121
Credits: 3
Please sign up for the course on Piazza.
Shi Li
Email: [first name][last name initial][at][buffalo][dot][edu]
Homepage: http://www.cse.buffalo.edu/~shil/
Algorithm design and analysis is fundamental to all areas of computer science and gives a rigorous framework for the study of optimization. This course provides an introduction to algorithm design through a survey of the common algorithm design paradigms of greedy optimization, divide and conquer, dynamic programming, and linear programming, and the NP-completeness theory.
There is no required text book for the class, but it is recommended that you have one of the following books:
Your final grade will be computed as follows:
NA stands for "no animation".
HWs/Projects | Releasing Date | Deadline |
---|---|---|
HW1 | Sep 13 | Sep 25 |
HW2 | Sep 29 | Oct 11 |
HW3 | Oct 13 | Oct 23 |
HW4 | Nov 1 | Nov 13 |
HW5 | Nov 17 | Nov 27 |
HW6 | Dec 6 | None |
Project 1 | Oct 13 | Nov 20 |
Project 2 | Nov 17 | Dec 11 |
Week | Date | Topic | Contents | Other Notes |
---|---|---|---|---|
1 | Aug 30 | Introduction | syllabus | |
Sep 1 | asymptotic notations (KT 2.2) | |||
2 | Sep 6 | common running times (KT 2.4) | ||
Sep 8 | Graph Basics | graph basics, connectivity and traversal (KT 3.1, 3.2, 3.4) | ||
3 | Sep 13 | topological order (KT 3.6) | HW1 Released | |
Sep 15 | Greedy Algorithms | basics, interval scheduling (KT 4.1) | ||
4 | Sep 20 | interval scheduling continued, optimum caching (KT 4.3) | ||
Sep 22 | optimum caching continued | Sep 25: HW1 Deadline | ||
5 | Sep 27 | Huffman code (KT 4.8) | ||
Sep 29 | Huffman code continued, exercise problems | HW2 Released | ||
6 | Oct 4 | Divide and Conquer | merge sort and counting inversions (KT 5.1, 5.3) | |
Oct 6 | quicksort, median-finder, selection (KT 13.5) | |||
7 | Oct 11 | polynomial and matrix multiplications (KT 5.5) | HW2 Deadline | |
Oct 13 | solving recurrences (KT 5.2) | HW3 Released Proj1 Released |
||
8 | Oct 18 | Dynamic Programming | weighted interval scheduling (KT 6.1) | |
Oct 20 | subset sums and knapsack (KT 6.4) | Oct 23: HW3 Deadline | ||
9 | Oct 25 | Sequence Alignment (KT 6.6) | ||
Oct 27 | Matrix-Chain-Multiplication, Optimum Binary Search Tree | |||
10 | Nov 1 | Exercise Problems | HW4 Released | |
Nov 3 | Graph Algorithms | Kruskal's algorithm for MST (KT 4.5) | ||
11 | Nov 8 | Prim's algorithm for MST (KT 4.6) | ||
Nov 10 | Dijkstra's algorithm for shortest path (KT 4.4) | Nov 13: HW4 Deadline | ||
12 | Nov 15 | shortest path with negative weights and Bellman-Ford, Floyd-Warshall (KT 6.8) | ||
Nov 17 | NP-Completeness | P, NP, Co-NP, KT 8.1-8.3) | HW5, Proj2 Released Nov 20: Proj1 Deadline |
|
13 | Nov 22 | P=NP?, NPC (KT 8.4) | ||
Nov 24 | Fall Recess | Nov 27: HW5 Deadline | ||
14 | Nov 29 | circuit-SAT, 3-SAT (KT 8.5) | ||
Dec 1 | independent set (KT 8.5) | |||
15 | Dec 6 | HW Solutions, Final Review, Q&A | HW6 Released | |
Dec 8 | Dec 11: Proj2 Deadline | |||
Dec 16, Fri, 11:45am-2:45pm: Final Exam, at Knox 20 |