Current Semester (Fall 2025)
- LING82100/73900 - Statistics for Linguistics Research
- LING78100/73800 - Methods in Computational Linguistics I
- LING83100 - Language Processing (Signals and Symbols) (Spring 2025, Spring 2024)
Language is perhaps the best window we have into cognition. Humans' knowledge of language consists not only in grammatical representation, but in the processes which operate over such representation. Thus, how we are able to convert gradient, continuous, ephemeral perceptual signals into discrete, mental symbols (and vice versa) is of fundamental importance to work toward a fuller understanding the cognitive system of language. This discussion-based seminar will provide a wide-ranging but in-depth overview of topics in the real-time processing of language, speech, and related perceptual domains. Special attention will be devoted to the use of simple algorithmic models and related experiments in order to explore the specific mechanisms involves in the mental representation and use of language.
- LING78100/73800 - Methods in Computational Linguistics I (Fall 2024, Fall 2023)
This course is the first of a two-semester series introducing modern software development. The intended audience are students interested in speech and language processing technologies, though the materials will be beneficial to all language researchers.
- LING83800 - Methods in Computational Linguistics II (Spring 2025, Spring 2024)
This course is the second of a two-semester series introducing computational linguistics and software development. The intended audience are students interested in speech and language processing technologies, though the materials will be beneficial to all language researchers.
- LING82100 - Language Acquisition (Fall 2023)
This course is an overview of research in language acquisition, focusing on the important connection between what children know and how they come to know it. We will devote special attention to the use of simple computational and mathematical models in explaining the mechanisms children possess to learn and use language.
- CS65 (Swarthmore) - Natural Language Processing (Spring 2022, Fall 2020)
This course will introduce you to a broad range of topics in the area of natural language processing including language modeling, part of speech tagging, machine translation, syntactic parsing, vector semantics, text classification, as well as the application of computational tools to cognitive modeling and psycholinguistics.
- CS21 (Swarthmore) - Intro to Computer Science (Spring 2021)
This course will introduce fundamental ideas in computer science while also teaching you how to write computer programs. We will study algorithms for solving problems and implement solutions in the Python programming language. Python is an interpreted language that is known for its ease of use. We also introduce object-oriented programming and data structures. This course is appropriate for all students who want to learn how to write computer programs and think like computer scientists. It is the usual first course for computer science majors and minors.
- CS35 (Swarthmore) - Data Structures and Algorithms (Fall 2021)
This is the second semester in a broad introduction to computer science. Topics to be covered include object-oriented programming in C++, advanced data structures (such as priority queues, trees, hash tables, and graphs), advanced algorithms (and analysis of asymptotic complexity), as well as software design and verification. These topics are central to every sub-discipline in computer science, and also connect to central concepts across the sciences.
Office Hours: Thursdays 3:15-4:15PM, GC 7400.02 and by appt.
Various Past Courses
Before Joining CUNY GC
From 2020 through 2022 I was a Visiting Assistant Professor of Computer Science and Cognitive Science at Swarthmore College. I taught both upper-level courses in NLP and computational linguistics as well as introductory and intermediate courses in data structures, algorithms, and the fundamentals of computer science.In my graduate student days I also served as a teaching assistant for a range of courses in linguistics, formal language theory, experimental methods, and psycholinguistics.
In my teaching, as in my research, I apply computational approaches and thinking to topics in language, linguistics, and cognitive science. Particularly in a growing area like "computational linguistics", I believe it is important that students need not be experienced programmers in order to "think computationally."