Welcome to the Spring 2024 homepage for CMPSCI 611 - Advanced Algorithms.
- Instructor:
- TAs:
- Vinayak amd Shuang Yang
- Textbook:
The required textbook will be
- Lecture Notes from CMPSCI 611 will be available soon via Moodle.
- Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein.
- Algorithm Design by Kleinberg and Tardos.
- Algorithms by Dasgupta, Papadimitriou, Vazirani.
- Randomized Algorithms by Motwani and Raghavan.
- Probability and Computing by Mitzenmacher and Upfal.
- Approximation Algorithms by Vazirani.
- Support Material:
- If you would like to write your homework solutions in LaTeX, here's a template (and here's a compiled version.)
- Practice Midterms: 2024 Midterm and Solutions, 2020 Midterm and Solutions, 2017 Midterm 1 and Solutions, 2017 Midterm 2 and Solutions, 2015 Midterm and Solutions, 2009 Midterm and Solutions, 2012 Midterm and Solutions, 2010 Midterm and Solutions.
- Practice Finals: 2020 Final Exam and Solutions, 2017 Final Exam and Solutions, 2015 Final Exam and Solutions, 2012 Final and Rough Solutions, 2010 Final and Rough Solutions, 2009 Final and Rough Solutions, 2005 Practice Final and Solutions.
- Homework: Collaborating with at most three other students in the homework is allowed and you should mention who you worked with. You're not allowed to use material from the web (or indeed any material except from that listed on the course page) or talk about the homework with anybody outside your collaboration group (aside from the lecturer or TA.)
- Quizzes: No collaboration! But you can consult any material you like.
- Exams: Closed book and no collaboration.
Date | Topic | Reading and Background |
---|---|---|
Lec 1 | Preliminaries, Mergesort, Master Theorem | Slides, Section 1, 2.1, 2.2 |
Lec 2 | Matrix Multiplication, Closest Pairs | Slides, Section 2.3, 2.4. A blog post describing recent progress on matrix multiplication. |
Lec 3 | Fast Fourier Transform | Slides, Section 2.5 |
Lec 4 | Minimum Spanning Trees | Slides, Section 3.1 |
Lec 5 | Subset Systems, Matroids | Slides, Section 3.2, 3.3 |
Lec 6 | Cardinality Theorem and Examples | Slides, Section 3.4 |
Lec 7 | Bipartite Matchings, The Union-Find Problem | Slides, Section 3.4, 3.5 |
Lec 8 | Dynamic Programming, e.g., Knapsack Problem and Floyd-Warshall | Slides, Section 4.1-4.4 |
Lec 9 | Dijkstra | Slides, Section 4.5 |
Lec 10 | Seidel | Slides, Section 4.6 |
Lec 11 | Network Flow Part 1 | Slides, Section 5.1-5.2 |
Lec 12 | Network Flow Part 2 | Slides, Section 5.3-5.4 |
Lec 13 | Quicksort | Slides, Section 6.1 |
Lec 14 | Karger's Algorithm | Slides, Section 6.2, 6.3 |
Lec 15 | Tail Inequalities and Lazy Select | Slides, Section 6.5 |
Lec 16 | Chernoff Bounds and Balls and Bins | Slides, Section 6.5, Video showing concentration of binomial distribution |
Lec 17 | More Balls and Bins, Polynomial Multiplication | Slides |
Lec 18 | Approximation Algorithms | Slides |
Lec 19 | More Approximation Algorithms: TSP and Weighted Set Cover | Slides, Section 7.1-8.2.1. |
Lec 20 | P versus NP, Approximations, Independent Set Problem | Slides, Section 8.2.2-8.2.4. |
Lec 21 | NP Completeness | Slides, Section 8.2.4-8.4 |
Lec 22 | More NP Completeness and Approximation Algorithms | Slides, |
Lec 23 | Linear Programming, Simplex Method | Slides, |
Lec 24 | Analysis of the Simplex Method | Slides, |
Lec 25 | Review | Slides, |