Objectives: At the end of this course, students should
have a good understanding of the research questions and methods used
in different areas of natural language
processing. Students should also be able to use this knowledge to implement
simple natural language processing algorithms and
applications. Students who take this course for 4 hours credit
should also be able to understand and evaluate original research papers
in natural language processing that build on and go beyond the
textbook material covered in class.

Textbook: Jurafsky and Martin (2008), Speech and Language
Processing, 2nd edition. This is a required text. All assigned
readings are from this book, unless indicated otherwise. Make sure to
get the second edition, since it is significantly different from the
first one! (And do check the errata pages). There will be two copies on reserve at Grainger for this class.
We will also draw some readings from the 3rd edition , which is still in preparation, although the website has (currently) a number of new and/or rewritten chapters available as PDFs.

Target audience and prerequisites: Advanced undergraduates and graduates
with a background in formal language and automata theory (CS273 or
equivalent). Programming experience is necessary for the assignments. The required programming language for all assignments is Python 3.5.
Prior exposure to linguistics is not required.