Due: Mon Oct 1 at 5:30pm. Weight: 10% (of final project grade)

You should form teams of 3 people for the course project. Smaller teams will need to ask for special permission. Broadly, the writeup for the first milestone should tell us what you are planning to do for the project. You have the option of doing one of following three things:
  1. Choose a problem of some importance in an applied domain area, and design a novel optimization method, with either an empirical or theoretical focus on how it works.
  2. Choose a problem of some importance in an applied domain area, and implement several existing optimization methods, showing how they work practically (possibly in a new setting/regime that has not been considered before).
  3. Conduct a thorough literature review on a problem or method pertaining to optimization.
Option 1 requires the most novelty, of course, but each of these options should require roughly the same amount of effort if done properly, and we will grade the projects accordingly. For example, we will generally expect more thorough empirical comparisons under Option 2 versus Option 1. And if you choose Option 3, then the review should be thorough enough that someone new to the topic should have a good understanding of the relevant works by the end of your paper.

We strongly encourage students to put any implementations that come out of this project up on Github, and made open-source.

Finally, regardless of which option you choose, your project should be relevant to the topics covered in this course (e.g., don't just choose to study deep learning unless you do something with it that relates to the convex optimization tools learned in the course). For some inspiration, check out some project ideas taken from a previous year of this course.

The writeup for milestone 1 should meet the following criteria: Submit your first milestone on Gradescope as a group submission by 5:30 pm on Mon Oct 1.

Grading breakdown: introduction (40%), clear problem statement (40%), writing (20%).