Final Project

Other than the Assignments, the main requirement for this course is the project. The project consists of at least two components:

  1. A paper describing what you did.

This should be a well-written document describing the problem you tackled (be it an artistic, implementation, mathematical, or writing challenge), what approaches you took, what difficulties you encountered, and what results you found, in addition to citing the relevant literature. Aim for a length on the order of ten pages, say, in the range of five to twenty pages.

     2. A presentation describing what you did (or how far you’ve gotten at the time of presentation).

You should prepare slides as PDF or PowerPoint, and you may also demo any software you wrote. All files should be submitted on the day of your presentation, or the previous day if there are complicated setups (in particular software). Pure blackboard presentations are discouraged except for the experienced. Presentations will take place during normal lecture time.

     3. If your project involves writing software, then you should submit the source code. If your project involves a physical object, you should show it during your presentation.

Projects can take many different forms. Here are the five main general categories:

  1. Build or design a physical structure that uses ideas from this course. 
    The structure might be furniture, architecture, sculpture, tool, or illustration. Your work should be both aesthetically compelling and technically grounded (though the latter need not be explicitly visible). The structure can be physical or virtual, though in the latter case the standards will be higher because of the reduced challenge. (One way to compensate is to make several virtual structures, e.g., connected in a theme.)
  2. Implement an algorithm, an illustration of a result, or a tool for experimenting with a problem. Typically, a good format for such an implementation is a web applet (written in JavaScript™, AJAX, Java™, or Jython) but other environments are fine too.
  3. Pose an open problem (or collection of related open problems). 
    You might pose open problems related to another field of research with which you are familiar, or pose something that comes to you out of the lectures. Ideally you should think about solving the problem, or how it relates to other problems.
  4. Survey a collection of two or three, or more related papers. 
    You should avoid overlap with the textbook, Geometric Folding Algorithms: Linkages, Origami, Polyhedra
    Often it is appropriate to combine with the next type of project:
  5. Write or substantially improve the Wikipedia articles for several geometric folding topics. Here, overlap with the textbook is OK. Be sure to follow Wikipedia guidelines.
  6. Try to solve an open problem. 
    This is the most ambitious kind of project, so the expectations in terms of results are correspondingly lower. What is important is to describe a clear problem, take (at least) one good approach to that problem, and describe to what extent it worked or did not work. You should not feel pressure in terms of grades to produce results, but you should spend substantial time thinking and trying to solve the problem. (In particular, if you succeed, you/we can write a research paper and try to publish it.) Collaboration is particularly encouraged for projects of this type, as is participation in the open problem session.

A number of sample project ideas, based on the topics covered in the course, are provided.


Project proposals must be approved by Class 14.

The paper is due by Class 24, the last regularly scheduled class session. The presentation is due somewhat earlier depending on when it gets scheduled; if your presentation is earlier, you are expected to have made less progress, but you should still give a clear description of the problem you are tackling and what you plan to do.


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 small group of students if you find common interests. You are also welcome to collaborate with anyone outside the course, including your research supervisor (if you have one) and the course staff. The only constraint is that your own contribution should be substantial enough, both in terms of solving problems and writing it up.

In any case, collaborators should be clearly marked in the project proposal, paper, and presentation.

Course Info

As Taught In
Fall 2012
Learning Resource Types
Lecture Videos
Problem Sets with Solutions
Instructor Insights