COMS 6298: Boolean Function Analysis
Fall 2026

General Information | Motivation | Prerequisites | Readings | Homework | Topics | Class Requirements | Projects | Lecture Notes and Readings | Academic Honesty Policy

General Information

Instructor: Rocco Servedio (517 CSB, office hours by appointment.) Email: rocco at cs dot columbia dot edu.
TA: TBA
Room: TBA
Time: Wed 2:10-4:00 pm

This is a three-credit advanced graduate level course on the analysis of Boolean functions. The course can be used as a theory elective for the Ph.D. program in computer science, as a track elective course for MS students in the "Foundations of Computer Science" track, or as a track elective for undergraduates in the "Foundations" track. Auditing the class requires the approval of the instructor.

If you are an undergraduate student in SEAS, Columbia College, General Studies or Barnard who would like to register for this class, please contact me with a brief description of your background in CS theory and mathematics courses.

Motivation

Boolean functions, i.e. functions which map strings of 0s and 1s to 0/1-valued outputs, are among the most basic objects of study in theoretical computer science and mathematics. Results about Boolean functions arise across many subfields of theoretical computer science research such as complexity theory, learning theory, cryptography, sublinear algorithms and property testing, hardness of approximation, and more. Ideas and ingredients from the study of Boolean functions also pop up, sometimes unexpectedly, in other areas of math such as high-dimensional geometry and probability, combinatorics, statistical physics, and beyond.

This course will focus on analytic approaches to understanding Boolean functions, by studying their Fourier representations. The plan is to study

  • basic properties and crucial analytic parameters of Boolean functions (influence, noise sensitivity, Fourier concentration, etc);
  • analytic properties of important types of Boolean functions (decision trees, linear threshold functions, logical circuits such as DNF formulas, monotone functions, etc);
  • connections to Gaussian space;
  • hypercontractivity and the theorems of Kahn, Kalai and Linial and Friedgut;
  • central limit theorems and the invariance principle; and
  • applications of the various results we establish to problems in different areas such as computational learning theory.
  • Students will do a few homework exercises and turn in their annotations of lecture notes (more on this below) and work on a final project which will have a written component and an in-class presentation component. The final project is an opportunity to work on original research in the analysis of Boolean functions.

    Prerequisites

    The most important prerequisite is "mathematical maturity"; you should be comfortable with proofs, basic discrete math, combinatorics, probability, and linear algebra. Among other things, you should be completely comfortable with the probability basics covered in this brief note, and you should be comfortable with using the tail bounds covered in this brief overview of standard tail bounds. In general, a solid undergraduate-level mathematics background is good preparation. If you have questions about your mathematical readiness you should contact the instructor before enrolling.

    The course will not include any programming.

    Readings

    There is no single source for the material we will cover, but the book by Ryan O'Donnell on analysis of Boolean functions (see the top right part of his web page, linked above) is a comprehensive resource for many of the topics that we'll cover (and many that we will not cover). Links to specific readings for each lecture will be posted as the semester progresses.

    Homework

    Here is a list of the official homework problems (this list will be updated as the semester progresses). You need to turn in one HW problem by October 9, one HW problem by November 9, and one HW problem by December 9 (though it's not a bad idea to turn in all three required homework problems earlier in the semester). All HW problems should be turned in by email directly to the instructor.

    List of Topics

    This is a rough list of anticipated topics which is subject to change and revision. We may skip some of these or cover additional topics as determined by time and the interest/background of the couse participants.

    Class Requirements

    The requirements of the course are as follows: The plan is to grade the class very generously; what you get out of the class will be proportional to what you invest in the class. The goal is for the class to be a relaxed, fun, interactive exploration of the wonders of Boolean function analysis both for the instructor and for the students.

    Lecture Notes

    The detailed notes for each lecture will be posted here after the lecture, along with lecture-relevant readings.

    Academic Honesty Policy

    By taking the course, students are presumed to consent to the Computer Science departmental policy on academic honesty. This policy has been passed by the faculty of the Department and approved by the school deans. The policy will be enforced for all courses, including this one. You can find the text of the policy at http://www.cs.columbia.edu/education/honesty. For this course in particular, students should be sure to provide appropriate citations for all sources used in their project reports.

    AI Policy. It's 2026, and for better or worse AI is out there. AI is very good at producing artifacts which, in the past, were evidence of human understanding. In this brave new world it is now possible to generate those artifacts without human understanding. The goal of this course is to foster human understanding (of the analysis of Boolean functions). AI can be a great tool to help with this goal, but it can also get in the way.

    Less abstractly: you are permitted to use AI to help you understand course material --- you can ask it any question you like. But you are advised to use AI in a thoughtful way which will promote your thinking and growth rather than substituting for it --- you won't learn much by just having AI solve a problem or write a report for you. Used well, AI can be a great tool that can help you figure out how to understand results, solve problems, and explain ideas (all of which are essential parts of the research process) yourself. Henry Yuen's AI policy for his quantum computing course, which you can find here, has good examples and suggestions of how to use AI in a smart way to help develop your own understanding.

    Even less abstractly, there are three important caveats about how you are permitted to use AI in this course:

    (1) all written work you turn in needs to be handwritten or hand-typed with your own human fingers and using your own human words. You can read and understand an AI-generated response to a question, but you need to write your own solution to help promote your own understanding.

    (2) You need to turn in a transcript of your interactions with AI whenever it is part of the process by which you generate any written work for this class. You will not be penalized in any way for using AI; the reason for this is to help you use AI in a productive way which promotes your own growth and augments your understanding, rather than in a "just tell me the answer" kind of way.

    (3) You are strongly encouraged to grapple with challenging material on your own and try to figure things out for yourself before consulting AI since this is an essential part of your own intellectual growth and of learning how to think about problems as a reseacher. As a wise person once said, you are encouraged to use your own best judgement about what will best help your learning when using AI.