City: Saint Petersburg Novosibirsk Kazan Language: Русский English

Functional programming
Saint Petersburg / autumn 2010, посмотреть все семестры

Enroll in the course to get notifications and to be able to submit home assignments.
Register to enroll now Login

The course is dedicated to the functional approach to programming, which has lately been gaining popularity (take, for example, such languages as Erlang, Scala, F#). The key properties of this approach are: fighting complexity through use of powerful abstraction mechanisms and an accent on the importance of mathematical properties of programs. The course is largely based on the famous MIT course and book Structure and interpretation of computer programs but is modified to fit a number of traits of modern programming and the listeners' skills: the ideas under consideration are illustrated both in their pure form and in the context of daily programming tasks. The course considers the following key components of functional programming: lambda calculus, recursive and iterative processes, higher-order functions and closures, abstract data types, folds (an especially important topic in the context of parallel and distributed programming), domain-specific languages, the environment model, and also an introduction to type systems is given.

Course homepage and lectures from the spring semester of 2009: