The classes I teach regularly include the following.
Ling 341, Mathematics of Language. Can language be described mathematically? Is there any fundamental difference between human languages (English, Swahili, Anishinaabemowin) and computer languages? Can we build a machine that genuinely speaks English? How does one invent a language (like Sindarin or Klingon) that has the ring of real language? What is Language? Can there be a science of language?
In answering those questions, we explore the mathematical concepts and techniques that have been developed by linguists, logicians, and computer scientists to model language. The mathematical toolbox includes finite-state and context-free grammars, logic, and probability theory. We will focus on syntax (how sentences are put together) and semantics (what they mean). No mathematical background is assumed beyond high school algebra. (Usually offered in the fall term.)
Ling 441, Computational Linguistics I. Computational linguistics, broadly construed, encompasses three distinct areas of study: (1) human language technology, including machine translation, information extraction, and spoken language dialogue systems, among other technologies; (2) computational models of language users, which divides into computational psycholinguistics, in which humans are the object of study, and natural language processing as a branch of artificial intelligence, in which artificial agents are the object; and (3) digital linguistics, which is the use of computation in support of language documentation and linguistic research.
This class is a general introduction to computational linguistics. We will examine the levels of language processing, from low-level text processing to semantic interpretation. The course assumes no computational background. Needed programming concepts and skills will be introduced as we go, using the Python programming language. The textbook is Bird, Klein, and Loper, Natural Language Processing with Python (O'Reilly, 2009, ISBN 978-0-596-51649-9). (Usually offered in the fall term.)
Ling 702 - EECS 597 - SI 760, Language and Information. An introduction to statistical natural language processing, with special emphasis on the processing of texts and text collections (corpora). The word "information" in the title is deliberately ambiguous. It refers both to the use of natural language processing to extract the information that is contained in the texts, and the central importance of information theory for text processing.
There are no specific prerequisites, though it will be assumed that students have at least a little prior exposure to calculus, probability, vectors and matrices, and programming. The textbook is Manning & Schütze, Foundations of Statistical Natural Language Processing (MIT Press, 1999). (Usually offered in the winter term.)
I also occasionally teach (or have taught) the following.
- Ling 210, Introduction to Linguistic Analysis
- Ling 212, Introduction to the Symbolic Analysis of Language
- Ling 315, Introduction to Syntax
- Ling 492, Seminar: Digitizing Languages - this may get turned into a regular course offering
- Ling 514, Semantics and Pragmatics
- Ling 541 - EECS 595 - SI 661, Introduction to Natural Language Processing