COMS W4705: Homeworks

Gilbert Street
[Main] | [General Information] | [Problem Sets]


  • February 3rd: Homework 1 is released here. The analytical problems are due February 18th; the programming assignment is due February 18th (see the homework for full details). Files for the programming assignment: count_freqs.py, eval_ne_tagger.py, ner_train.dat, ner_dev.dat, ner_dev.key.

    An important update: please read this note on a modified version of the Viterbi algorithm, using log probabilities. You should implement this modified version.

  • February 19th: Homework 2 analytical problems are released here. The problems are due by 5pm on February 27th. Late policy: 5 points off for every day late, 0 points if handed in after 5pm on March 5th.

  • March 23rd: Homework 3 is released here. The analytical problems are due by 5pm on April 1st; the programming assignment is due by 5pm on April 8th. Please read these submission instructions carefully. Files for the programming assignment are here. Late policy: 5 points off for every day late, 0 points if handed in after 5pm on April 5th for the analytical problems, April 12th for the programming problems.

  • April 22nd: Homework 4 programming problems are released here. The homework is due by 5pm on Monday May 6th. Late policy: 5 points off for every day late, 0 points if handed in after 5pm on May 10th. The github link for the code for the homework is here. Sample code for a neural network part-of-speech tagger is here.

  • April 22nd: Homework 4 (analytical problems only) is released here. The analytical problems are due by 5pm on Monday May 6th. Late policy: 5 points off for every day late, 0 points if handed in after 5pm on May 10th.

    Submission Instructions

  • Analytical part: problems must be uploaded to Courseworks. For handwritten homeworks please scan your homework to create a pdf file and then upload the file.
  • Programming assignments: Please see the instructions on Piazza for how to submit.
  • Update on late policy: we will give students 5 "free" days that can be used as they wish across the 4 problem sets. Specifically, we will not penalize the first 5 late days that a student incurs on problem sets. After that, the penalties posted on the problem sets will apply (e.g., 5 points per day late on the first problem set). The final (0 point) deadline will still apply.

    Programming Assignments Policy and Guidelines

    Please see the pdf on courseworks for full submission instructions.
  • Your code should compile and run on the CLIC machines. We recommend solving problems in Python (<= v. 2.7 / 3.0), Java (<= v.1.6), or Perl (<= v 5.10) to ensure compatibility. If you want to use any other language, please request approval from the TAs before you start coding.
  • Document your code! Undocumented code will result in lower scores.
  • Write a brief report describing results of experiments, any observations you made, design choices and instructions on how to build (if necessary) and run your implementation (command line arguments, whether data is fed to your program on stdin or from a file, etc.). The report is part of your solution and will be scored. It can be in plain text or PDF.
  • Make sure your program implements any specific functionality we ask for (input/output format etc.).
  • Efficiency of your implementation matters only when we ask for it (your algorithms should have desired performance and space requirements).
  • You should be able to solve all problems using pre-installed standard libraries. Do not use any NLP or machine learning libraries. If you choose to use third-party libraries or modules (e.g numeric computing frameworks such as numpy), make sure they are installed on CLIC. When in doubt if it is okay to use third-party code ask the TAs.
  • Please separate your report into sections. For example, for each problem describe
    Part1: how to run your code step by step (make sure your code can run on CLIC).
    Part2: performance for your algorithm (including precision, recall, and F-score).
    Part3: observations and comments about your experimental results.
    Part4: any additional information that is requested in the problem.

    Group Work and Academic Honesty Policy

    All problems must be solved individually. You may discuss the problems with other students, but you have to do the write-up and implementation yourself. We will check homework assignments for duplicates. Violations will result in a grade of zero and further steps may be taken in accordance with the CS department's academic honesty policy.