top of page


Fall 2023/24

About the course

Randomness plays a crucial role in computer science, along with its applications in fields like cryptography and coding theory. Understanding the extent to which randomness aids computation consists of deep and fundamental questions in complexity theory. Within this context, pseudorandomness is all about comprehending the attributes of randomness that effectively cater to our structural and computational requisites. 

In this course, our attention will be directed towards two primary focal points within pseudorandomness: pseudorandom generators and randomness extractors. We will delve into the study of both classical and contemporary methods for constructing these objects. The techniques will be versatile: combinatorial, probabilistic, algebraic, and (Fourier-)analytic. 

In the initial segment of the course, our focus will be on constructing k-wise independent distributions and small-bias sets. Subsequently, we will proceed to construct remarkably powerful pseudorandom generators that draw upon these foundational constructs for various computational models such as low-degree polynomials, low-depth circuits, and space bounded algorithms. We will then transition to the exploration of randomness extractors, with specific emphasis on seeded extractors and two-source extractors. 


When and where

Lectures are on Thursdays 10:10-13:00 at Orenstein 110, and recitations by Itay Cohen on Thursdays 14:10-15:00 at Holcblat 7. will replace Itay in the first few weeks.


Half of the grade will be based on 3-4 homework assignments. The other half will be derived from a one-hour presentation each student will deliver at the semester's end, discussing a paper from a pre-determined list that is related to the course material (see list below). Homework submission and presentations will be in pairs if the the number of participants will be high enough. 


We won't strictly follow a particular source; however, much of what we'll study can be found in the sources listed below. All of these are accessible for free online.

We will also partially follow many of the original papers. In the tentative syllabus below these are linked next to the relevant topic.


I am in the process of writing notes for the course. You can find them here though keep in mind this is a draft and that I'll keep changing the notes. Other resources are as follows (organized by lectures):

  • For lectures 3 & 5 I am making use of these slides for the expander construction part and these for Reingold's theorem, SL = L.

  • For lecture 4 we use this note by Babai.

  • Lecture 5-6 mainly followed the slides on expander constructions and SL=L. The small-bias set powering construction presented in based on this paper. The Hermitian based construction is based on this paper.

  • Lecture 7 mainly follows chapter 2.1-2.3 in Hatami-Hoza's survey.

  • For lecture 8 (with the video failure) we followed the notes as well as this paper by Naor on Ramsey graph construction.

  • For the Saks-Zhou algorithm presented in lecture 9, I followed section 4 of this paper (see also Dean's talk at IAS).

  • Here is a link to the paper I've mentioned in the last lecture about tree evaluation in nearly logarithmic space.

YouTube channel

The lecture recordings are available on the course YouTube channel.

Problem sets

Problem set 1.

Problem set 2.

Problem set 3.

Syllabus (tentative)

A bird's eye view of pseudorandomness (1.5 weeks)

Bounded independence (1.5 week)

Construction of k-wise independent distributions

Tail bounds

PRGs for decision trees

PRGs for combinatorial rectangles

Small bias sets (1.5 weeks)

Probabilisitic method and Alon's lower bound

The powering construction (paper)

The Ben-Aroya and Ta-Shma Hermitian curve based construction (paper)

Construction of almost k-wise independent distributions

Viola's PRG for low degree polynomials (paper)

Randomness extractors (1 week)

Dvir-Wigderson Kakeya based mergers (paper)

Space bounded derandomization (1.5 week)

Nisan's PRG

BPL in SC (paper)



Introduction to expander graphs (2 week)

Reingold's theorem SL = L (paper)

bottom of page