Linguistics 473
Computational Linguistics Fundamentals
Summer 2017


Course Requirements

3 Written Assignments (30%)
5 Programming Projects (55%)
Paper Review (10%)
Class and Discussion Board Participation (5%)

A UW NetID and UW Computational Linguistics computing account are required. Click here if you need to obtain a UW NetID.

After you register for the course and get your UW NetID, you must apply for an account on the computational linguistics cluster by filling out the following form:

Computational Linguistics cluster account request form

Please take these steps promptly so that you will be ready to use on these accounts on first day of class.


The information on this website is provisional and subject to change at any time. It is the student's responsibility to confirm dates and requirements. Changes in due dates or the substantial requirements for assignments will be posted on the discussion board; to receive e-mail notification, see the next section.

Using GoPost

The GoPost discussion board is your forum for discussing the lectures, homework, and projects with other students and the instructor. Please help your fellow students' questions without disclosing key insights to an assignment; answering these questions counts towards your class participation grade. To help keep abreast of important course activities, I encourage you to visit your profile page, where you can subscribe to e-mail notifications. Because this class runs for only eight weeks, I also suggest that you set a profile picture so that everyone can get to know each other more quickly.

As for what it is permissible to discuss on the message board, please do not post complete answers to specific problems in the assignments, as these deprive other students of the opportunity to learn the material. If you have any doubt about whether to post a particular question or comment, please email it to me first.

Academic Honesty

Due to the compressed schedule of this class, there will be no team projects. Each students' work is to be his or her own in accordance with the University policy on academic integrity.


This class surveys a large amount of material in fifteen class sessions. The successful student will be sure to attend every lecture in person or online, or to review the recorded lectures in a timely fashion. This will also accrue the most important benefit of any class, which is the opportunity to meet others who share your academic interest, and who may become lifelong friends and colleagues.

Assignments and Projects

In order to encourage students to start working early, I will only change the written requirements for homework in the case of serious flaws. Students who are able to complete assignments as originally written will never be penalized if requirements are changed.


All programming projects submitted in Ling 473 must be able to run on the department's computing cluster. Projects which do not require access to license-restricted corpora can be developed on your own computer, but it is your responsibility to ensure that your final submission is compatible with the language versions and software resources available on our systems. As a courtesy to other users, long-running jobs should be submitted to the Condor cluster, and not run on one of the two head nodes.


  • Assignments must be submitted by 4:30 p.m. on the due date, that is, before the start of class on the due date.
  • Projects must be submitted by 11:45 p.m. on the due date.

All work must be submitted via your CollectIt dropbox. The CollectIt system time-stamps submissions and is the final arbiter of submission time.

Late Work

The ability to meet deadlines illustrates mastery of the subject. To be fair to students who turned in their work on time, solutions to the problems will be reviewed in class on the due date, while the material is still fresh in everyone's minds. Students also appreciate timely grading, and this is not possible when I cannot grade all assignments at once.

For these reasons, late work cannot be accepted. Instead, there will be opportunites for extra credit and partial credit as discussed in the next sections.

Partial credit

If you cannot complete some parts of an assignment, be sure to turn in what you were able to complete by the due date so that partial credit can be given. Naturally, this is only possible if you show evidence of your work.

In order to receive partial credit for a programming project which does not work properly or run at all, you must submit the code that you completed, along with a write-up describing the problem, what steps you took to try to solve it, and how long you worked at it.

Output Files

In addition to code that I can run to produce output, your submission shall include text output files which you captured from the console by running the program yourself. This way, if your assignment does not run according to the instructions and I cannot determine why in a short period of time, I will still be able to verify your results and issue partial credit. If you did not submit output files, you may not receive partial credit.

Extra credit

Most assignments will have extra credit problems. These are never required, and it is possible to get the highest grade without completing extra credit. Extra credit is automatically applied to your previous or future grades, so as to most benefit your final grade in the course.

Grading Criteria

Naturally, the policy on grading (and incompletes) adheres to the UW Grading System. My normal method is to make 95 and above a 4.0, 93.5-95 a 3.9, 92-93.5 a 3.8, etc. This scaling mechanism may change.


This criterion pertains to whether you completed all parts of the assignment. Where assignments have multiple parts, the abstract will note the points each section is worth. Extra credit may be given for optimizations or special insights (be sure to document these with your accompanying write-up).


Is the output correct?

Following Directions

There is no grading assistant or T.A. in this course. In order to ensure efficient and timely grading of the programming assignments, there are very specific requirements for the naming of the various files and scripts. These written instructions must be followed carefully, because it’s difficult to assess a student’s assignment when it differs from those of other students. Did you name your files like in the instructions? Did you use the correct inputs? Did you structure your code as the assignment called for?


All programming projects shall be accompanied by a file, README.PDF or README.TXT, which contains a prose description of your work. This can include mention of optimizations, alternatives considered, dead-ends pursued, what you learned from the assignment, or any other matters that are relevant.

In order to comply with the UW policy on academic integrity, this is where you must document all code, libraries, or other academic materials that you incorporate or reference in your work. As an example, algorithms that are substantially similar to code found on Wikipedia will not be acceptable.

Commenting code

Well-written code is self-documenting. Unusual constructions or special conditions must be commented with concise comments in the most immediate location possible and where they will surely be updated as code changes. Code that is concise and elegant enough to be understood without comments is never penalized, but incorrect or out-of-date comments are strenuously distracting and may lower your score.