Syllabus (Tentative)

We will cover the following topics. All chapter notes are from the book Randomized Algorithms by Motwani and Raghavan

Topic Techniques Applications Readings
Introduction Introduction, Las Vegas and Monte Carlo algorithms, models of computation and complexity classes, game trees and minimax principles. minimum cuts, quicksort, games Chapters 1 and 2
Moments, Deviations, Tail Inequalities balls and bins, Markov and Chebyshev inequalities, Chernoff Bounds stable marriage, coupon collecting, routing and wiring Chapters 3 and 4
Sequential Algorithms data structures, computational geometry, graph algorithms search trees, skip lists, hashing, convex hulls, delunay triangulation, random sampling, linear programming, shortest paths, spanning trees, minimum cuts revisited Chapters 8, 9 and 10
Parallel Algorithms and Distributed Algorithms algebraic techniques, parallel algorithms, distributed algorithms matching, sorting, independent sets, Byzantine1 agreement Chapters 7 and 13
On-Line Algorithms on-line models, adversary models paging, k-servers Chapter 14
The Probabilistic Method, Enumeration and Counting probabilistic method, expanders, Lovasz Local Lemma, Markov Chains, Random Walks, groups, fields MAX SAT, connectivity, random bits, DNF counting, permanents Chapters 5, 6 and 12
Number Theory groups and fields, quadratic residues RSA cryptography, primality testing Chapter 11

In addition to the readings from the text, papers will be handed out during the semester. The goal of the course is to develop a familiarity with randomized algorithms algorithms and to study the techniques that allow for the development of new algorithms.