Skip to content

Final Projects

Alexander Koller edited this page Oct 30, 2023 · 6 revisions

Computational Linguistics: Final Projects

Instead of a written exam, you will do final projects to get credit for this class. You will need to come up with your own topic for your project; then you will work on it in the term break and submit both code and a brief but clear project documentation. Here are some details:

  • Everyone who wants credit for the course needs to complete a final project. The final project will be graded. The grade for the project will contribute to the grade for the course as a whole as described in the first lecture. Please work on your project independently of the other students, so I can assess your personal capabilities. You can still brainstorm project ideas with others. I trust you to be honest about this.
  • The topic of the project should solve some problem in computational linguistics, using methods that were taught in this course. If you want to use some other method, please come talk to me. In this case, please have a more conventional Plan B (which is more directly related to the course topics) in case we can't make your original idea work.
  • In terms of workload, a final project should be roughly as much work as one assignment (plus the time you need to write the project documentation). We will briefly talk through your project together to scale it up or down as needed.
  • You will need to submit a Zip file containing your source code and a PDF file that documents your project. The purpose of the documentation is to explain what problem you are solving; what you did (in technical terms) to solve it; and to evaluate your results. It doesn't have to be long (five pages may suffice), but it does need to explain everything I need to know to evaluate your project easily.
  • Criteria for the grade will include originality (is it a new idea, or are you just directly implementing an algorithm I explained in class); difficulty and ambitiousness; quality of results and implementation; and completeness and clarity of the accompanying paper.

I want to talk to everyone about their project idea before the end of the semester. In order to use our discussion time efficiently, I'd like to prepare a bit. Thus, everyone should please send me a project sketch in advance. Use the link to the Google Form that you were given in class.

Your project sketch should be roughly half a page in length and explain the problem you want to solve and some ideas (algorithms, datasets) on how you want to solve it.

The deadline for submitting the final project was specified in class. I will do my best to grade all projects before classes start in April.

Some tips

  • Done is better than perfect. As you plan your work, make sure that you build and evaluate a simple baseline system first, so you have something to submit in case something goes wrong later. It is much better to submit an imperfect, but working solution than to aim for a complicated solution that you can't get done in time.
  • That said, I will evaluate the creativity of your project and your solution. All else being equal, you will get a better grade for a project that required you to make design choices of your own (modeling, preprocessing, etc.) than for one where you only reimplement someone else’s ideas.
  • It is okay to use off-the-shelf tools and resources in the final projects, as long as there is sufficient technical substance in what you did yourself. Using off-the-shelf resources can be a great way to be able to focus on (and finish) the interesting part of your project, or to get started quickly even if you later replace the off-the-shelf resource with one of your own making.
  • Write the project report with the intention of explaining your work to a fellow student who has successfully attended this class. You can assume as known anything we talked about in class. At the same time, make sure you explain what task you are solving and why it is interesting, and explain how you are solving it so your fellow student can understand the core idea. Evaluate your system, discuss to what extent you have solved the task, and maybe speculate on ways in which your system could be improved. You can talk about related work if you find it useful, but I don't expect a comprehensive literature review here. A project report that achieves this will typically have ~10 pages. Please don't make them much longer - I have to read a lot of them.
  • I won't be able to give you further feedback on your project or answer questions after we discuss it in the final week of the semester. However, feel free to talk to each other to brainstorm or work through difficult bits - just make sure that your programming and writing is fully your own.

Clone this wiki locally