The Course Project is worth a significant portion of your grade. It offers you the chance to apply your newly acquired skills towards an in-depth application.
There are two options for the course project: the default final project, and choosing your own topic.
We strongly recommend you do the course project in a team. Teams can be up to 3 people. Keep in mind that larger teams will be expected to do correspondingly larger projects. You should only form a 3-person team if you are planning to do an ambitious project where every team member will have a large contribution.
Course project proposal: due February 8
Course project milestone: due February 28
The poster session will be held 5:30 - 8:30pm
on March 21
Final submission: due March 18
The project proposal and milestone are small, and are only worth a small amount of credit for submitting them on time. However, you cannot use late days for them
You can use up to three late days for the course project. However, note that if you are in a team, pushing the deadline back a day takes one late day per person (see the grading page
Default Final Project
See the default final project
Choose-your-own Final Project
The choose-your-own final project lets you explore a task or research idea you are excited about. You can choose any topic related to deep learning for NLP. To be precise: That means that the project should make substantive use of deep learning and substative use of human language data.
To inspire project ideas, here are some cool NLP papers:
And here are some NLP datasets:
We encourage you to go to Richard's, Kevin's, Abi's or Tim's office hours to discuss your project idea before submitting a your proposal. After your proposal is submitted, you will be assigned a mentor (Richard or a PhD student TA) to provide advice about your project.
For the choose-your-own final project, you may use any deep learning framework you like – e.g. TensorFlow, PyTorch, Theano, etc.
All Course Project teams will receive credits to use the cloud computing service Azure. See this guide for all information relating to Azure.
We have compiled some practical tips on how to manage your deep learning experiments – for example, using Git to mange your code, TMUX to manage your VM sessions, and how to monitor your CPU and GPU usage.
Details on the project proposal can be found here
. The proposal will be graded credit/no-credit based on whether you turned it in on time. If you do not submit a proposal on time, you have to do the default final project
. Please fill out one proposal per team.
See the milestone page
Your final write-up should be between 6 - 8 pages using the provided template.
At the end of the quarter, we will post all the final reports online so that you can read about each others' work. If you do not want your writeup to be posted online, then please let us know when you submit your writeup.
There are three things you need to turn in (each is a separate Gradescope submission):
- Final Project Writeup: A PDF file of your final report. Submitted to Gradescope.
- Final Project Supplementary Materials: A zip file of your supplementary materials. You are required to include all the code for your project in the supplementary materials. Submitted to Gradescope.
- Final Project Additional Information: A PDF file with the additional information described here. Submitted to Gradescope.
Your team only needs to submit each of these things once, but make sure that the submission tags all members of the team.
The following is a suggested structure for the report:
- Title, Author(s)
- Abstract: It should not be more than 300 words.
- Introduction: This section introduces the problem, and your overall approach to the problem.
- Background/Related Work: This section discusses relevant literature for your project.
- Approach: This section details your approach to the problem. For example, this is the section where you would describe the architecture of your neural network. You should be specific - you may want to include equations, figures, plots, etc.
- Experiments: In this section, you describe:
- The dataset(s) you used
- How you ran your experiments (e.g. model configurations, learning rate, training time, etc.)
- The evaluation metric(s) you used
- Your results. It's very important to show both quantitative evaluation (show numbers, figures, tables etc. relating to your evaluation metric(s)) and qualitative evaluation (show example results, etc.).
- Conclusion: What have you learned? Suggest future ideas.
- References: Include references to all literature that informed your project work. This is absolutely necessary.
Examples of things to include
in your supplementary material:
- Source code (required)
- Cool videos, interactive visualizations, demos, etc. (optional)
Examples of things not
to include in your supplementary material:
- The source code for an entire submodule (e.g. Theano, Caffe, CoreNLP)
- Any code that is larger than 1MB
- Model checkpoints
- A computer virus
Supplementary Material is not counted toward your 6-8 page limit.
We will hold a poster session, where you will present the results of your projects in the form of a poster. The poster session will happen on March 21st, 5:30-8:30pm in McCaw Hall at the Alumni Center. Poster boards and easels will be provided.
The final project is worth 32% of your grade (with your poster presentation comprising additional 3%).
You are allowed to work in groups of up to 3 people and may use up to 3 late days.
See the grading page
for more details.
Example Project Reports
Your project reports should be structured like a NLP conference paper (ACL, EMNLP, NIPS, ICML etc.). You can find publications from the Stanford NLP Group here
In addition, you may want to look at last year's course projects (particularly the prize winners!)
You can work in teams of up to 3 people. Larger teams are expected to do larger projects. See the grading page
for more details.
You may use any existing code, libraries, etc. and consult and any papers, books, online references, etc. for your project. However, you must cite your sources in your writeup and clearly indicate which parts of the project are your contribution and which parts were implemented by others. Under no circumstances may you look at another cs224n group’s code or incorporate their code into your project.
If you are doing a similar project for another class, you must make this clear and write down the exact portion of the project that is being counted for CS224n.