CS265/CME309: Randomized Algorithms and Probabilistic Analysis, Fall 2019


  • 10/16: Selected solutions for problem set 3.: In general, I will post solutions/solution sketches for the one or two questions from the pset that students have the most questions on....
  • 10/16: Lecture 8 notes: metric embeddings, and Bourgain's embedding of any finite metric into R^d under L1.
  • 10/14: The fourth problem set is here: Problem Set 4. It is due at 11:59pm on Tuesday, 10/22. Solution template for ps4.
  • 10/14: Lecture 7 notes are now posted.
  • 10/13: My 4-5:30pm Monday office hours will be cancelled this week (I'll be out of town Mon/Tues).
  • 10/9: Lecture 6 notes are now posted.
  • 10/7: The third problem set is here: Problem Set 3. It is due at 11:59pm on Tuesday, 10/15. Feel free to use this solution template for ps3.
  • 10/7: Lecture 5 notes are now posted.
  • 10/7: Starting this week, Ray's office hours will be in Gates B26.
  • 10/1: Lecture notes for this week have been updated to include the "fingerprinting" application we discussed at the end of class.
  • 9/30: The second homework is here: Problem Set 2. It is due at 11:59pm on Tuesday, 10/8. Feel free to use this solution template for ps2.
  • 9/30: Lecture notes for this week: Lecture 3 and 4 Notes (combined). [These will be updated after Wednesday's class to include Lecture 4 material.]
  • 9/27: For those of you who wanted the latex of the problem set, or wanted the problem statements in your solution, feel free to use this solution template for ps1.
  • 9/26: I'll be giving an open lecture today in the ISL colloquium (4:30pm in Packard 101), which might be of interest to some of you.
  • 9/25: Lecture notes for today's class are Lecture 2 Notes.
  • 9/25: The first homework is here: Problem Set 1. It is due at 11:59pm on Tuesday. In future, homeworks will be posted Monday night, and will be due 8 days later.
  • 9/25: Beginning Monday, we will be moving across the breezeway to our new classroom, Thornton 110!!
  • 9/25: For those of you who tried to enroll but were not able to, the enrollment cap has now been removed (so try again).
  • 9/23: First day of class! Lecture notes for today's class are Lecture 1 Notes.
  • 8/23: We have a Piazza page for class discussions HERE . This is for your benefit, though you do not need to join it. The TAs and I will do our best to monitor it and will try to answer any questions asked on the forum, though please refer to this course website for all announcements/corrections, etc. Also, please feel free to discuss/answer questions that your classmates post.

  • Instructor: Gregory Valiant (Office hours: Monday 4-5:30pm, Gates 470. Contact info: send email to my last name at stanford dot edu)

    Teaching Assistants:
    Ray Li (rayyli@stanford), Shashwat Silas (silas@stanford)

    Office Hours:
    Greg: Monday 4-5:30pm, Gates 470
    Ray: Friday 10:30-noon, Gates B26
    Shashwat: Monday 9:20-10:50am, Huang Basement

    Class Time/location: 1:30-2:50 Mon/Wed. Location: Thornton Center, 110 (starting Monday, 9/30).

    Course description: Randomness pervades the natural processes around us, from the formation of networks, to genetic recombination, to quantum physics. Randomness is also a powerful tool that can be leveraged to create algorithms and data structures which, in many cases, are more efficient and simpler than their deterministic counterparts. This course covers the key tools of probabilistic analysis, and applications of these tools to understand the behaviors of random processes and algorithms. Emphasis is on theoretical foundations, though we will apply this theory broadly, discussing applications in machine learning and data analysis, networking, and systems.

    Topics: Markov and Chebyshev inequalities, Chernoff bounds, random graphs, and expanders, moment generating functions, metric embeddings, the probabilistic method, Lovasz Local Lemma, Markov chains and random walks, MCMC, martingales, stopping times, Azuma-Hoeffding inequality, and many powerful and elegant randomized algorithms whose analyses rely on the above tools.

    Prerequisites: CS 161 and STAT 116, or equivalents and instructor consent.

    Grading: 65% problem sets, 35% in-class exam.

    Problem Set Policies: Late problem sets will not be accepted, though your TWO lowest problem set scores will be dropped. We strongly encourage using LaTex to typeset your problem sets, and have a LaTex template that you may use. We will be using the Gradescope online submission system. You should receive an email saying that you've been enrolled in CS265/CME309 from Gradescope. If not, create an account on Gradescope using your Stanford ID and join CS265/CME309 using entry code 92EK55.

    You are encouraged to find a partner, and hand in 1 problem set with both names. As always, collaboration and discussion of the problems is encouraged, though you must understand everything that you hand in, and the writeup that your partner and you hand in must be your own group's writing.


    Week 1 (9/23, 9/25): Introduction, models of computation, randomized polynomial identity testing algorithm (Schwartz-Zippel), Karger's randomized min-cut algorithm.

    Lecture notes Lecture 1. Models of randomized computation, and the Schwartz-Zippel randomized polynomial identity test.

    Lecture notes Lecture 2. Karger's randomized min-cut algorithm, and analysis of Quicksort with random pivots.

    Week 2 (9/30, 10/2): Randomized Primality Testing. This is what originally put randomized algorithms on the map back in the late 1970's, and modern cryptography as we know it would not be possible without the existence of fast randomized primality checking algorithms. We also discussed some non-crypto applications of the ability to efficiently choose random prime numbers, including succinct "fingerprints".

    Lecture notes for this week: Lecture 3 and 4 Notes (combined). [These will be updated after Wednesday's class to include Lecture 4 material.]

    Week 3 (10/7, 10/9): Markov's inequality, Chebyshev's inequality, moment generating functions and Chernoff bounds. Randomized routing.

    Lecture notes Lecture 5. Markov's and Chebyshev's inequalities, and sampling-based median algorithm.

    Lecture notes Lecture 6. Moment-generating functions, Chernoff bounds, and randomized routing on the hypercube.

    Week 4 (10/14, 10/16): Balls in bins, the "Poissonization" technique, "power of two choices". Metric embeddings.

    Lecture notes Lecture 7. Balls in bins, the "Poissonization" technique, "power of two choices".

    Lecture notes Lecture 8. Introduction to Metric Embeddings, and Bourgain's low-distortion randomized embedding of any finite metric into L1.

    Week 5 (10/21, 10/23): Metric embeddings continued, and one lecture on the "probabilistic method".

    Week 6 (10/28, 10/30):Lovasz Local Lemma (and algorithmic version), and applications.

    Week 7 (11/4, 11/6):Intro to Markov Chains, Mixing Times.

    Week 8 (11/11, 11/13):Strong Stationary Times, and Coupling. Martingales, stopping times.

    Week 9 (11/18):The Doob Martingale, Azuma-Hoeffding, and applications.

    11/20: In-class Exam (in place of formal final exam)

    Week 10 (12/2, 12/4):Crash course on coding theory, and final lecture on current research threads.