The CS 335 course project is your chance to apply state-of-the-art machine learning methods to an application that you care about or to explore some area of machine learning more deeply than we covered in class. An ambitious project may try to innovate in some area of ML.

Important Dates

You may work by yourself or in groups of up to three students for the project. (But more is expected from larger project groups.)

What does a project look like?

Here are some possible types of projects:

Your project can also cross these boundaries. If you have any doubt aobut what you want to do or would like a suggestions, I highly encourage you to talk to me about your project!

The most fun and exciting projects are likely to come from applications you are passionate about. For example, if you are involved in another research project or a hobby that could somehow benefit from machine learning, these could make great projects.

You may choose to explore a purely theoretical area of machine learning (we did not touch on these areas in class, but they exist).


One way to gain inspiration is to look at recent papers from the main machine learning conferences (ICML and NIPS):

You can see a long list of projects from the Stanford CS 229 class here:

(That class is somewhat more advanced than ours and the project has a longer timeline, so you will want to calibrate your expectations based on those two facts.)


Here are some resources that may come in helpful or inspire some ideas for your project:

There are many other sources of free implementations of machine learning algorithms. If there is something in particular you are interested in, please look around and ask me.

Project Components


The proposal is due Monday, November 7 at midnight, and will be submitted on moodle (link TBD). It should be 1-2 pages and include the following:

In the description, please address topics that will allow me to judge the feasibility, such as:

You may not know the answers to all of these questions, and some may change. That’s OK. This is not a contract, just an initial plan that should be as detailed as possible to help guide your work and so I can give you feedback.


The milestone is due Wednesday, November 23 at noon. It should be 3-5 pages and describe the progress you have made so far, and briefly describe what you still plan to do. You can write this as a draft of the first several pages of your project report, which you can then reuse for the final report.

The purpose of this is to make sure you are on track with your project and uncover any major problems or need to change course as soon as possible.


Final presentations will take place on the last day of class (Tuesday, December 13) or during a special presentation session at that time. The format is still to be determined. These will either be very short oral presentations (with slides) or poster presentations.

Final report

The final report is due at the end of finals period: Tuesday, December 20 at noon. It can, of course, be turned in earlier.

The report should be 5-8 pages long and describe your project in detail. It should be roughly organized like most research papers:

Submissions instructions will be provide here closer to the final due date.


Large sections of this document are based on Stanford’s CS 229 project guidelines.