Andrew McGregor

Associate Professor

Welcome to the Fall 2019 homepage for CMPSCI 611 - Advanced Algorithms.

  • Instructor:
  • TA:
    • Raghav Addanki and David Tench.
    • Office hours: 4-5pm Monday in CS314 (Raghav), 2-3pm Thursday in CS207 (David)

  • Textbook: The required textbook will be
    • Lecture Notes from CMPSCI 611 by Prof. Micah Adler and this will be available (probably by the end of the first week of class) from Collective Copies. See here for a list corrections and typos.
    Other books you might find generally useful include:
    • Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein.
    • Algorithm Design by Kleinberg and Tardos.
    • Algorithms by Dasgupta, Papadimitriou, Vazirani.
    You may also find sections of the following books helpful:
    • Randomized Algorithms by Motwani and Raghavan.
    • Probability and Computing by Mitzenmacher and Upfal.
    • Approximation Algorithms by Vazirani.

  • Homeworks and Exams:
  • Late Policy: Homeworks are due at 8pm in Gradescope.

  • 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
    3 Sept Preliminaries, Mergesort, Master Theorem Slides, Section 1, 2.1, 2.2
    5 Sept Matrix Multiplication, Closest Pairs Slides, Section 2.3, 2.4. A blog post describing recent progress on matrix multiplication.
    10 Sept Fast Fourier Transform Slides, Section 2.5
    12 Sept Minimum Spanning Trees Slides, Section 3.1
    17 Sept Subset Systems, Matroids Slides, Section 3.2, 3.3
    19 Sept No class (Instructor at workshop)
    21 Sept Cardinality Theorem and Examples Slides, Section 3.4
    26 Sept Bipartite Matchings, The Union-Find Problem Slides, Section 3.4, 3.5
    1 Oct Dynamic Programming, e.g., Knapsack Problem and Floyd-Warshall Slides, Section 4.1-4.4
    3 Oct Dijkstra Slides, Section 4.5
    8 Oct Seidel Slides, Section 4.6
    10 Oct Network Flow Part 1 Slides, Section 5.1-5.2
    15 Oct No Class (Monday Schedule)
    17 Oct Network Flow Part 2 Slides, Section 5.3-5.4
    22 Oct Quicksort Slides, Section 6.1
    24 Oct Karger's Algorithm Slides, Section 6.2, 6.3
    29 Oct Tail Inequalities and Lazy Select Slides, Section 6.5
    31 Oct Chernoff Bounds and Balls and Bins Slides, Section 6.5, Video showing concentration of binomial distribution
    5 Nov More Balls and Bins, Polynomial Multiplication Slides,
    7 Nov Data Streams and Count-Min Sketch Slides, Original Paper
    12 Nov Approximation Algorithms Slides, Section 7.1-8.2.1.
    14 Nov P versus NP, Approximations, Independent Set Problem Slides, Section 8.2.2-8.2.4.
    19 Nov More Approximations, Metric TSP Problem Slides, Section 8.2.4-8.4
    21 Nov Approximation Algorithms Slides,
    26 Nov No class (Thanksgiving)
    28 Nov No class (Thanksgiving)
    5 Dec Set Cover Problem, Poly-Time Approximation Scheme Slides, Section 8.5-8.7
    3 Dec Linear Programming, Simplex Method Slides,
    5 Dec Analysis of the Simplex Method Slides,
    10 Dec Review and Any Questions Slides,