| 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.