What is the difference between Mathematics of Language and Language and Computation?

Mathematics of Language focuses on the mathematical underpinnings of linguistic theory and the cognitive science of language, including set theory, algebra, formal languages and theory of computation. In doing this, the course also attempts to teach a bit of what is sometimes called “mathematical maturity”: the ability to work with and define formal objects and to understand their properties through the construction of proofs.

Language and Computation, on the other hand, deals with computational techniques that are used for language processing by computers and modeling of language learning and processing. Some of these techniques are based on the mathematical objects that are studied in Mathematics of Language (e.g., finite state automata and context free grammars). However, the focus in Language and Computation is on algorithms and implementation.

The work you will be asked to do in the two courses will also be quite different. In Mathematics of Language, you will be doing problem sets, which will require you to formalize and/or prove things about mathematical structures, as well as apply these structures to linguistic problems. In Language and Computation, on the other hand, you will be doing implementations (in Python) of different techniques for spelling correction, phonological modeling, syntactic parsing, etc.