Project

One of CS230's main goals is to prepare you to apply machine learning algorithms to real-world tasks, or to leave you well-qualified to start machine learning or AI research. The final project is intended to start you in these directions.

Past Projects

Getting Started

Project Starter Package

The teaching team has put together a

  • github repository with project code examples, including a computer vision and a natural language processing example (both in Tensorflow and Pytorch).
  • A series of posts to help you familiarize yourself with the project code examples, get ideas on how to structure your deep learning project code, and to setup AWS. The code examples posted are optional and are only meant to help you with your final project. The code can be reused in your projects, but the examples presented are not complex enough to meet the expectations of a quarterly project.
  • A sheet of resources to get started with project ideas in several topics

Project Topics

This quarter in CS230, you will learn about a wide range of deep learning applications. Part of the learning will be online, during in-class lectures and when completing assignments, but you will really experience hands-on work in your final project. We would like you to choose wisely a project that fits your interests. One that would be both motivating and technically challenging.

Most students do one of three kinds of projects:

  • Application project. This is by far the most common: Pick an application that interests you, and explore how best to apply learning algorithms to solve it.
  • Algorithmic project. Pick a problem or family of problems, and develop a new learning algorithm, or a novel variant of an existing algorithm, to solve it.
  • Theoretical project. Prove some interesting/non-trivial properties of a new or an existing learning algorithm. (This is often quite difficult, and so very few, if any, projects will be purely theoretical.) Some projects will also combine elements of applications and algorithms.

Many fantastic class projects come from students picking either an application area that they’re interested in, or picking some subfield of machine learning that they want to explore more. So, pick something that you can get excited and passionate about! Be brave rather than timid, and do feel free to propose ambitious things that you’re excited about. (Just be sure to ask us for help if you’re uncertain how to best get started.) Alternatively, if you’re already working on a research or industry project that deep learning might apply to, then you may already have a great project idea.

Project Hints

A very good CS230 project will be a publishable or nearly-publishable piece of work. Each year, some number of students continue working on their projects after completing CS230, submitting their work to a conferences or journals. Thus, for inspiration, you might also look at some recent deep learning research papers. Two of the main machine learning conferences are ICML and NeurIPS. You may also want to look at class projects from previous years of CS230 (see Past Projects above) and other machine learning/deep learning classes (CS229, CS129, CS221, CS224N, CS231N) is a good way to get ideas. Finally, we crowdsourced and curated a list of ideas that you can view here, and an older one here, and a (requires Stanford login).

Once you have identified a topic of interest, it can be useful to look up existing research on relevant topics by searching related keywords on an academic search engine such as: http://scholar.google.com. Another important aspect of designing your project is to identify one or several datasets suitable for your topic of interest. If that data needs considerable pre-processing to suit your task, or that you intend to collect the needed data yourself, keep in mind that this is only one part of the expected project work, but can often take considerable time. We still expect a solid methodology and discussion of results, so pace your project accordingly.

Notes on a few specific types of projects:

  • Computation power. Amazon Web Services is sponsoring the CS230 projects by providing you with GPU credits to run your experiments! We will update regarding how to retrieve your GPU credits. Alternatively Google Cloud and Microsoft Azure offer free academic units which you can apply to.
  • Preprocessed datasets. While we don’t want you to have to spend much time collecting raw data, the process of inspecting and visualizing the data, trying out different types of preprocessing, and doing error analysis is often an important part of machine learning. Hence if you choose to use preprepared datasets (e.g. from Kaggle, the UCI machine learning repository, etc.) we encourage you to do some data exploration and analysis to get familiar with the problem.
  • Replicating results. Replicating the results in a paper can be a good way to learn. However, we ask that instead of just replicating a paper, also try using the technique on another application, or do some analysis of how each component of the model contributes to final performance.
  • Use of LLMs. Simply prompting LLMs without additional training does not qualify as a valid project for this class. Projects must involve substantive deep learning training work that aligns with the concepts we cover in this course.

Project Deliverables

This section contains the detailed instructions for the different parts of your project.

Groups: The project is done in groups of 1-3 people; teams are formed by students.

Submission: We will be using Gradescope for submission of all four parts of the final project. We’ll announce when submissions are open for each part. You should submit on Gradescope as a group: that is, for each part, please make one submission for your entire project group and tag your team members. In addition, please make sure you tag all of your pages correctly. There may be a penalty for any mis-tagging.

Evaluation: The final project is worth 45% of your grade, broken down into the proposal (2%), milestone (7%), final report (30%), and poster session (6%). Projects will be evaluated based on:

  • The technical quality of the work. (I.e., Does the technical material make sense? Are the things tried reasonable? Are the proposed algorithms or applications clever and interesting? Do the authors convey novel insight about the problem and/or algorithms?)
  • Significance. (Did the authors choose an interesting or a “real” problem to work on, or only a small “toy” problem? Is this work likely to be useful and/or have impact?)
  • The novelty of the work. (Is this project applying a common technique to a well-studied problem, or is the problem or method relatively unexplored?)

In order to highlight these components, it is important you present a solid discussion regarding the learnings from the development of your method, and summarizing how your work compares to existing approaches.

Proposal

Due: Tue 10/13, 11:59 PM PT

Submission: Submit your proposal PDF on Gradescope and complete the project topic form on Ed. Both are required.

First, make sure to submit a Google form (which will be posted on Ed) so that we can match you to a TA mentor. In the form you will have to provide your project title, team members, and relevant research area(s).

