Time: MoWeFr 9:00am~9:50am
Location: NSC 201
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/
Office Hour: Fridays, 12:00pm-1:00pm
Name | Office Hours | |
---|---|---|
Sean Sanders | spsander[at] | Mondays, 11:00am-12:00pm |
Xiaoyu Zhang | zhang376[at] | Wednesdays, 11:00am-12:00pm |
Revanth Karunakaran | karunak2[at] | Fridays, 3:00pm-4:00pm |
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".
Week | Date | Topic | Contents | Other Notes |
---|---|---|---|---|
1 | Jan 31 | Introduction | syllabus asymptotic notations (KT 2.2) common running times (KT 2.4) |
|
Feb 2 | ||||
Feb 4 | ||||
2 | Feb 7 | |||
Feb 9 | ||||
Feb 11 | Graph Basics | graph basics (KT 3.1) connectivity and traversal (KT 3.2, 3.4) topological order (KT 3.6) |
||
3 | Feb 14 | |||
Feb 16 | HW1 Posted | |||
Feb 18 | Greedy Algorithms | interval scheduling (KT 4.1) optimum caching (KT 4.3) Huffman code (KT 4.8) flow time minimization |
||
4 | Feb 21 | |||
Feb 23 | HW1 Due | |||
Feb 25 | ||||
5 | Feb 28 | |||
Mar 2 | ||||
Mar 4 | HW2 Posted, PA1 Posted | |||
6 | Mar 7 | Divide and Conquer | merge sort and counting inversions (KT 5.1, 5.3) quicksort, median-finder, selection (KT 13.5) polynomial and matrix multiplications (KT 5.5) solving recurrences (KT 5.2) |
|
Mar 9 | ||||
Mar 11 | HW2 Due | |||
7 | Mar 14 | |||
Mar 16 | ||||
Mar 18 | ||||
8 | Mar 21 | Spring Recess | ||
Mar 23 | ||||
Mar 25 | HW3 Posted | |||
9 | Mar 28 | Dynamic Programming |
weighted interval scheduling (KT 6.1) subset sums and knapsack (KT 6.4) Sequence Alignment (KT 6.6) Increasing Subsequence |
PA1 Due |
Mar 30 | ||||
Apr 1 | Apr 4: HW3 Due | |||
10 | Apr 4 | |||
Apr 6 | ||||
Apr 8 | ||||
11 | Apr 11 | HW4 Posted, PA2 Posted | ||
Apr 13 | Graph Algorithms | Kruskal's and Prim's algorithm for MST (KT 4.5, 4.6) Dijkstra's algorithm for shortest path (KT 4.4) shortest path with negative weights and Bellman-Ford (KT 6.8) Floyd-Warshall |
||
Apr 15 | ||||
12 | Apr 18 | |||
Apr 20 | HW4 Due | |||
Apr 22 | ||||
13 | Apr 25 | |||
Apr 27 | HW5 Posted | |||
Apr 29 | NP-Completeness | P, NP, Co-NP, P=NP?, NPC (KT 8.1-8.4) circuit-SAT, 3-SAT (KT 8.5) independent set (KT 8.5) |
||
14 | May 2 | |||
May 4 | HW5 Due, HW6 Posted | |||
May 6 | ||||
15 | May 9 | |||
May 11 | HW Solutions and Final Review | PA2 Due | ||
May 13 | ||||
May 18, Wed, 8:00am-11:00am: Final Exam, at NSC 201 |