Projects


A project can either be a study project or a research project.

In a study project you focus on an important result, or set of results, that is not covered in detail in the course. You read the relevant papers and write a survey paper that describes the results, their motivation, their applications, and something new. "Something new" could be filling in the details of an important technical lemma that is only stated without proof (or with a sketchy proof) in the literature, or observe a simplified argument for a technical proof, or something along these lines.

A research project starts with a general goal, like "prove a weakly-non-uniform hierarchy theorem for ZPTIME," or "improve the inapproximability result for Metric TSP," or "Prove P=/=NP." Towards this goal, you read the relevant papers, try various approaches, and then you may or may not reach your goal. At the end you write a report detailing your efforts.

Study projects should be done independently. If you want to do a study project, and you strongly prefer to do collaborative work, you can arrange with a colleague to choose related topics for a study project (for example, one project could be on impossibility results for random oracles in cryptography and another could be impossibility results for obfuscation). Then you can study together, even though two different reports will have to be submitted.

A research project can be assigned to a team of two.


Examples

Any important result in complexity can be the base for a study project, and any interesting open question can the base for a research project.

Here are some examples. Ask me for the references. Many entries are "under construction". Check this page later for updates (or ask me).