This course is designed for beginning students of computational linguistics. Its main focus is the introduction of NLP algorithms and programming strategies in the Lisp dialect called Scheme, using functional and object oriented programming paradigms.

The class is taught in a computer pool with existing installations of Racket and DrRacket.

The introduction to Scheme and the development environment is accompanied by concrete examples and implementations, covering Finite State methods, Context-free grammars and parsers, as well as statistical methods based on n-gram models, using classical probability theory, information theory, and algorithmic probability.

The students will be able to work with DrScheme and develop own scripts and tools, as well as understand basic concepts of probabilistic and symbolic approaches to NLP, to translate abstract formulations of algorithms and mathematical formula into concrete code examples.

The instructor will provide all course materials and documented code examples, as well as exercises.