Teaching

Fall 2022: Computational Linguistics (CSCI 1460)

This course provides an introduction to the field of Natural Language Processing (NLP). We will focus on a range of NLP tasks, including machine translation, question answering, text classification, as well as the underlying linguistic problems (syntax, semantics, morphology) that make building sytems to solve these tasks so challenging. This course will cover both "traditional" (machine learning, information theoretic) approaches as well as "new" deep learning approaches.

Visit the course webpage for more information.


Spring 2021: Language Processing in Humans and Machines (CSCI 2952-I/CLPS 1850)

Understanding language requires transforming sequences of sounds into words, combining those into meaningful thoughts, and incorporating those thoughts into an ongoing discourse of ideas. Psychologists and linguists have been trying to reverse-engineer how humans do this so easily, at the speed of conversation. In parallel, computer scientists have been trying to engineer machines to solve the same problems, leading to products such as Siri and Alexa. This class will explore how the two lines of research can help each other, bringing recent insights from machine learning into the study of human language processing, and insights from human processing into the architectures of machine language systems. This will be a lecture and discussion-based course, with a focus on comparing and contrasting the models of language used in each discipline. Class projects will give students the choice between implementing computational models themselves and writing research proposals. It is not required that students build or train models in order to succeed in the course. We have done our best to design this class so that knowing how to code is not a prerequisite.

Also taught: Spring 2020


Summer 2021: Data Science (CSCI 1951-A)

Data is the new soil of business and (soon) the core of essentially all domains from material science to healthcare. Mastering big data requires a set of skills spanning a variety disciplines, from distributed systems to statistics to machine learning. It is essential to develop a deep understanding of a complex ecosystem of tools and platforms, as well as the communication skills necessary to explain advanced analytics. This course will provide an overview of the wide area of data science, with a particular focus on to the tools required to store, clean, manipulate, visualize, model, and ultimately extract information from large amounts of data. Topics include: Relational algebra and SQL, Data integration and cleaning, Data modeling in Python and Pandas, Visualizations using D3, Clustering and classification, Scaling ML algorithms, Large-scale processing tools like Spark.

Visit the course webpage for more information.

Also taught: Spring 2019, Spring 2020


Fall 2018: Computational Semantics (CSCI 2952-D)

Natural language understanding is a holy grail of AI. And with the machine learning advancing at such a rapid pace, breakthroughs in automatic language understanding seem to be just around the corner. But what exactly are the current barriers in automating human-like language capabilities? This course will dissect what makes language understanding so challenging, including both theoretical aspects (logic, formal semantics, pragmatics, knowledge representation) and practical methods (graphical models, game theory, neural networks). The course will be project-based, and will emphasize reading and critiquing current research in computer science, linguistics, and cognitive science.

Visit the course webpage for more information.