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.
Your project can be on any topic of your choice 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. You also have the option of doing a default final project (aka Assignment 4) that we will provide scaffolding code for. This will be similar to the other assignments but longer and more open-ended.
Here is a list of project ideas from Stanford researchers!
To inspire more ideas, you might look at recent deep learning publications from top-tier NLP conferences and labs:
We have included below some pretty cool papers for further inspiration.
Course project proposal (only for students not doing the default final project): due February 9.
The poster session will be held 12:15-3:15pm on March 21.
Final course project: due March 17
Students proposing their own project are required
to have a mentor who will provide high-level guidance for the project. You must find a mentor before submitting your project proposal. To find a mentor
- Contact them in office hours or through email. Briefly go over your background, interests, and ideas you have for the project.
- If they agree to mentor you, email email@example.com with your mentor cc'd. In the email state who your mentor is as well as the names and SUNetIDs of the people in your team.
Here are the mentors affiliated with cs224n:
However, you are free to ask anyone else (such as other Stanford faculty and grad students) to mentor you as long as they have substantial experience with deep learning.
Mentors will take up to 25 teams each on a first-come-first-serve basis, so it is recommended you contact them early!
The final project is worth 30% for your grade (with your poster presentation comprising additional 2%).
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.
The project proposal should be a few short paragraphs (200-400 words overall). If you are doing the default final project, you do not need to submit a proposal. If you do not submit a proposal on time, you have to do the default final project
. Your proposal should contain the following headings:
Mentor: Who is your mentor for the project? You should have already emailed firstname.lastname@example.org with this information.
Problem Description: What is the problem that you will be investigating? Why is it interesting?
Data: What data will you use? If you are collecting new datasets, how do you plan to collect them?
Methodology/Algorithm: 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?
Related Work: What reading will you examine to provide context and background?
Evaluation Plan: 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)?
: Please upload one proposal per team on Gradescope.
Your final write-up should be between 6 - 8
pages using the provided template
. After the class, 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.
You should include a brief statement on the contributions of different members of the team. Team members will normally get the same grade, but we reserve the right to differentiate in egregious cases.
Submit your final submission as instructed below:
- A PDF file of your final report submitted through Gradescope.
- A zip file with supplementary materials through our submission script. You are required to include all the code for your project in the supplementary materials.
. 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 your problem, and the overall plan for approaching your problem
- Background/Related Work: This section discusses relevant literature for your project
- Approach: This section details the framework of your project. Be specific, which means you might want to include equations, figures, plots, etc
- Experiments: This section begins with what kind of experiments you're doing, what kind of dataset(s) you're using, and what is the way you measure or evaluate your results. It then shows in details the results of your experiments. By details, we mean both quantitative evaluations (show numbers, figures, tables, etc) as well as qualitative results (show images, example results, etc).
- Conclusion: What have you learned? Suggest future ideas.
- References: This is absolutely necessary.
is not counted toward your 6-8 page limit.
Examples of things to put in your supplementary material:
- Source code (required).
- Cool videos, interactive visualizations, demos, etc. (optional)
Examples of things to not put in your supplementary material:
- All of a submodules (Theano, Caffe, CoreNLP) source code.
- Any code that is larger than 1MB.
- Model checkpoints.
- A computer virus.
We will hold a poster session in which you will present the results of your projects im the form of a poster. The poster session will happen on Match 21st, 12:15-3:15pm (location: Lathrop second floor). Poster boards and easels will be provided.
Example Project Reports
Your project reports should structure like a NLP conference paper (NIPS, ICML, EMNLP, ACL, etc.). You can find publications from Stanford NLP Group from here
. In addition, you may also take a look at some previous projects from other Stanford CS classes, such as CS221
as well as previous cs224n
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.