Following is a tentative schedule of topics for this course:
Topic | Reading | Assignment(s) Due |
Wed, Jan 10: Introduction to Algorithms | (Handout) Levitin, Sec. 1.1-1.3 | |
Fri, Jan 12: First problem: Stable Matching | Sec. 1.1 | |
Mon, Jan 15: (No classes) | ||
Wed, Jan 17: Five Representative Problems | Sec. 1.2 | |
Fri, Jan 19: Algorithm Analysis [Slides: pdf, ppt] | Sec. 2.1 | |
Mon, Jan 22: Orders of growth | Sec. 2.2, 2.4 | |
Wed, Jan 24: Implementing Stable Matching | Sec. 2.3 | |
Fri, Jan 26: Graphs [Slides: pdf, ppt] | Sec. 3.1, 3.2 | |
Mon, Jan 29: Graph traversals | Sec. 3.3, 3.4 | |
Wed, Jan 31: Directed graphs, topological ordering | Sec. 3.5, 3.6 | |
Fri, Feb 2: Greedy algorithms: Interval scheduling | Sec. 4.1 | |
Mon, Feb 5: Greedy algorithms: More scheduling | Sec. 4.2 | |
Wed, Feb 7: Shortest Paths | Sec. 4.4 | |
Fri, Feb 9: Minimum spanning trees | Sec. 4.5, 4.6 | |
Mon, Feb 12: Clustering | Sec. 4.6, 4.7 | |
Wed, Feb 14: Huffman Codes | Sec. 4.8 | |
Fri, Feb 16: Divide and conquer: Merge sort | Sec. 5.1 | |
Mon, Feb 19: Recurrence relations, inversions | Sec. 5.2, 5.3 | |
Wed, Feb 21: Closest pairs of points | Sec. 5.3, 5.4 | |
Fri, Feb 23: Closest pairs | Sec. 5.5 | |
Mon, Feb 26: Integer multiplication | ||
Wed, Feb 28: Review/Catch-up | ||
Fri, Mar 2: ***MIDTERM EXAM*** | ||
Mon, Mar 5: Dynamic programming: More scheduling | Sec. 6.1, 6.2 | |
Wed, Mar 7: Segmented Least Squares | Sec. 6.3 | |
Fri, Mar 9:
Subset sums and knapsacks
Exercise: subsetsum.py |
Sec. 6.4 | |
Mar 12-16: (No classes) | ||
Mon, Mar 19: RNA secondary structure | Sec. 6.5 | |
Wed, Mar 21: Sequence alignment | Sec. 6.6 | |
Fri, Mar 23: Shortest paths | Sec. 6.8 | |
Mon, Mar 26: More shortest paths | Sec. 6.9 | |
Wed, Mar 28: Polynomial-time reductions | Sec. 8.1 | |
Fri, Mar 30: Reductions and satisfiability | Sec. 8.2 | |
Mon, Apr 2: Definition of NP | Sec. 8.3 | |
Wed, Apr 4: NP-completeness | Sec. 8.4 | |
Fri, Apr 6: (no classes) | ||
Mon, Apr 9: Sequencing problems | Sec. 8.5 | |
Wed, Apr 11: Partitioning, graph coloring | Sec. 8.6, 8.7 | |
Fri, Apr 13: Numerical problems | Sec. 8.8 | |
Mon, Apr 16: Backtracking | Levitin, Sec. 11.1 | |
Wed, Apr 18: Branch-and-bound | Levitin, Sec. 11.2 | |
Fri, Apr 20: Approximation algorithms | Levitin, Sec. 11.3 | |
Mon, Apr 23: TBA | ||
Wed, Apr 25: (Project resentations) | ||
Fri, Apr 27: Wrap-up | Levitin, Epilogue | |
Wed, May 2: FINAL EXAM (8-10 a.m.) |