CS 225 Syllabus Fall 2016

CS 225: Pseudorandomness
Fall 2016 

SYLLABUS

Course Content | Topics | Format and Goals | Prerequisites | Grading | Textbook | Related Courses

Course meetings:  Tue-Thu 1:00pm-2:29pm, Maxwell-Dworkin 323 (33 Oxford Street).

Lecturer: Salil Vadhan
Office: Maxwell-Dworkin 337
Assistant: Carol Harlow (harlow@seas.harvard.edu)
Shopping week office hours: Wed 8/31 1:30-5:30; Tue 9/1 2:30-3:30 (cs225 only); Fri 9/2 10-11, 2-4; Tue 9/6 2:30-3:30 (cs225 only); Wed 9/7 3-5; Thu 9/8 9-11, 4-5 (sign up on door or by emailing Carol Harlow)
Regular office hours (starting 9/9): Friday 10-11, Tuesday 2:30-3:30 or by appointment


Teaching Fellow: Yi-Hsiu Chen (yihsiuchen@g.harvard.edu)
Office: Maxwell-Dworkin 138
Office Hours/Section: Wednesday 4:00-5:30 or by request.

E-mail address for submitting homeworks: cs225-hw@seas.harvard.edu
Questions should be posted on Piazza.
Course website: http://www.courses.fas.harvard.edu/4869

Course Content

Over the past few decades, randomization has become one of the most pervasive paradigms in computer science.  Its widespread use includes:

So randomness appears to be extremely useful in these settings, but we still do not know to what extent it is really necessary.  Thus, in this course we will ask:

Main Question: Can we reduce or even eliminate the need for randomness in the above settings?

Why do we want to do this?    First, essentially all of the applications of randomness assume we have a source of perfect randomness ≠ one that gives "coin tosses" that are completely unbiased and independent of each other.  It is unclear whether physical sources of perfect randomness exist and are inexpensive to access.  Second, randomized constructions of objects such as error-correcting codes and expander graphs often do not provide us with efficient algorithms for using them; indeed, even writing down a description of a randomly selected object can be infeasible.  Finally, and most fundamentally, our understanding of computation would be incomplete without understanding the power that randomness provides.

In this course, we will address the Main Question via a powerful paradigm known as pseudorandomnessThis is the theory of efficiently generating objects that "look random", despite being constructed using little or no randomness.  Specifically, we will study several kinds of "pseudorandom" objects, such as:
 

Each of the above objects has been the center of a large and beautiful body of research, and until recently these corpora were largely distinct. An exciting recent development has been the realization that all four of these objects are almost the same when interpreted appropriately.  Their intimate connections will be a major focus of the course, tying together the variety of constructions and applications of these objects we will cover.

The course will reach the cutting-edge of current research in this area, covering some results from within the last year.  At the same time, the concepts we will cover are general and useful enough that hopefully anyone with an interest in the theory of computation or combinatorics could find the material appealing.
 

Topics

Format and Goals

The main components of the course are as follows:

By the end of the course, I hope that you will all be able to:

Prerequisites

This is an advanced graduate course, so I will be assuming that you have general "mathematical maturity" and a good undergraduate background in the theory of computation.  One concrete guideline is that you should have had a minimum of two other courses in the theory of computation, including at least one graduate course.  If you have particularly strong math background, then there can be a bit more flexibility with this.  But if you haven't had a prior graduate course in the theory of computation (numbered CS 22x at Harvard), you must come speak to me at office hours before registering for the class.

In terms of topics, I will be assuming familiarity with the following.  In all cases (especially complexity theory), the more background you have, the better.  

Grading & Problem Sets

The requirements of the course:

 

The biweekly problem sets will typically be due on Friday by 5 PM.  Your problem set solutions must be typed and submitted electronically to cs225-hw@seas.harvard.edu. You are allowed 12 late days for the semester, of which at most 5 can be used on any individual problem set. (1 late day = 24 hours exactly).

The problem sets may require a lot of thought, so be sure to start them early.  You are encouraged to discuss the course material and the homework problems with each other in small groups (2-3 people).   Discussion of homework problems may include brainstorming and verbally walking through possible solutions, but should not include one person telling the others how to solve the problem.  In addition, each person must write up their solutions independently, and these write-ups should not be checked against each other or passed around.
 

Textbook

We will be following my monograph Pseudorandomness. When you post your comments on the reading, please include any corrections or suggestions for improving it!

 

You may also find the following references useful.  Most of them should be in the libraries, on reserve.

Related Courses This Term