CS473: Fundamental Algorithms (Spring 2011)

Schedule and Lecture Notes

Date Topics Reading
Tuesday, January 18 1: Administrivia, overview, motivation, graph basics, DFS
(notes and handout versions)
Chapter 0, section 1.1 and 1.2 from textbook, Jeff Erickson's notes on induction/proofs
Thursday, January 20 2: DFS in Directed Graphs, Strong Connected Components, DAGs
(notes and handout versions)
Chapter 3 of book
Tuesday, January 25 3: BFS, Single-source Shortest Paths
(notes and handout versions)
Chapter 3 of book
Thursday, January 27 4: Shortest Paths with Negative Edge Lengths
(notes and handout versions)
Chapter 3 of Dasgupta etal book, Jeff Erickson's notes
Tuesday, February 1 5: Reductions, Recursion, Divide and Conquer
(notes and handout versions)
Chapter 5, Jeff Erickson's notes on recurrences
Thursday, February 3 6: Recurrences, Closest Pair, Quick Sort and Quick Selection Jeff Erickson's notes on recurrences
Tuesday, February 8 Catch up lecture  
Thursday, February 10 7: Exponentiation, Binary Search, Intro to Dynamic Programming
(notes and handout versions)
Tuesday, February 15 8: Dynamic Programming: Longest Increasing Subsequence, Weighted Interval Scheduling
(notes and handout versions)
Thursday, February 17 9: Dynamic Programming: Independent Sets in Trees, Edit Distance
(notes and handout versions)
Tuesday, February 22 10: Dynamic Programming: Shortest Paths, Knapsack
(notes and handout versions)
Thursday, February 24 Midterm 1: 7-9pm in LMS 141 Topics
Tuesday, March 1 11: Greedy Algorithms: Examples and Proof Techniques
(notes and handout versions)
Thursday, March 3 12: Greedy Algorithms for Minimum Spanning Tree
(notes and handout versions)
Tuesday, March 8 13: Introduction to Randomized Algorithms
(notes and handout versions)
Lecture Notes, Jeff Erickson's notes
Thursday, March 10 14: Randomized Quick Sort and Selection
(notes and handout versions)
Lecture Notes, Jeff Erickson's notes
Friday, March 11 Drop Deadline  
Tuesday, March 15 15: Hash Tables
(notes and handout versions)
Lecture Notes, Jeff Erickson's notes
Thursday, March 17 16: Introduction to Network Flows
(notes and handout versions)
Tuesday, March 19-28 Spring break
Tuesday, March 29 17: Ford-Fulkerson Algorithm for Maximum Flow and Minimum Cut
(notes and handout versions)
Thursday, March 31 18: Applications of Network Flow: Disjoint Paths and Bipartite Matchings
(notes and handout versions)
Tuesday, April 5 19: More Applications of Network Flow
(notes and handout versions)
Even more notes
Thursday, April 7 20: Polynomial time Reductions
(notes and handout versions)
Tuesday, April 12 Midterm 2: 7-9pm in SC 1404 Topics (Updated)
Thursday, April 14 21: SAT and Definition of NP
(notes and handout versions)
Tuesday, April 19 22: NP-Completeness, Circuit Sat and Cook-Levin Theorem
(notes and handout versions)
Thursday, April 21 23: More NP-Complete Problems
(notes and handout versions)
Tuesday, April 26 24: P, NP, co-NP, Self Reductions
(notes and handout versions)
Thursday, April 28 Catch up lecture  
Tuesday, May 3 25: Heuristics, Closing thoughts
(notes and handout versions)
Chapter 9
Wednesday, May 11 Final Exam: 1:30-4:30  




Acknowledgments: Lecture notes are based on notes of Jeff Erickson, Sariel Har-Peled, Chandra Chekuri and the slides of Mahesh Viswanathan and the books by Kleinberg and Tardos, and by Dasgupta, Papadimitrioiu and Vazirani. The slides and notes are typeset using LaTeX and the beamer package.
Last modified: Sat Apr 9 22:20:13 CDT 2011