In a final project, each student explores some aspect of computational linguistics of their own choice. Although the intention is that students will apply or develop an idea that has been introduced in the course of the semester, the specific choice is up to the student. Explore — use your creativity. Often, the idea for final projects comes from foreign languages, linguistic theories, or mathematical issues in the analysis of human language.
The ideal final project is at the intersection the student’s real interests and some sub-area of computational linguistics. It needs to fit into the available time remaining in the semester; budget about two weeks of solid effort.
If you propose something too large e.g. high-accuracy machine-translation for arbitrary texts, the instructor will steer you towards a more manageable sub-project — perhaps a pair of controlled sub-languages, with just a few interesting constructions. If you propose something too small — transliterating a program out of a book — the instructor will encourage you to lift your sights. You might delve more deeply into the theory of the program’s operation, or extend it to some new case.
Every student who is taking the class for a grade receives an individual grade. So, the easiest projects to grade are solo projects. But on the other hand, a collaborative team project may also be possible. The key requirement is assigning credit, separately, to each teammate. One way to do that is to factor a large project into sub-tasks. If you wish to pursue this, include in your proposal a Grading Plan that details who is doing what. All teammates will be graded on their understanding of why/what/how, and they must each make an identifiable contribution to the presentation at the Festival of Final Projects.
Learn by reading; follow up references and tips from your instructor to learn more about areas that interest you. Allocate time during your weekly schedule to reflect and develop small prototypes.
Send your slides and/or demos to Jacob and check out other presenters' slides.
The writeup is a kind of technical report on the computational treatment of some language phenomenon. It should explain the problem and the approach, and then detail what has been achieved. It needs to be complete, in the sense that it explains the project fully, but also short: not longer than 12 pages. The best way to write it is to ruthlessly edit a longer draft down until it fits inside the page limit. A bad writeup can scuttle a good project, so allocate the time you need to produce a quality report. Take advantage of free help at Cornell’s Writing Walk-in Service
Although program code can be submitted as an appendix, software ideas should be presented in prose, with diagrams, or via an appropriate mathematical formalization.
This writeup should include some reflection on what you, as the student, learned from the experience. Did everything go as planned? How would you extend this work if given, say 3 more months?