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: http://spbhug.folding-maps.org/wiki/SICP_Course
Date and time | Class|Name | Venue|short | Materials |
---|---|---|---|
12 September 11:15–12:50 |
Основы лямбда-исчисления, Lecture | ПОМИ РАН | No |
12 September 13:00–14:35 |
Язык Scheme. Рекурсия и хвостовые вызовы., Lecture | ПОМИ РАН | video |
19 September 15:35–17:05 |
Функции высшего порядка и замыкания, Lecture | ПОМИ РАН | video |
10 October 15:35–17:05 |
Абстракция данных, Lecture | ПОМИ РАН | video |
24 October 15:35–17:05 |
Свертки, Lecture | ПОМИ РАН | video |
31 October 15:35–17:05 |
Моноиды, векторный параллелизм, MapReduce, Lecture | ПОМИ РАН | video |
05 December 11:15–12:50 |
DSL: Упрощалка выражений, Lecture | ПОМИ РАН | video |
05 December 13:00–14:35 |
Изменяемое состояние и модель окружений, Lecture | ПОМИ РАН | video |
19 December 15:35–17:10 |
Системы типов (начало), Lecture | ПОМИ РАН | video |