Course Description: The course will focus on the use of randomness in algorithms. Over the past few decades, randomization has become an increasingly important part of theoretical computer science. The tentative outline for the course is as follows: Basic probability; the minimax principle; limited independenc, advanced concentration of measure, balls in bins; negatively associated random variables, hashing: universal, perfect, cuckoo, fingerprinting; Bloom filters, Network coding; edge connectivity, graph sparsification, parallel algorithms; symmetry breaking, Randomized approximation algorithms, streaming algorithms, random walks: cover times, markov chains, mixing rates.
Textbooks: There is no course text. However, about half the material we cover can be found in the following text books.
Prerequisites: Mathematical maturity and comfort with undergraduate algorithms and basic probability.
Lectures Timing and Schedule: