CMSC 39600: Analysis of Boolean Functions (Autumn 2025)

Full Course Title: "Topics in Theoretical Computer Science: Analysis of Boolean Functions"

Term: Autumn 2025 at the University of Chicago

Instructor: William Hoza (williamhoza@uchicago.edu)

Meetings: Tuesdays and Thursdays | 12:30pm - 1:50pm | RY 178

Office Hours: Thursdays | 2pm - 3pm | JCL 311

Textbook: Analysis of Boolean Functions by Ryan O'Donnell, available for free online here.


Jump to: (loading...)


    Course Description

    A Boolean function can represent a problem we want to solve, an algorithm we want to analyze, a concept we want to learn, etc. In this course, we will use Fourier analysis to reason about Boolean functions, with applications in property testing, learning theory, pseudorandomness, and more.

    Some possible topics: Linearity testing. Noise stability/sensitivity. Arrow's theorem. Dictator testing. Decision trees. Spectral concentration. The Goldreich-Levin algorithm. Total influence. Linear threshold functions. Peres's theorem. Chow's theorem. Hypercontractivity. Friedgut's junta theorem. The Kahn-Kalai-Linial theorem. The Friedgut-Kalai-Naor theorem. Bounded-depth circuits. Random restrictions. The Linial-Mansour-Nisan theorem. Fourier growth. Mansour's theorem. Read-once branching programs. Small-bias distributions. Pseudorandom generators from polarizing random walks. The Gaussian noise operator. Hermite polynomials. Invariance principles.

    Prerequisites: If you're an undergraduate student and you want to take this course, you'll need to discuss it with me and get approval. If you're a graduate student, there are no firm prerequisites, but it would be helpful to have some familiarity with computational complexity theory and probability theory.


    Course Timeline

    (The information below will be updated throughout the quarter.)

    Tuesday 9/30:
    Thursday 10/2:
    Tuesday 10/7:
    Thursday 10/9:
    Tuesday 10/14:
    Thursday 10/16:
    Tuesday 10/21:
    Thursday 10/23:
    Tuesday 10/28:
    Thursday 10/30:
    Tuesday 11/4:
    Thursday 11/6:
    Tuesday 11/11:
    Thursday 11/13:
    Tuesday 11/18:
    Thursday 11/20:
    (No classes next week due to Thanksgiving Break)
    Tuesday 12/2:
    Thursday 12/4:
    [Finals week]:

    Project

    Study some topic that we won't have time to discuss in class and that is related to the analysis of Boolean functions. Then write and submit an exposition. Your exposition should be in the ballpark of 5-10 pages, but there are no strict page limits. Think of your classmates as your target audience. The exposition will be due near the end of the quarter (exact deadline TBA).

    I will need to approve your topic. I encourage you to pick a specific theorem (or two) to focus on. Your exposition should explain what the theorem says and why the theorem is important. Your exposition should also explain the proof of the theorem, but this explanation need not be complete. For example, you might choose to only explain part of the proof, or you might choose to prove a special case of the theorem. I encourage you to try to develop and explain a new way of thinking about the proof. The best case would be if you manage to genuinely prove something new, but this is not required.

    Within the first few weeks of class, I will post some additional guidance here about possible topics, including links to some suggested papers you could look at.


    Homework Policies

    I will assign exercises throughout the quarter. Submit your solutions through Gradescope.

    Collaboration

    You are encouraged to collaborate with your classmates on exercises, but you must adhere to the following rules.

    Permitted Resources for Full Credit

    In addition to discussions with me and discussions with classmates as discussed above, you may also use the course textbook, any slides or notes posted in the "Course Timeline" section of this webpage, and Wikipedia. If you wish to receive full credit on an exercise, you may not use any other resources.

    Outside Resources for Partial Credit

    If you wish, you may use outside resources (ChatGPT, Stack Exchange, etc.) to solve an exercise for partial credit. If you decide to go this route, you must make a note of which outside resources you used when you were working on each exercise. You must disclose using a resource even if it was ultimately unhelpful for solving the exercise. Furthermore, if you consult an outside resource while working on an exercise, then you must not discuss that exercise with your classmates.


    Grading Policies

    Your grade will be based on homework exercises (65%), the project (25%), and class participation (10%).

    Late Work

    You are strongly encouraged to complete each exercise within the allotted time. If you don't master the subject matter of a particular exercise by the deadline, then you might have trouble understanding the topics we discuss in the following classes. Furthermore, if you submit your solutions late, then it might not be possible to give you timely feedback. That being said, I understand that occasionally missing a deadline is inevitable. Late work will ordinarily receive partial credit based on the following principles.

    The score you see in Gradescope represents your score before applying the lateness penalty, i.e., it is the score that you would have received if you had submitted your solution on time. Lateness penalties will only be recorded in Canvas, possibly after a significant delay.

    Extensions

    Please get in touch with me if you are having trouble keeping up with the course schedule for any reason. I may be willing to give you an extension, or I may be willing to give you partial credit for late work in excess of what the principles above stipulate. To highlight one example, I am happy to grant an extension for a religious holiday if you give me sufficient notice that you will be observing that holiday.

    Regrade Requests

    If you think something was graded incorrectly, please submit a regrade request through Gradescope.


    Academic Honesty

    If you ever find yourself in any kind of irregular / problematic / questionable situation related to academic honesty in this course, send me an email and explain what happened. For example, you should send me an email if you realize that you accidentally used a prohibited resource while you were working on the homework.

    I encourage you to follow this simple protocol in every course you take. Depending on the circumstances, you might possibly face some consequences such as a lowered score, but don't let this deter you. A clean conscience is worth more than any grade.


    Inclusion and Accessibility

    This course, like every course you take, ought to be an enjoyable and enriching experience. You have a right to be treated with respect and a responsibility to treat others with respect. I want all students to be able to fully participate in this course. Let me know if you need an accommodation for any reason, so we can explore possible solutions together. If applicable, please follow the protocols established by UChicago Student Disability Services.

    To highlight a few facets of these topics: