Homework

Back to Syllabus

There will be five or six homework assignments due throughout the semester. The recommended language for implementing them is Python 3. Examples, skeleton code, and solutions will use Python 3.5; however, if you prefer to use something else, you are free to.

You probably have Python installed already; if you haven't switched to Python 3 yet, now's the time!

  1. If you need to install Python, the simplest way to get it is probably Miniconda.
  2. If you want to keep packages for this course separated from your system-wide packages, create a virtualenv:
    virtualenv nlp
    source nlp/bin/activate      # sh/ksh/bash/zsh
    #source nlp/bin/activate.csh # csh/tcsh
    
  3. If you need a refresher on Python, see the tutorial. Or if you're used to Python 2, here is a list of differences.

Assignments

The following are subject to change.

  • HW1 -- Preliminaries: Basics of handling text with Python, probabilities, and edit-distance.
  • HW2 -- Language Models and Embeddings: create a basic n-gram LM, and study word similarity using embeddings.
  • HW3 -- POS Tagging with Neural Models and CRFs.
  • HW4 -- Parsing with PCFGs.
  • HW5 -- Alignment and seq2seq Models.

Read all the instructions on this page carefully
You are responsible for reading the instructions in each homework page and following them carefully. If you do not, you may be marked down as a result.

Assignment Policies

All assignments are to be done individually (except for the project-related ones).

Submission Information: Each assignment will have its own instructions (but all will require that you make your submissions through Blackboard).

Late Submissions: In the case of a serious illness or other excused absence, as defined by university policies, coursework submissions will be accepted late by the same number of days as the excused absence. In case there are unforeseen circumstances that don’t let you turn in your assignments on time, you may submit part of an assignment on time for full credit and part of the assignment late with a penalty of 30% per week (that is, your score for that part will be $\lfloor 0.7^t s\rfloor$, where $s$ is your raw score and $t$ is the possibly fractional number of weeks late). No part of the assigment may be submitted more than once. No work may be submitted after the final project due date.

Plagiarism/Code Reuse Policy: All rules from the Code of Conduct apply and violations will be subject to penalty including zero credit on the assignment, failing the course, or other disciplinary measures. In particular, in your implementation:

  • Pseudo-code or code provided by instructor may be used freely without restriction.
  • You may not just re-use an existing implementation written by someone else. The implementation should basically be your own.
  • Fragments of code found online can be used (assuming the license so permits), but if they are significant, please cite these in your report. Failure to do so can be treated as being in violation of the assignment rules.
  • Code and solutions written by other students in the class cannot be used.

The following table summarizes how you may work with other students and use print/online sources:

Resources Solutions
Consulting allowed not allowed
Copying cite not allowed
Previous
Next