| Lect. | Date | Topics |
|---|---|---|
| 1 | Jan. 10 |
First example: Euclid's GCD
algorithm History of algorithm design Performance Metrics |
| 2 | Jan. 12 |
Asymptotic analysis of running times |
| 3 |
Jan. 17 |
Basic
Graph
Algorithms: Specifying
graphs as input Depth and Breadth First Search Basic Data Structures: Stacks and Queues |
| 4 |
Jan. 19 |
Properties of the BFS and DFS solutions Directed Graphs: Strong Connectivity, Topological sorting Testing Bipartiteness |
| 5 |
Jan. 24 |
First
design technique: Greedy
Algorithms Example: Fractional Knapsack Sorting using Heaps The Shortest Path Problem |
| 6 |
Jan. 26 |
Dijkstra's Algorithm: Implementation using Heaps The Minimum Spanning Tree Problem: Cuts and cycles Kruskal's and Prim's Algorithms |
| 7 |
Jan. 31 |
Data Structures for Disjoint
Sets: Amortization |
| 8 |
Feb. 2 |
Analysis of Union-find with Path
Compression |
| 9 |
Feb. 7 |
FIRST
EXAM (Lec. 1 - 6) |
| 10 |
Feb. 9 |
Exchange Argument for
Greedy Algorithms Scheduling with Deadlines, Smith's Rule |
| 11 |
Feb. 14 |
2-D Convex Hulls Graham Scan, Gift Wrapping |
| 12 |
Feb. 16 |
Greedy
algorithms for Interval Graphs Interval Coloring, Interval Scheduling |
13 |
Feb. 21 |
Second Design Technique: Divide and Conquer Example: Merge-Sort Algorithm Recurrence Relation Examples. |
14 |
Feb. 23 |
Counting
Inversions Finding the closest pair of points in 2-D Integer Multiplication |
15 |
Feb. 28 |
Third Design Technique: Dynamic Programming Memoization: Weighted Interval Scheduling Integer Knapsack and Pseudo-polynomial time |
| 16 |
Mar. 2 |
Shortest paths with negative
edge lengths: Bellman Ford Algorithm |
| 17 |
Mar. 7 |
Sequence Alignment with Penalties Linear Space Alignment using Divide and Conquer |
| 18 |
Mar. 9 |
SECOND
EXAM (Lec. 7 - 14) |
| SPRING
BREAK |
||
| 19 |
Mar. 21 |
CLASS
CANCELED |
| 20 |
Mar. 23 |
Optimization Problems on Trees Basics of Probability Theory: Linearity of Expectation |
| 21 |
Mar. 28 |
Coupon Collector Quicksort, Global min-cuts |
| 22 |
Mar. 30 |
Randomized searching using Hash
functions |
| 23 |
Apr. 4 |
Network Flows:
Ford-Fulkerson algorithm Integrality and duality |
| 24 |
Apr. 6 |
Applications of flows and cuts:
Matching and scheduling |
| 25 |
Apr. 11 |
THIRD EXAM (Lec. 15 - 20) |
| 26 |
Apr. 13 |
Computational Intractability
and NP-Completeness Definition of NP 3SAT is NP-complete |
| 27 |
Apr. 18 |
Reductions between NP-complete
problems 3SAT -> Independent Set -> Vertex Cover -> Set Cover |
| 26 |
Apr. 20 |
NP-completeness of Directed
Hamiltonian Cycle, Hamiltonian Cycle, TSP, 3-Coloring, Subset Sum |
| 28 |
Apr. 25 |
Approximation Algorithms |
| May 3 |
FINAL
EXAM (7 - 10 PM) |