This page describes assignments and grading policies for CS224N / Ling 284:


Course grades will be based 60% on the three programming assignments (20% each), 34% on the final project, and 6% on the quizzes (0.33% for each).


During each class, a question will be asked in class, related to the topics covered that day. The response to each question determines 0.33% of your final grade, totaling to 6% over all 18 lectures scheduled for this quarter. Use the quiz submission script at Quiz Submissions.

The responses for any week's classes must reach the course staff by 5pm on the following Sunday. (E.g., responses to the questions asked in class on Monday 1/10/11 and/or Wednesday 1/12/11 must reach the course staff by 5pm on Sunday 1/16/11).

Programming Assignments

There will be three substantial programming assignments, each exploring a core NLP task.

PA1: N-Gram Language Models
We'll build a language model based on n-gram statistics estimated from a large corpus, and test our model's ability to help with a speech recognition task. (Due Wednesday 1/19/11.)
PA2: Word Alignment Models for Machine Translation
We'll build word alignment models based on IBM models 1 and 2. It will be trained and tested on the Hansard corpus, consisting of parallel English and French sentences. Paste in your language model from PA1, and with the provided Greedy Decoder, you have a complete statistical machine translation system, to try out on the provided French, German, and Spanish corpora. (Due Wednesday 2/2/11.)
PA3: Maximum Entropy Markov Models & Treebank Parsing
This assignment looks at named entity recognition and parsing. The aim is to examine whether pre-chunking of named entities can improve the performance of a statistical parser trained on financial newswire text when applied to the task of parsing biomedical research articles. You will build a maximum entropy classifier, which will be incorporated into a maximum entropy Markov model for doing named entity recognition on biomedical text. You will also implement the parsing algorithm for a broad coverage statistical treebank parser. We have included in the support code the ability to chunk entities into a single word, and then to pass this chunked sentence to the parser, so that you can then informally compare the performance of the parser on chunked and unchunked input. (Due Wednesday 2/16/11 - deadline extended to 11:59pm PST.)

Final Project

In addition, there will be a final programming project on a topic of your own choosing. See the final project guide for more information.

A short, ungraded project proposal will be due on Wednesday 2/9/11. Final project write-ups will be due on Wednesday 3/9/11. Students will give short project presentations on Thursday 3/17/11, from 12:15pm to 3:15pm.

You may find it helpful to look at final projects from previous years.

Collaboration Policy

For both the programming assignments and final project, you're free to work alone, but you're also allowed (and indeed encouraged) to work in teams. This means developing ideas together, writing code together, and submitting a joint report.

However, if you collaborate, your submission must include a statement describing the contributions of each collaborator. For example, "We did the entire project as pair programming over several late nights in our dorm rooms". Or, "Sue built the initial parser, while Joe worked on improving parse quality through the use of features and on improving runtime speed by profiling."

Ordinarily, all team members will receive the same grade for an assignment—though we reserve the right, in case of egregiously unequal contributions, to assign different grades to different team members.

Please ask if you have any questions about the collaboration policy, and make sure you adhere to it.

Electronic Submission

For each programming assignment and for the final project, you'll submit your program using a Unix script that we've prepared. To submit your program, first put all the files to be submitted in one directory on a Leland machine (or any machine from which you can access the Leland AFS filesystem). This should include all source code files, but should not include compiled class files or large data files. Normally, your submission directory will have a subdirectory named src which contains all your source code. When you're ready to submit, type:


(Or submit-pa2, or submit-pa2, or submit-fp, as appropriate.) This will (recursively) copy everything in your submission directory into the official submission directory for the class. If you need to resubmit it type

/afs/ir/class/cs224n/bin/submit-pa1 -replace

We will compile and run your program on the Leland systems, using ant and our standard build.xml to compile, and using java to run. So, please make sure your program compiles and runs without difficulty on the Leland machines. If there's anything special we need to know about compiling or running your program, please include a README file with your submission. Your code doesn't have to be beautiful but we should be able to scan it and figure out what you did without too much pain.

Late Day Policy

All assignments are due at 5pm on the assigned due date. A grading penalty will be applied to late assignments. We recognize that students may face unusual circumstances and require some flexibility in the course of the quarter; therefore each student will be granted a total of five free late (calendar) days to use as he or she sees fit. Once these late days are exhausted, any assignment turned in late will be penalized 10% per late day. Each 24 hours or part thereof that a assignment is late uses up one full late day.

Late days may be used for the final project report; however, no final project reports will be accepted after Monday 3/14/11.

To hand in the report late, there is a hand-in box in the basement of Gates, near the bottom of the A-wing stairwell. You can find directions to it here. To get into the basement after the building is locked, slide your SUID card in the card reader by the main basement entrance. For code submitted late, please write the date and time of submission on your report and sign it before placing it in the box.

It is an honor code violation to write down the wrong time.

When students collaborate on an assignment, and the assignment is submitted late, late days are deducted from each team member's balance. Altruistic team members are allowed to "donate" late days to a collaborator if they wish.

Regrading requests

If you feel you deserved a better grade on an assignment, you may submit a regrade request in writing to the TA responsible. Your request should briefly summarize why you feel the original grade was unfair. Your TA will take a day or two to reevaluate your assignment, and then issue a decision. If you're still not satisfied, you can then appeal (again, in writing) to the course instructors, Bill MacCartney and Prof. Gerald Penn.

Note that in regrading an assignment, we may reevaluate any part of it, not just the part you bring to our attention.