Basic probability theory; randomized complexity classes; game-theoretic techniques; Markov, Chebyshev, and moment inequalities; limited independence; coupon collection and occupancy problems; tail inequalities and the Chernoff bound; conditional expectation; the probabilistic method; Markov chains and random walks; algebraic techniques; probability amplification and derandomization.
Lovasz Local Lemma and applications, the method of conditional probabilities. Randomized Data Structures: Hashing. Fingerprinting, Schwarzt-Zippel, Pattern Matching.Applications: Sorting and searching; data structures; combinatorial optimization and graph algorithms; geometric algorithms and linear programming; approximation and counting problems; parallel and distributed algorithms; online algorithms.