CS 349: Natural Language Processing

Spring 2016, Wellesley College


Assignments 50%
Quizzes 21%
Readings & Exercises 9%
Final Project 20%

Letter grades will be calculated according to the following boundaries:

90-100 85-90 80-85 75-80 70-75 66.6-70 63.3-66.6 60-63.3 50-60 < 50
A A- B+ B B- C+ C C- D F

As a 300-level course, we are not subject to institutional policies on the average grade. You will get the grade you earn. Grades are curved only to the extent that I may lower the boundaries, depending on the distribution of the raw scores, to your advantage. I will never raise the boundaries in response to the distribution.


We have six assignments, every two weeks, that mainly involve implementing algorithms to solve NLP tasks using Python. They may occassionally contain a few written problems. Except for A1, programming assignments may be done in pairs, though you're welcome to fly solo. See the schedule for due dates.

Late Days

You have a budget of four late days (24-hour extensions) for the assignments. These should account for routine schedule conflicts, minor illnesses, difficulties, etc. In the case of pair submissions, each student gets a late day. Other extensions will rarely be granted, and only in extenuating circumstances. Late submissions beyond the free budget will incur a 20% penalty per day.

I hope you find the assignments fun and rewarding: there's nothing like implementing something to really understand it. And at the end of the course, you can brag that you built a working spelling correction program, machine translation engine, speech recognizer, and more!

An automated testing program will be provided for all programming assignments, giving you an estimate of your program correctness before you submit (other than functions that cannot be auto-checked, partial credit and some style points).

Expository Substitution

You can choose to drop one of the assignments to explain something to us instead, by giving a presentation or writing an article. This requires reading and understanding technical material and explaining it in a clear, interesting way. Grades will be based on the thoroughness, correctness, and clarity of your presentation. Meet with me in advance to discuss the material and your presentation plan. Some ideas:


Prepare a 20-30 minute presentation on a topic, create class activities and readings if relevant, and post a document with your lecture notes.

Blog Post

Pick a problem in NLP, read a few key research papers in this topic, and write an article/blog post/Wikipedia article explaining the big ideas and recent technical developments to a layperson audience.

Let me know early in the course if you are considering this option.


There are no exams. We will have three half-hour tests (open-book, pen-and-paper), roughly once a month as indicated on the schedule, worth 7% each.

Readings & Exercises

There will typically be some assigned required reading and an associated response due the night (11:59 pm) before class. Responses are designed to motivate you to do the reading and reflect upon it, as well as an opportunity for you to tell me what you find difficult/confusing, so that I can focus on it in lecture.

Doing the reading helps you clarify your questions during class, so that you're comfortable by the time we move on. In lieu of problem sets, we'll often have some in-class activities/exercises to give you practice with mathematical problems or understanding algorithms.

Unexcused absences or missed responses cannot be made up. Exercises and responses are marked for completion, or on a zero/check-/check scale.

Final Project

See the project guidelines.