Start by Oct 23, 2026 or earlier | Due on TBD
The class project is an opportunity for you to apply your newly acquired skills in NLP towards an in-depth application and/or research problem. Your project should aim to answer a scientific question and provide some kind of scientific knowledge gain similar to typical NLP research papers.
You should pick something you are passionate about or something you find interesting. When selecting a project, you should make sure that you can find an well-defined dataset that you can use for your project.
Below is a list of final project proposals for the course. Several projects focus on low-resource language processing (specifically Canadian Indigenous languages) and multimodal applications that intersect with physically based facial animation. These projects offer opportunities to build datasets, pipelines, and validation metrics with real-world research applications.
Possible projects types include:
For interesting project ideas, consider reading papers at top publishing venues for
You can also check out the titles of group projects from past terms or final projects from Stanford CS224n for inspiration.
See Resources for various tools and datasets.
For your project, please submit a Title and an Abstract that describes what topic/problem your group will work on, the scope of the project and the data you plan to use. The title/abstract is not graded, but you will receive feedback on the feasibility of the project.
To submit, go to Coursys. Under the Project Abstract
activity, enter your Title and Abstract. Your abstract should
be about 250 words (please definitely use less than 1000 words).
For your project proposal please submit a PDF file that describes what problem you plan to work on, what data you will use, and the basic approach you plan to take.
The project proposal PDF should be 1-2 pages in the style of a conference (e.g. ACL/EMNLP) submission. Your project milestone and final report should use the same template. Links to acceptable templates are below:
Make sure the following points are in your proposal.
Please upload your proposal.pdf to Coursys Project Proposal.
For your project milestone please submit a PDF file that describes progress you made so far on your project and plans for the remainder. For the final write-up you will need to also submit your code, so we encourage to get started early and submit preliminary code and results with the milestone.
The project milestone PDF should be 3-6 pages in the style of a conference (e.g. ACL/EMNLP) submission. Your final report should use the same template. Links to acceptable templates are below:
Make sure the following points are covered.
A good structure for the milestone report will include the following sections. It can then also serve as a draft for your final project write-up.
Grading of the milestone will be based on the progress and the quality of writing.
Please upload your milestone.pdf to Coursys Project Milestone.
Optionally, you can go to Coursys. Under the Project Milestone
activity upload source.zip and output.zip for your project. These will not be graded.
You must submit your project write-up as a PDF document.
In addition you must submit a Python notebook project.ipynb and your source
code for your project in your Github repository:
git@csil-git1.cs.surrey.sfu.ca:USER/nlpclass-1261-g-GROUP.git
Put all your project files into the directory project in your
Github repository.
Make sure you have a requirements.txt file for your project
so that we can use a virtual environment to run your code.
Your Python notebook must be called project.ipynb.
In addition to writing code for a good project submission, the description of what you did for your project as a PDF report is also a very important part of your project submission. The PDF writeup should have the following sections and must cover the following information:
Please read this guide to presenting your work. Also available is a video tutorial covering the same material.
Please upload your report.pdf to Coursys Final Project Report.
To submit your code and output, go to Coursys. Under the Final Project Report
activity submit the following files:
report.pdf: this is the final project reportsource.zip: this zip file should contain your iPython notebook and only the source code you have written (along with a requirements.txt for a virtualenv). Do not include any data files in this zipfile. Please also include a README.username file as you have done for all your homeworks in this zip file.output.zip: output of your project implementation on a dataset. please include the evaluation code and references to allow us to check the evaluation you present in your write-up. Note this should only be your output on the test data file of some dataset plus any evaluation code and clear instructions on how to run the evaluation script. Do not include large models or data in this zip file. If you have large models or data that you need to share with us, please put them in a networked file storage (e.g. SFU vault) and provide a link and/or instructions for downloading the data and/or models.The instructions for submission and development are provided in more detail in Homework 0.
There are no grace days for project submission! So submit early and often.
That’s it. You are done with your Final Project!
The final projects for this course will be graded using the following criteria:
The project marks are distributed as follows: