Link Search Menu Expand Document

About

Table of contents

  1. Lecture
  2. Textbook(s)
  3. Resources
  4. Prerequisites
  5. Assignments / Grading
    1. Programming Assignments (Projects) - 40%
    2. Written Assignments (Problem Sets) - 20%
    3. Midterm Exam - 15%
    4. Participation - 5%
    5. Final Project - 20%
  6. Academic Integrity

Lecture

Mondays, Wednesdays 2:00-3:15pm

Textbook(s)

There are two excellent NLP textbooks that are freely available online. Readings will be assigned from both. There is value in seeing multiple perspectives on the same material. If a concept you encounter seems confusing at first, try reading about it in the other book to get a different perspective.

Resources

Prerequisites

This is a graduate-level course on Natural Language Processing. The course will involve a lot of math and programming. To succeed, you will need a strong programming background. You should be comfortable working on medium-to-large software projects in Python and be comfortable learning and using new Python libraries, or you should have developed the ability to independently learn a new programming language and environment very quickly. The course also assumes mastery of basic concepts in probability, linear algebra and multivariable calculus. Having taken a prior machine learning course would be very helpful, but is not required.

Assignments / Grading

Graded work will include both written and programming assignments. Assignments should be submitted to Gradescope by 11:59pm on the day they are due. Each student will have 3 flexible days to turn in late homework throughout the semester. As an example, you could turn in the first homework 2 days late and the second homework 1 day late without any penalty. After that you will loose 20% for each day an assignment is handed in late. Please email your homework to the instructor in case of any technical issues with submission.

Programming Assignments (Projects) - 40%

We plan to assign three programming assignments that provide hands-on experience implementing algorithms discussed during lecture. The assignments are in Python, and make use of Pytorch. These will require non-trivial computation to complete; we recommend using Google’s Colab platform which provides free access to GPUs. Completing these projects will require waiting for your models to train (this can range from about 30 minutes to hours depending on the efficiency of your implementation), so we strongly recommend starting work on these programming assignments well in advance of the deadline. If you start working on an assignment the day before it is due, it is unlikely you will be able to complete it on time.

Written Assignments (Problem Sets) - 20%

The written assignments will mostly be mathematical. You can scan and upload your solution to Gradescope. Please write answers clearly, since we won’t be able to provide credit for answers that we are not legible.

Midterm Exam - 15%

The midterm will be similar in format to the written assignments (problem sets), but will be more substantial.

Participation - 5%

You will receive credit for asking and answering questions related to the homework on Piazza, engaging in discussion in class and generally for participating in the class.

Final Project - 20%

The final project is an open-ended assignment, with the goal of gaining experience applying the techniques presented in class to real-world datasets. Students should work in groups of 2-4. It is a good idea to discuss your planned project with the instructor to get feedback. The final project report should be 4 pages. The report should describe the problem you are solving, what data is being used, the proposed technique you are applying in addition to what baseline is used to compare against.

Academic Integrity

Any assignment or exam that you hand in must be your own work (with the exception of group projects). However, talking with others to better understand the material is strongly encouraged. Copying a solution or letting someone copy your solution is considered cheating. Everything you hand in must be your own words. Code you hand in must be written by you, with the exception of any code provided as part of the assignment. Any collaboration during an exam is considered cheating. Any student who is caught cheating will be reported to the Office of Student Integrity. Please don’t take a chance - if you are having trouble understanding the material, let us know and we will be happy to help.