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 NPcompleteness 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, medianfinder, 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  MatrixChainMultiplication, 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 BellmanFord, FloydWarshall (KT 6.8)  
Nov 17  NPCompleteness  P, NP, CoNP, KT 8.18.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  circuitSAT, 3SAT (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:45am2:45pm: Final Exam, at Knox 20 