COMS 4705.H01: Natural Language Processing, Spring 2017

Time: Friday ? - ? pm
Place: ?

Karl Stratos (Jang Sun Lee)

Teaching Assistants:
Christopher Hidey

Each week, TA office hours will be held at CLIC on Thursday 4-6pm.

Text Book: Speech and Language Processing, Second Edition, by Jurafsky and Martin. The second edition is currently on sale but we will be mostly using drafts of the third edition as it gets released by the authors.

Piazza: COMS W4705

Description | Prerequisites | Announcements | Assignments | Grading
Submission Policy | Collaboration Policy | Academic_Integrity
Grading Appeals | Email | Programming Languages | Important Dates | Students with Disabilities | Resources


This is a flipped version of COMS W4705. We will be using recorded video lectures by Dragomir Radev from previous year, and the instructor will hold regular help sessions to answer questions. Thus we will be covering similar topics, but assignments and exams are subject to change and new materials may be added.

Course description: Computational approaches to natural language processing and understanding. Recommended preparation: some previous or concurrent exposure to AI or Machine Learning, basic maturity in mathematics. The course has five major parts: 1. linguistic, mathematical, and computational background, 2. computational models of morphology, syntax, semantics, discourse, pragmatics, 3. core NLP technology: parsing, part of speech tagging, text generation, semantic analysis, etc., 4. applications: text classification, sentiment analysis, text summarization, question answering, machine translation, information extraction, etc., 5. neural networks. Programming exercises (in python) in several of these areas.

Important Dates

Jan 17First Day of Class
March 13-17Spring Break
May 1Last Day of Class

Official Prerequisites

COMS W3134, W3136, or W3137; or the instructor's permission.


(20170110) Page created
(20170110) The SLP textbook and a CLIC account are required.


All assignments will be posted to Courseworks.

Course Grading

4 Homework Assignments 60%
Midterm 15%
Final 20%
Participation 5%

Submission Policy

In the absence of a prior emailed authorization from the instructor, you should turn in your assignments electronically by 11:59 PM on the due date. For each day (or fraction of a day) that your submission is late, it will be penalized 10%, for a maximum of 30%. After three days, the assignment will be given a score of zero.
You will need to hand in the source code for the project, relevant documentation, and a script of a test run of your program to show that it actually works on the Clic machines.

Basic CLIC tutorial

The default grading criteria are:
Correctness 75%
Design/Structure 15%
Documentation 10%

We will usually provide a test suite with each assignment. You will need to run your program on the test suite, and hand in a log of the output. The test script will help us determine the correctness of your program. The documentation will help us assess the structure, design, and efficiency of your program. Documentation need not be encyclopedic, but should succinctly describe the structure and design of your program. Normally, a page or so will suffice. Of course, we expect to see comments in the source code as well.

Collaboration Policy

You may discuss the course material and the textbook with other students. You may also discuss the *requirements* of the assignments. However, you cannot get help with the assignments and exams themselves in oral or written form from anyone. If you are unsure about this policy, ask the instructors.

Academic Integrity

Copying or paraphrasing someone's work (code included), or permitting your own work to be copied or paraphrased, even if only in part, is not allowed, and will result in an automatic grade of 0 for the entire assignment or exam in which the copying or paraphrasing was done. Your grade should reflect your own work. If you believe you are going to have trouble completing an assignment, please talk to the instructor or TAs in advance of the due date. For more information, please read this page very carefully.

Grading Appeals

If you have a question about your grade on a particular assignment (or exam), write a short email to the TA in charge of that assignment. Please submit any such requests within a week of receiving your grade.


Send your questions via email to the instructors mailing list. This way it will reach the instructor and all TAs and you will get a reply sooner.

Programming Languages

The programming assignments will be in Python. You are expected to either know Python already or to learn it on your own. Tutorial materials on Python will be provided.

Students with Disabilities

If you have any disability as defined under the Americans with Disabilities Act and you believe that it may prevent you from participating fully in class or it may make it difficult for you to submit your assignments on time, please contact the instructor at the beginning of the semester.


All resources about the class, including software, data sets, etc. are here.