CS 6120: NLP Course Projects

Northeastern University, Fall 2025

Project Stages

As discussed in the first class, you will submit and revise your work on the course project in several stages:

  1. initial pitch
  2. research plan
  3. sample data
  4. grade contract
  5. oral presentation
  6. final report

On this page, we'll post instructions for each stage incrementally as the course progresses.

Initial Pitch (Due Friday 3 October 11:59pm)

One semester is not nearly enough to cover all the methods, tasks, and data in the field of natural language processing. The course project is a chance to focus on one or a small number of tasks, models, or approaches that you find interesting. You may work in teams of one to four students. Although it would be easier to work with others in the same section, it is permitted to collaborate across sections 21600 and 21601.

The first step in your project is to submit an initial pitch, with two key pieces of information:

  1. a list of the members of your project team; and
  2. one paragraph of five to ten sentences, describing the NLP approach you will implement and the task and data you will evaluate on.

Please submit this information as a PDF on Gradescope. We will then give feedback on the scope of your pitch, commenting on whether it seems to narrow or too broad for a team of your size, and adding further suggestions for refinement.

Research Plan and Sample Data (Due Friday 31 October 11:59pm)

Now that you've formed your teams and gotten feedback on your initial pitch, you can start working. To structure your thinking, we would like you to write a brief research plan and explain some sample data. Your plan should include at least one paragraph under each of the following headings:

Please submit this information as a PDF on Gradescope. We will give you feedback on it.

Grade Contract (Due Wednesday 26 November 11:59pm)

Hopfully your projects are going well so far. Since every team's project will be different, it is hard to compare the exact amount of work each team will perform. We are asking each team, therefore, to write a specification, or grade contract for what you would need to accomplish to achieve various letter grades on your project. Since this is an upper-level class, we will start at B. Write down four sets of milestones:

  1. what milestones your team should accomplish to receive a B;
  2. what additional milestones your team should accomplish to receive a B+;
  3. what additional milestones your team should accomplish to receive an A-; and
  4. what additional milestones your team should accomplish to receive an A.
Each set of milestones should be detailed enough so it will be clear whether you've met them. Please try to be as realistic as you can, and focus on what you can control. For instance, it would be a bad idea to promise to meet a certain accuracy level; instead, talk about the approach you will pursue, the experiments you will conduct, or the things you will implement.

Submit this as a PDF on Gradescope, and we will provide feedback on any adjustments we think you should make to these milestones.

Final Report (Due Thursday 11 December 11:59pm)

The final step is to submit your final report. This should be a PDF document in single-column format. Text should be single-spaced, i.e., depending on your formatting it might be 1-1.15 line spacing. Your report should include the following sections, for some of which we have specified minimum page counts:

Project Goals and Topics

To give you some context for the initial pitch, here is some information on the goals of the project and possible topics. There are three key components of any project in this course:

  1. annotating natural language data,
  2. performing natural language inference, and
  3. evaluating performance.

Annotating natural language data: Although there are many datasets available, students in this course should have experience looking at natural language data and annotating it to help train and evaluate models. In most cases, you will supplement data you annotate with other datasets, but annotating data yourself helps you think through the problem and evaluation. If you are defining a new task, you might spend more time on creating new evaluation data. If you are evaluating a new approach to an old task, however, you should still create some evaluation data to help develop your intuition about the task.

Performing natural language inference: Choose a task or define a new one. Choose models appropriate for your task.

Evaluating performance: Choose an evaluation protocol and evaluation metric(s) suitable for your task. Analyze the results of an NLP system to help find strengths and weaknesses, or kinds of data where it performs better or worse.

We will discuss these steps in more detail in future project stages.

Here are some suggestions for general directions your project might take. They are only suggestions, and you do not need to choose from this list.