CIS 6770: Randomized Algorithms

CIS 6770 (Fall 2025)
Randomized Algorithms


Instructor:   Sanjeev Khanna (AGH 419)

Lectures:   Wednesdays 3:30-6:30 pm.


Course Overview

Can you check if two large documents are identical by comparing just a few bits of information? Can you verify that a program has correctly computed a function without ever computing the function? Can students compute the average score on an exam without ever revealing their scores to each other? Can you be convinced of the correctness of an assertion without seeing the entire proof? Can you check if a graph is connected using only a logarithmic amount of work space? Can you correctly color a graph without seeing all its edges? The answer to all these questions is YES provided we allow the use of randomization.

Over the past few decades, randomization has emerged as a powerful computational resource in algorithm design often giving us simple algorithms that vastly outperform their deterministic counterparts. This course is an introduction to design and analysis of randomized algorithms at a level accessible to advanced undergraduates and to graduate students. We will cover general techniques for designing and analyzing randomized algorithms as well as representative applications in various domains. Topics covered include approximation algorithms, algebraic techniques for fingerprinting, interactive and probabilistically checkable proof systems, the PCP theorem and its applications, and sublinear algorithms for computing over massive data sets.

We will use the textbook by Motwani and Raghavan, titled Randomized Algorithms, as well as supplementary lecture notes provided in the class.

The prerequisite for the course is an undergraduate course in algorithms (CIS 3200) or equivalent. You do not need to have taken a course on statistics (familiarity with elementary probability theory concepts like expectation and variance is sufficient).