Grading
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.
Assignments
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:
Lecture
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.
Quizzes
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.