For students interested in taking Natural Language Processing in Fall 2017:
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.
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.