How can you get a computer to tell grammatical and ungrammatical sentences apart? How does it know whether 'cricket' refers to the game or the insect in a sentence like "The cricket jumped over the fence"? This course is designed to introduce students with either a background in Linguistics or in the Computing Sciences to the intersection of linguistics and computing, with a focus on the question of how computational algorithms and data structures can be used as a formal model of language. Topics may include finite-state automata for phonology and morphology, context-free grammars, semantic parsing, vector space semantics, computational cognitive modelling, and computational sociolinguistics. No programming skills are required to take the course.