6.892 Algorithmic Lower Bounds: Fun with Hardness Proofs (Spring 2019)

Prof. Erik Demaine       TAs: Jeffrey Bosboom, Jayson Lynch

[Home] [Lectures] [Problem Sets] [Project] [Coauthor] [Accessibility]


The project is the most important component of the course. It can take several forms:

You are encouraged to relate the final project to your research interests, and you will not be limited to the topics discussed in class.



Collaboration is strongly encouraged, especially for research projects—this is often the key to successful research in theoretical computer science. You can work in a group of students in the class if you find common interests. (Students listening to the class will likely have less time to devote, but they are welcome to participate in a project too.) In particular, we expect that many projects will naturally grow out of the collaborations during the interactive portions of class. We have higher expectations of projects by larger groups.

You are also welcome to collaborate with anyone outside the class, including your research supervisor (if you have one) and including the course staff. The only constraint for the class is that your own contribution should be substantial enough, both in terms of solving problems and writing it up. (To evaluate “substantial enough”, talk to the course staff.) In any case, collaborators should be clearly marked in the project proposal, paper, and presentation.

If you work on a team, you will be required to post a short private Coauthor message (in the appropriate thread) summarizing your own contributions to the project(s) you were involved in (when submitting the project). This will let us ensure that everyone makes substantial-enough contributions.

Multiple Projects

You are allowed to work on multiple projects, possibly with different teams. Just make sure that the total amount of work you do sums to at least one “person project unit”. We suggest having one as your main, or one or a small number to which you will make major contributions, along with any number of projects to which you will make minor contributions. We also require that you do some of the writing on at least one project paper, and participate in at least one of the project presentations.

In particular, we'd like projects tackling/solving open problems to match papers as much as possible. For example, instead of working on one project about two small papers, write two smaller projects. Conversely, instead of doing a project about your piece of a larger paper, be a part of a large project to write the entire paper. It's also fine to write up other people's results from open problem solving if they're OK with it (in particular, if they're not planning to do so for their class project) — help with writing is an important contribution to any paper!


All presentations will during the usual class time on May 8 and 15, but will be in room 32-141. Some details/tips:

Project Submission

To submit your final project, attach a PDF document to the relevant thread on Coauthor, and then edit that post to at-mention everyone involved in the project, and to add a link to the source files (LaTeX, figures, code, etc.). We require putting all source files into a repository on our MIT Github organization, or an Overleaf document with link sharing turned on, and including a link in your post. If you're unfamiliar with Github, here are some basic instructions: