CS 312: Algorithms
- Jan 22: Course Overview, Stable Matching
- Reading: Kleinberg Chapter 1
- Slides
- Jan 24: Stable Matching, Efficiency
- Reading: Kleinberg, 2.1-2.2
- Slides
- Homework 1
- Jan 28: Fourth hour
- Kleinberg, Chapter 1, Exercise 4
- Jan 29: Asymptotic Growth
- Slides
- Jan 31: Analyzing Running Time of Algorithms
- Reading: Kleinberg, 2.3-2.5
- Slides
- Sipser article on P vs NP
- Homework 2
- Feb 4: Fourth Hour
- Kleinberg. Chapter 1, Exercise 6 (ship scheduling)
- Feb 5: Graphs, BFS, DFS
- Reading: Kleinberg, Chapter 3
- Slides
- Feb 7: BFS/DFS Implementation & Running Time
- Slides
- Homework 3
- Feb 11: Fourth Hour
- Homework 3
- Feb 12: Directed Graphs, DAGS, and Topological Sort
- Reading: Kleinberg 3.5, 3.6
- Broder et al., Graph structure in the web
- Slides
- Feb 14: Greedy Algorithms: Interval Scheduling
- Reading: Kleinberg 4.1, 4.2
- Slides
- Homework 4
- Feb 18: Fourth Hour
- Homework 4 Problem 1
- Feb 19: Greedy; Dijkstra
- Reading: Kleinberg 4.4
- Slides
- Feb 21: Dijkstra; Minimum Spanning Tree
- Reading: Kleinberg 4.5
- Slides
- Feb 25: Fourth hour
- Homework 4 problems
- Feb 26: Minimum Spanning Tree
- Midterm 1 out
- Feb 28: Union Find
- Slides
- Mar 5: Divide and Conquer Intro, Solving Recurrences
- Reading: Kleinberg, Chapter 5.1–5.2
- Slides
- Homework 5
- Mar 7:
Counting Inversions, Closest Pair of Points
- Reading: Kleinberg, Chapter 5.3–5.4
- Slides
- Mar 11: Fourth Hour
- Worked on HW5
- Mar 12: Dynamic Programming Intro
- Reading: Kleinberg, Chapter 6, up through 6.2
- Slides
- Homework 6
- Mar 14: Weighted Interval Scheduling, Segmented Least Squares
- Reading: Kleinberg, 6.3
- Slides
- Week of March 18: SPRING BREAK
- Mar 25: Fourth Hour
- Work on HW6
- Mar 26: Segmented Least Squares, Subset Sum
- Reading: Kleinberg, 6.4
- Slides
- Notes
- Homework 7
- Mar 28: Shortest Paths with Negative Weights: Bellman-Ford Algorithm
- Reading: Kleinberg, 6.8
- April 1: Fourth Hour
- Work on HW7
- April 2: Shortest Paths with Negative Weights: Bellman-Ford Algorithm
- Reading: Kleinberg, 6.8
- Midterm #2 out in class; due Tuesday 4/9
- Slide (yes, just one)
- April 4: Network Flow Intro
- Reading: Kleinberg, 7.0, 7.1
- Slides
- April 8: Fourth hour canceled (due to Midterm #2)
- April 9: Ford-Fulkerson
- Reading: Kleinberg, 7.0, 7.1
- Slides
- Notes
- April 11: Max-Flow Min-Cut
- Reading: Kleinberg, 7.2
- Homework 8
- Slides
- Notes
- April 15: Fourth hour
- Reading: Kleinberg, 7.5
- Cover Bipartite Matching, and work on HW8 Problem #5
- April 16: Flow Applications: Circulation, Airline Scheduling, Graph Cuts
- Reading: Kleinberg 7.7, 7.9, 7.10
- Slides
- Graph Cuts Slides
- April 18: Polynomial Reducibility
- Reading: Kleinberg 8, 8.1, 8.2
- Slides
- Homework 9 (due April 29 at 10 am)
- April 22: Fourth Hour
- Homework #9
- April 23: NP-Completeness
- Reading: Kleinberg 8.3, 8.4
- Slides
- April 25: Conclusion
- Slides