Current Information

For students interested in CS 5134/6034 (a fall course):

Proficiency in Python is a prerequisite for this course. I recommend having taken CS 2021, but if you have other experience with Python you may be ready. Some Python topics that you should be familiar with are: data types and functions, control structures, using modules and packages, designing classes, and using libraries such as numpy and scipy.

For students interested in CS 7052 (a spring course):

This course will cover special topics in natural language processing. The course will be split into three units of roughly equal length, covering sentiment analysis, computational discourse, and computational semantics. I will spend roughly a third of each unit teaching background material, and the rest of the unit will be seminar-style, with students presenting papers from published literature and leading discussions on them. I strongly recommend prior coursework in natural language processing and machine learning; although I will review some of the basic concepts as they become relevant, it will be difficult to keep up if you are entirely new to the material.

Previous Courses

In spring 2015 I co-taught Carnegie Mellon University's 11-411/611 Natural Language Processing with Chris Dyer and Alan Black.

The course included a semester-long project to build question answering and question generation systems that operate on Wikipedia articles. Students worked in small teams of three to five, and they competed to produce the best-performing systems. You can watch the final reports from the top three teams below.

I can provide a statement of teaching philosophy and teaching references upon request.