Andrew McGregor

Associate Professor

Welcome to the Spring 2024 homepage for CMPSCI 611 - Advanced Algorithms.




  • Honesty and Collaboration Policy: Violating any of the following rules risks an automatic F. Ask if you're unsure about any of the policies.
    • 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.

  • Schedule and Slides: Here's an approximate schedule for the course. Note that this'll be updated as we go along depending on our progress and, hopefully, we'll get to squeeze in a couple of extra topcs. I'll add slides after each class (some links will be dead until the slides are added).

    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,