Week 
Topics 
Reference 
Assignment 
14 
Lecture 42: Algorithm for NP complete
problems. Review for final exam. Lecture 41: Algorithms for NP complete problems Lecture 40: NP complete: knapsack and partition. Algorithms for NP complete problems: special case of 2SAT Lecture notes from last semester Lecture notes (2nd) from last semester. 
Sections 10.2 and 11.4. Wikipedia page on 2SAT. Wikipedia page on dynamic programming algorithm for TSP 

13 
Lecture 39: More NP complete problems Lecture 38: NP completeness: 3SAT, clique, independent set and vertex cover Lecture 37: NP completeness: concept Lecture notes on NP completeness from last semester. More lecture notes on NPC. 
Sections 8.4 to 8.7. 
HW9. Due: 12/9. 
12 
Lecture 36: Polynomialtime reduction. Lecture 35: Concept of NP. Lecture 34: Network flow: bipartite matching and project selection Lecture notes on NP from last semester. Lecture notes on network flow applications. 
Sections 7.5 and 7.11. Sections 8.1 and
8.3. 
HW8. Due 11/30. 
11 
Lecture 33: Exam three. Lecture 32: Why FordFulkerson algorithm works? Lecture 31: Network flow: FordFulkerson algorithm Lecture notes 
Sections 7.1, 7.2 and 7.3. Applications
of network flow: see Section 7.5 (bipartite matching) and
7.11 (project selection) 

10 
Lecture 30: Shortest path: properties of
relaxation; DAG; BellmanFord Lecture 29: Shortest path: Dijkastra's algorithm Lecture 28: Dynamic programming and shortest path Lecture notes from last spring. 
Section 4.4 (of Chapter 4). Section 6.8. 
HW7. Due 11/7. Programming assignment: edit distance. Due 11/28. Test data (for Linux/Mac) Test data (for Windows) 
9 
Lecture 27: Sequence alignment and
matrix chain multiplication. Lecture 26: Weighted interval scheduling Lecture 25: Dynamic programming: coin change and knapsack Lecture notes from last spring. 
Sections 6.1, 6.4 and 6.6. And see the
notes. Wikipedia
page on matrix chain multiplication. 
HW6. Due 10/31. 
8 
Lecture 24: Exam 2 Lecture 23: Dynamic programming: longest common subsequence Lecture 22: Dynamic programming: longest increasing subsequence Lecture notes from last semester (on LIS and LCS). 
The LCS problem is closely related to
sequence alignment in Section 6.6. Wikipedia
page on LCS. 

7 
Lecture 21: Linear time selection.
Introduction to dynamic programming. Lecture 20: Divide and conquer: integer multiplication, matrix multiplication, closest points Lecture 19: Divide and conquer algorithms: design and analysis Lecture notes from last spring. Lecture notes from last spring Lecture notes from last spring 
Chapter 5: 5.4 and 5.5. Chapter 6:
section 6.2. 
HW5. Due: 10/17 
6 
Lecture 18: Divide and conquer: the
Master theorem Lecture 17: Divide and conquer: merge sort Lecture 16: Greedy algorithm: MST Lecture notes from last spring Lecture notes on the Master theorem. This is from a lecture I gave for the other section of CSE 3500 a few weeks ago. 
Chapter 4: 4.5 on MST Chapter 5: 5.1 and 5.2. 

5 
Lecture 15: Exam 1 Lecture 14: Greedy algorithm: Huffman coding Lecture 13: Greedy algorithm: scheduling with minimum lateness Lecture notes from last spring. 
Chapter 4: 4.2 and 4.8. 
HW4. Due:
10/7. 
4 
Lecture 12: Greedy algorithm: interval
scheduling; scheduling with minimum lateness. Lecture 11: Strongly connected components. Greedy algorithm: coin change. Lecture 10: Graph DFS applications: topological sort and strongly connected components. Lecture notes. Lecture notes from last spring. 
Chapter 3. Chapter 4 (sections 1 and 2).
See 4.2 for scheduling with minimum lateness. 
HW3. Due: 9/26,
end of day. 
3 
Lecture 9: Graph DFS Lecture 8: Graph BFS and its application in testing bipartite graph. Lecture 7: Heap and priority queue. Lecture notes from last spring. 
Chapter 3. See Section 2.5 for heap and
priority queue. 

2 
Lecture 6: Common running time Lecture 5: Asymptotic notations. Lecture 4: No class (holiday) Lecture notes 
Chapter 2. 
HW2. Due: 9/19,
end of day. 
1 
Lecture 3: Insertion sort. BigO notation. Lecture 2: Several computational problems. Lecture 1: Basic concepts of algorithms. Stable matching problem: a motivating example. Lecture notes 1 (from last spring) Lecture notes 2 (from last spring) 
Chapter 2. We discussed insertion sort in
the class. Check out these
slides which contain detailed explanation on
insertion sort. Chapter 1 of the textbook (also available online here). 
HW1. Due: 9/6, end of day. Submit electronically to HuskyCT. 