The primary goal of this project is to give you an idea of what it feels like to do research in theoretical computer science. You are expected to obtain an in-depth understanding of a specific topic, and be able to hold educated conversations with experts in the field. You are free to choose your topic (although it must be approved by the course instructors). The project will count for 15% of your final grade in this class.
The first step is to choose a topic. This is not an easy thing to do, so we recommend spending time interacting with the instructor/TAs as well as researching what topic to choose. At the bottom of this handout, we present suggestions for places to look for project ideas. You can take any of our suggestions or work on a project of your own design (this is recommended if and only if you have had research experience with a specific problem that has a theoretical computer science component to it). You cannot choose a topic that somebody else has already chosen (this will be decided on a first-come first-serve basis when you talk to the instructors about your topic). After choosing a topic, you are expected to learn as much as you can regarding your topic, and are encouraged (although not required nor expected) to make original research contributions. You will hand in two write-ups of what you have accomplished so far (see below for specific deadlines).
Throughout the semester, you are also expected to schedule a meeting with an instructor/TA at least once a month to talk about your project freely. You should be ready to answer any questions the instructor/TA might have on the topic.