In the project proposal, you’ll pick a project idea to work on early and receive feedback from the TAs. If your proposed project will be done jointly with a different class’ project, you should obtain approval from the other instructor and approval from us. Please come to the project office hours to discuss with us if you would like to do a joint project. You should submit your proposals on Gradescope. All students should already be added to the course page on Gradescope via your SUNet IDs. If you are not, please create a private post on Ed and we will give you access to Gradescope.

In the proposal, below your project title, include the project category. The category can be one of:

  • Computer Vision
  • Natural Language Processing
  • Generative Modeling
  • Speech Recognition
  • Reinforcement Learning
  • Others (Please specify!)

Your project proposal should include the following information:

  • What is the problem that you will be investigating? Why is it interesting?
  • What are the challenges of this project?
  • What dataset are you using? How do you plan to collect it?
  • How will you preprocess the data? This part is optional: if preprocessing is not relevant for your project, you can omit it.
  • What method or algorithm are you proposing? If there are existing implementations, will you use them and how? How do you plan to improve or modify such implementations?
  • What reading will you examine to provide context and background? If relevant, what papers do you refer to?
  • How will you evaluate your results? Qualitatively, what kind of results do you expect (e.g. plots or figures)? Quantitatively, what kind of analysis will you use to evaluate and/or compare your results (e.g. what performance metrics or statistical tests)?

Presenting pointers to one relevant dataset and one example of prior research on the topic are a valuable (optional) addition. We link one past example of a good project proposal here.

   
Format Your proposal should be a PDF document, giving the title of the project, the project category, the full names of all of your team members, the SUNet ID of your team members, and a 300-500 word description of what you plan to do. It should be at most 2 pages.
Grading The project proposal is mainly intended to make sure you decide on a project topic and get feedback from TAs early. As long as your proposal follows the instructions above and the project seems to have been thought out with a reasonable plan, you should do well on the proposal.
Submission Fill out the form shared on Ed and submit the proposal on Gradescope
Project mentors Based on the topic you choose in your proposal, we’ll match you with a project mentor given the areas of expertise of the TAs. This is just a recommendation; feel free to speak with other TAs as well.

Milestone

Deadline: Tuesday, November 10, 2026 at 11:59 PM PST

The milestone will help you make sure you’re on track, and should describe what you’ve accomplished so far, and very briefly say what else you plan to do. You should write it as if it’s an “early draft” of what will turn into your final project. You can write it as if you’re writing the first few pages of your final project report, so that you can re-use most of the milestone text in your final report. Please write the milestone (and final report) keeping in mind that the intended audience is Profs. Ng and Katanforoosh and the TAs. Thus, for example, you should not spend two pages explaining what logistic regression is. Your milestone should include the full names of all your team members and state the full title of your project.

Note:

  • We will expect your final writeup to be on the same topic as your milestone.
  • You must use the provided milestone template.

Format:

Your milestone should be at most 3 pages, excluding references. It should include:

  • Title, Author(s)
  • Introduction: this section introduces your project, why it’s important or interesting.
  • Dataset: Details on the dataset.
  • Approach: Describe the current steps you have done. If you are implementing an algorithm, you should have started implementation and ideally have some early stage results. Describe precisely the remaining work you expect to complete. We would like to see a model description and a training strategy (loss function for instance). Name the baseline you are comparing against, and report your evaluation metrics on held-out data rather than the training set.
  • Partial Results: Report whatever you have run so far, even if preliminary. For example, datasets you have collected and processed, performance of a baseline that you have implemented and evaluated, preliminary results of your methods (if any), etc. If a result is surprising or an assumption did not hold, say so briefly and explain what you will change.
   
Grading The milestone is mostly intended to get feedback from TAs to make sure you’re making reasonable progress. As long as your milestone follows the instructions and you seem to have tested any assumptions which might prevent your team from completing the project, you should do well on the milestone. You must use the provided milestone template.
Submission Submit on Gradescope.

Final Report

Deadline: Friday, December 4, 2026 at 11:59 PM PST (No late days allowed)

The final report should contain a comprehensive account of your project. We expect the report to be thorough, yet concise. Broadly, we will be looking for the following:

  • Good motivation for the project and an explanation of the problem statement
  • A related work section that discusses existing approaches and how yours relates and differs
  • A description of the data
  • Any hyperparameter and architecture choices that were explored
  • Presentation of results
  • Analysis of results
  • Any insights and discussions relevant to the project
  • References
   
Format Final project writeups can be at most 5 pages long, excluding references, contributions, and the appendix. TAs may not look at the appendices, so please include all important information in the main report. If you did this work in collaboration with someone else, or if someone else (such as another professor) had advised you on this work, your write-up must fully acknowledge their contributions. You must use the provided LaTeX template.
Contributions Please include a section that describes what each team member worked on and contributed to the project. All team members will receive the same grade; therefore, each member is expected to pull their weight. If your final project is shared with another class or an external research project, please see these guidelines: Is it okay to combine the CS230 term project with that of another class?
Code You must submit your code on Gradescope. We will open a submission for submitting code. You do not have to include the data or additional libraries. Code must be organized/readable for full credit.
Grading The final report will be judged based on the clarity of the report, the relevance of the project to topics taught in CS230, the novelty of the problem, and the technical quality and significance of the work.
Submission Submit on Gradescope.

Poster Session

Date: Wednesday, December 9, 2026, 8:30–11:30 AM PST

The location will be posted on Ed. All on-campus students must attend and present in person — attendance is mandatory. CGOE-only teams (no on-campus members) will submit a video presentation instead. Teams with at least one on-campus student must submit a poster and present in person — no make-up sessions or video substitutions are allowed.

   
Poster size Your poster should be 20” × 30”.