15-451/651: Algorithm Design and Analysis (Fall 2025)

Schedule

Links

Week 1

Tue 26-AugLecture 1: Introduction, Algorithm Analysis, Linear-time Selection [Notes] [Slides]
Thu 28-AugLecture 2: Concrete Models and Lower Bounds [Notes] [Slides]
Homework 1 released[Homework 1]
Fri 29-AugRecitation 1: Lower Bounds[Recitation 1] [Solutions]

Week 2

Tue 02-SepLecture 3: Integer Models and Integer Sorting [Notes] [Slides]
Wed 03-SepHomework 1 due[Solutions]
Thu 04-SepLecture 4: Hashing: Universal and Perfect Hashing [Notes] [Slides]
Homework 2 released[Homework 2]
Fri 05-SepRecitation 2: Integer Sorting and Hashing[Recitation 2] [Solutions]

Week 3

Tue 09-SepLecture 5: Fingerprinting [Notes] [Slides]
Programming Problem 1 Released[Programming 1]
Wed 10-SepHomework 2 due[Solutions]
Thu 11-SepLecture 6: Range Query Data Structures [Notes] [Slides]
Homework 3 released[Homework 3]
Fri 12-SepRecitation 3: Fingerprinting and Range Queries[Recitation 3] [Solutions]

Week 4

Tue 16-SepLecture 7: Amortized Analysis [Notes] [Slides]
Wed 17-SepHomework 3 orals
Thu 18-SepLecture 8: Union-Find (More Amortized Analysis!) [Notes] [Slides]
Homework 3 orals
Fri 19-SepRecitation 4: Amortized Analysis and Union Find[Recitation 4] [Solutions]
Homework 3 orals[Solutions]
Programming Problem 1 due

Week 5

Tue 23-SepMidterm One at 7:00pm
Thu 25-Sep Lecture 9: Dynamic Programming I [Notes] [Slides]
Homework 4 released[Homework 4]
Fri 26-SepRecitation 5: Dynamic Programming[Recitation 5] [Solutions]

Week 6

Tue 30-Sep Lecture 10: Dynamic Programming II [Notes] [Slides]
Programming Problem 2 Released[Programming 2]
Wed 01-OctHomework 4 due[Solutions]
Thu 02-Oct Lecture 11: Network Flows I: Flows, Cuts, and Matchings [Notes] [Slides]
Homework 5 released[Homework 5]
Fri 03-OctRecitation 6: Network Flows[Solutions]

Week 7

Tue 07-OctLecture 12: Network Flows II: Polynomial-time Algorithms [Notes] [Slides]
Wed 08-OctHomework 5 due[Solutions]
Thu 09-Oct Lecture 13: Network Flows III: Ninimum-cost Flows [Notes] [Slides]
Fri 10-OctRecitation 7: Advanced Network Flow[Solutions]
Programming Problem 2 due

Fall Break!

Mon 13-OctFall Break begins
Fri 17-OctFall Break ends

Week 8

Tue 21-OctLecture 14: Game Theory [Notes] [Slides]
Programming Problem 3 Released[Programming 3]
Thu 23-OctLecture 15: Linear Programming [Notes] [Slides]
Homework 6 released[Homework 6]
Fri 24-OctRecitation 8: Game Theory and LPs[Solutions]

Week 9

Tue 28-OctLecture 16: Linear Programming II: Duality [Notes] [Slides]
Wed 29-OctHomework 6 orals
Thu 30-OctLecture 17: Linear Programming III: Integrality and Polytopes [Notes] [Slides]
Homework 6 orals
Fri 31-OctRecitation 9: More Linear Programming[Solutions]
Homework 6 orals[Solutions]
Programming Problem 3 due

Week 10

Tue 04-NovMidterm Two at 7:00pm
Thu 06-Nov Lecture 18: Approximation Algorithms [Notes] [Slides]
Homework 7 released[Homework 7]
Fri 07-NovRecitation 10: Approximation Algorithms[Solutions]

Week 11

Tue 11-NovLecture 19: Online Algorithms [Notes] [Slides]
Programming Problem 4 Released [Programming 4]
Wed 12-NovHomework 7 due [Solutions]
Thu 13-NovLecture 20: Streaming Algorithms [Notes] [Slides]
Homework 8 released[Homework 8]
Fri 07-NovRecitation 11: Online and Streaming Algorithms[Solutions]

Week 12

Tue 18-NovLecture 21: Computation Geometry I: Fundamentals and the Convex Hull [Notes] [Slides]
Wed 19-NovHomework 8 due [Solutions]
Thu 20-NovLecture 22: Computational Geometry II: Randomized Incremental Algorithms [Notes] [Slides]
Homework 9 released[Homework 9]
Fri 21-NovRecitation 11: Computational Geometry [Solutions]
Programming Problem 4 due

Week 13

Tue 25-NovLecture 23: Splay Trees [Notes] [Slides]
Wed 26-NovThanksgiving Break
Thu 27-NovThanksgiving Break
Fri 28-NovThanksgiving Break

Week 14

Tue 02-DecLecture 24: The Algorithmic Magic of Polynomials [Notes] [Slides]
Wed 03-DecHomework 9 orals
Thu 04-DecLecture 25: The Fast Fourier Transform [Notes] [Slides]
Homework 9 orals
Fri 05-DecRecitation 13: Polynomials, FFT [Recitation 13] [Solutions]
Homework 9 orals[Solutions]

Finals

TBAFinal Exam at TBA