Lecture Topics (tentative)
Mon, Jan 22— Course Intro: Tiling Problems (Notes)
Reading: KT § 1.2
Wed, Jan 24— Stable Matching I: Gale-Shapley Algorithm (Notes)
Reading: KT § 1.1
Fri, Jan 26— Stable Matching II: Analyzing Gale-Shapley (Notes)
Reading: KT § 1.1
Mon, Jan 29— Greedy Stays Ahead: Interval Scheduling (Notes)
Reading: KT § 4.1
Wed, Jan 31— Exchange Arguments: The Cut Lemma (Notes)
Reading: KT § 4.5 (see also, § 4.2)
Fri, Feb 2— Algorithms for Minimum Spanning Tree (Notes)
Reading: KT § 4.5
Mon, Feb 5— Fast Implementation of Kruskal's and Prim's Algorithms (Notes)
Reading: KT § 4.6 (optional additional reading: § 4.8 on Huffman coding, a greedy algorithm for lossless data compression)
Wed, Feb 7— Introduction to Dynamic Programming (Notes)
Reading: Lecture Reading and KT § 6.1-6.2 (Recommended)
Fri, Feb 9— Sequence Alignment via Minimum Edit Distance (Notes)
Reading: KT § 6.6
Mon, Feb 12— Shortest Paths: Bellman-Ford Algorithm (Notes)
Reading: KT § 6.8 (optional additional reading: § 6.9 on distance vector protocols)
Wed, Feb 14— RNA Folding (Notes)
Reading: KT § 6.5
Fri, Feb 16— Introduction to Divide and Conquer (Notes)
Reading: KT § 5.1-5.3
Mon, Feb 19— Karatsuba Integer Multiplication (Notes)
Reading: KT § 5.5
Wed, Feb 21— Multiplying Polynomials and Convolution (Notes)
Reading: KT § 5.6
Fri, Feb 23— The Fast Fourier Transform (Notes)
Reading: KT § 5.6
Mon, Feb 26—
Feb Break (No Class)
Wed, Feb 28—
Randomized Median Finding (Notes)
Reading: KT § 13.5 and 13.3 (Review)
Fri, Mar 1— Analyzing Randomized Median (Notes)
Reading: KT § 13.5 and 13.3 (Review)
Mon, Mar 4— Network Flow I: Problem Definitions (Notes)
Reading: KT § 7.1
Wed, Mar 6— Network Flow II: The Ford-Fulkerson Algorithm (Notes)
Reading: KT § 7.1-7.2
Fri, Mar 8— Network Flow III: Ford-Fulkerson and the Max-Flow Min-Cut Theorem (Notes)
Reading: KT § 7.1-7.2
Mon, Mar 11— Network Flow IV: Max-Flow Min-Cut and Max Bipartite Matching (Notes)
Reading: KT § 7.5
Wed, Mar 13— Network Flow V: Max Flow Reductions (Notes)
Reading: KT § 7.7, 7.12
Fri, Mar 15— Network Flow VI: Min Cut Reductions (Notes)
Reading: KT § 7.10-7.11
Mon, Mar 18— NP-Completeness I: SAT and 3-SAT (Notes)
Reading: KT § 8.1-8.2
Wed, Mar 20— NP-Completeness II: Graph Problems (Notes)
Reading: KT § 8.1-8.2
Fri, Mar 22— NP-Completeness III: Hamiltonian Cycle (Notes)
Reading: KT § 8.5
Mon, Mar 25— NP-Completeness IV: Hamiltonian Cycle Continued (Notes)
Reading: KT § 8.5
Wed, Mar 27— NP-Completeness V: SAT is Hard (Notes)
Reading: KT § 8.4
Fri, Mar 29—
NP-Completeness VI: Towards Faster SAT Algorithms (Notes)
Mon, Apr 8—
No Class
Wed, Apr 10—
Computability I: Turing Machines (Notes)
Wed, Apr 10— Computability I: Turing Machines (Notes)
Reading: Lecture Reading TM Notes § 1-2
Fri, Apr 12— Computability II: Turing Machine Examples (Notes)
Reading: Lecture Reading TM Notes § 1-2
Mon, Apr 15— Computability III: Universal Turing Machine (Notes)
Reading: Lecture Reading TM Notes § 3-4
Wed, Apr 17— Computability IV: Computability and Undecidability (Notes)
Reading: Lecture Reading TM Notes § 4
Fri, Apr 19— Computability V: The Halting Problem and Computability Reductions
Reading: Lecture Reading TM Notes § 4-6
Mon, Apr 22— Computability VI: Rice's Theorem (Notes)
Reading: Lecture Reading TM Notes § 6-7
Wed, Apr 24— Greedy Approximation for Max Cut (Notes)
Reading: KT § 11.1 and 12.4
Fri, Apr 26— Integer and Linear Programming (Notes)
Reading: KT § 11.6
Mon, Apr 29— FPTAS for Knapsack (Notes)
Reading: KT § 11.8
Wed, May 1— Intro to Cryptography (Notes)
Reading: Lecture Reading Crypto Notes § 1-2
Fri, May 3— Diffie-Hellman Key Exchange (Notes)
Reading: Lecture Reading Crypto Notes § 3