Курс знакомит слушателей с функциональным подходом к программированию, все более набирающим силу в последнее время (наблюдается взрывной рост популярности языков Erlang, Scala, F#). Ключевые свойства этого подхода - борьба со сложностью программ через использование мощных механизмов абстракции и акцент на важность математических свойств программ. Курс в значительной мере основан на знаменитейшем курсе и книге Структура и интерпретация компьютерных программ
из MIT, однако адаптирован под ряд особенностей современного программирования и профессиональную подготовку слушателей: обсуждаемые идеи иллюстрируются как в чистом
виде, так и в контексте типичных повседневных задач. В курсе рассматриваются следующие наиболее важные идеи из мира функционального программирования: лямбда-исчисление, рекурсивные и итеративные процессы, функции высшего порядка и замыкания, абстрактные типы данных, свёртки (данная тема особенно важна в контексте параллельного и распределенного программирования), мини-языки, модель окружений, а также дается введение в системы типов.
Страница курса и лекции с прошлого года: http://spbhug.folding-maps.org/wiki/SICP_Course.
Дата и время | Занятие | Место | Материалы |
---|---|---|---|
12 сентября 11:15–12:50 |
Основы лямбда-исчисления, Лекция | ПОМИ РАН | Нет |
12 сентября 13:00–14:35 |
Язык Scheme. Рекурсия и хвостовые вызовы., Лекция | ПОМИ РАН | видео |
19 сентября 15:35–17:05 |
Функции высшего порядка и замыкания, Лекция | ПОМИ РАН | видео |
10 октября 15:35–17:05 |
Абстракция данных, Лекция | ПОМИ РАН | видео |
24 октября 15:35–17:05 |
Свертки, Лекция | ПОМИ РАН | видео |
31 октября 15:35–17:05 |
Моноиды, векторный параллелизм, MapReduce, Лекция | ПОМИ РАН | видео |
05 декабря 11:15–12:50 |
DSL: Упрощалка выражений, Лекция | ПОМИ РАН | видео |
05 декабря 13:00–14:35 |
Изменяемое состояние и модель окружений, Лекция | ПОМИ РАН | видео |
19 декабря 15:35–17:10 |
Системы типов (начало), Лекция | ПОМИ РАН | видео |