This course introduces techniques and concepts involved in analysing and generating human languages by machine, as well as various practical applications to which this technology is nowadays being harnessed. Topics covered on the course will include both fundamental representational issues and processing techniques (e.g., finite state methods, statistical methods, lexical representation, grammars and parsing) as well as problems and application areas (e.g., corpus-based resources and processing, machine translation, text generation, database interfaces).
The course assumes a familiarity with basic computing concepts, some knowledge of Unix, and the ability to program in at least one high-level language (e.g., Prolog). Prior knowledge of linguistics is not required, though some understanding of the rudiments of English grammar will come in handy.

