Week 16:
Monday, 12/3
Lecture: Go over the NP-completeness assignment and solved a few additional problems
Wednesday, 12/5
Lecture: Review of dynamic programming
Friday, 12/7
Lecture: Go over the local search assignment, and do a general review for the exam''
Week 15:
Monday, 11/26
Lecture: Coping with NP-completeness: local search [ slides ].
Reading: Chapter 12 in Kleinberg and Tardos.
Wednesday, 11/28
Lecture: Local search, continued.
Reading: Chapter 12 in Kleinberg and Tardos.
Friday, 11/30
Lecture: Local search, continued.
Reading: Chapter 12 in Kleinberg and Tardos.
Written homework #8 is available.
Week 14:
Thanksgiving. Have a good break!
Week 13:
Monday, 11/12
Lecture: P, NP, and NP-completeness - continued.
Reading: Chapter 8.3,8.4 in Kleinberg and Tardos.
Wednesday, 11/13
Lecture: More NP-complete problems [ slides ].
Reading: Chapter 8.5 in Kleinberg and Tardos.
Friday, 11/15
Lecture: quiz and review of NP and NP-completeness
Week 12:
Monday, 11/4
Lecture: Continue the applications of maximum network flow.
Reading: Chapter 7.5,7.7 in Kleinberg and Tardos.
Wednesday, 11/6
Lecture: Reductions as a tool for showing problem hardness [ slides ].
Reading: Chapter 8.1,8.2 in Kleinberg and Tardos.
Friday, 11/8
Lecture: P, NP, and NP-completeness [ slides ].
Reading: Chapter 8.3,8.4 in Kleinberg and Tardos.
Week 11:
Monday, 10/29
Lecture: Maximum network flow [ slides ].
Reading: Chapter 7.1,7.2 in Kleinberg and Tardos.
Wednesday, 10/31
Lecture: Maximum network flow - continued.
Reading: Chapter 7.1,7.2 in Kleinberg and Tardos.
Friday, 11/2
Lecture: Applications of maximum network flow [ slides ].
Reading: Chapter 7.5-7.7 in Kleinberg and Tardos.
Assignments: The next written assignment is available.
Week 10:
Monday, 10/22
Lecture: Dynamic programming - we'll continue the discussion of sequence alignment.
Reading: Chapter 6.6 in Kleinberg and Tardos.
Wednesday, 10/24
Lecture: Dynamic programming - linear-space sequence alignment using a hybrid dynamic programming/divide and conquer approach .
Reading: Chapter 6.7 in Kleinberg and Tardos.
Friday, 10/26
Lecture: Dynamic programming - the Bellman-Ford algorithm for shortest paths [ slides ].
Reading: Chapter 6.8 in Kleinberg and Tardos.
Week 9:
Monday, 10/15
Lecture: Dynamic programming - weighted interval scheduling [ slides ].
Reading: Chapter 6.1 in Kleinberg and Tardos.
Wednesday, 10/17
Lecture: Dynamic programming - the knapsack problem (monday slides continued).
Reading: Chapter 6.4 in Kleinberg and Tardos.
Friday, 10/19
Lecture: Dynamic programming - sequence alignment [ slides ].
Reading: Chapter 6.6 in Kleinberg and Tardos.
Week 8:
Monday, 10/8
Lecture: Divide and conquer algorithms [ slides ].
Reading: Chapter 5.1,5.2 in Kleinberg and Tardos.
Wednesday, 10/10
Lecture: Divide and conquer algorithms - closest pair problem [ slides ].
Reading: Chapter 5.4 in Kleinberg and Tardos.
Assignments: Written assignment #4 has been posted.
Friday, 10/12
Lecture: Divide and conquer algorithms - integer multiplication [ slides ].
Reading: Chapter 5.5 in Kleinberg and Tardos.
Week 7:
Monday, 10/1
Lecture: Greedy algorithms - continue minimum spanning trees.
Reading: Chapter 4.5 - 4.7 in Kleinberg and Tardos.
Wednesday, 10/3
Lecture: Greedy algorithms - Huffman encoding [ slides ].
Reading: Chapter 4.8 in Kleinberg and Tardos.
Friday, 10/5
Lecture: midterm.
Week 6:
Monday, 9/24
Lecture: Greedy algorithms - interval scheduling [ slides ].
Reading: Chapter 4.1 in Kleinberg and Tardos.
Wednesday, 9/26
Lecture: Greedy algorithms - Dijkstra's algorithm [ slides ].
Reading: Chapter 4.4 in Kleinberg and Tardos.
Friday, 9/28
Lecture: Greedy algorithms - minimum spanning trees [ slides ].
Here's the demo of Dijkstra's algorithm.
Reading: Chapter 4.5, 4.7 in Kleinberg and Tardos.
Week 5:
Monday, 9/17
Lecture: Graphs - DFS.
Reading: Chapter 3 in Kleinberg and Tardos.
Assignments: written assignment 3 is posted.
Wednesday, 9/19
Lecture: Graphs - bipartite graphs, strongly connected components.
Reading: Chapter 3 in Kleinberg and Tardos.
Friday, 9/21
Lecture: Graphs - DAGs.
Reading: Chapter 3 in Kleinberg and Tardos.
Week 4:
Monday, 9/10
Lecture: Finish Big-O analysis.
Reading: Chapter 2 in Kleinberg and Tardos.
Assignments: written assignment 2 is posted.
Wednesday, 9/12
Lecture: Graphs [ slides ].
Reading: Chapter 3 in Kleinberg and Tardos.
Friday, 9/14
Lecture: Graphs - graph traversal using BFS (continuing graph slide set).
Reading: Chapter 3 in Kleinberg and Tardos.
Week 3:
Wednesday, 9/5
Lecture: On friday we just started on Big O analysis. We will continue this topic.
Reading: Chapter 2 in Kleinberg and Tardos.
Assignments: written assignment 1 is due in class on Wednesday, and programming assignment 1 is due thursday at 5pm.
Friday, 9/7
Lecture: More Big-O.
Reading: Chapter 2 in Kleinberg and Tardos.
Week 2:
Monday, 8/27
Lecture: Finish discussion of the stable matching problem. Representative problems.
Reading: Chapter 1 in Kleinberg and Tardos.
Wednesday, 8/29
Lecture: We will be in a labs (215 and 225) to help you with your assignments.
Friday, 8/31
Lecture: Big O analysis [ slides ]. quiz on big O.
Reading: Chapter 2 in Kleinberg and Tardos.
Week 1:
Monday, 8/20
Lecture: Course introduction and the stable matching problem [ slides ].
Reading: Chapter 1 in Kleinberg and Tardos.
Links: Here's a nice demo and explanation of the stable matching problem. The NRMP explains their matching algorithm, which is a variant of the Gale Shapley algorithm.
Wed, 8/22
Lecture: Crash course in Python. Here's the set code I showed.
Friday, 8/24
Lecture: The Gale Shapely algorithm for the stable matching problem (continuing monday's slide set).
Reading: Chapter 1 in Kleinberg and Tardos.
Assignments: Written assignment 1 is available.
