Функциональное программирование 22-23
Содержание
Функциональное программирование
Курс по выбору для студентов 3 и 4 курса ФКН ВШЭ, 1 и 2 модуль 2022 г. Функциональное программирование (ФП) представляет собой теоретически изящный, выдержавший проверку временем на практике и оказавший заметное влияние на технологии программирования вообще подход к созданию ПО. Курс посвящен основам ФП в целом и популярного языка Haskell в частности. Попутно сообщаются начальные сведения из области лямбда-исчислений, теории типов, теории категорий.
Преподаватели
Лектор и семинарист: Евгений Дашков, ТГ: @edashkov, edashkov@gmail.com.
Семинарист: Павел Соколов, ТГ: @TurtlePU.
Учебный ассистент: Олег Мкртчян, ТГ: @unwishfulthinking.
Текущая успеваемость
Листки и код для семинаров
Домашние задания
Домашние задания выдаются приблизительно раз в две недели; при выдаче каждого задания указывается срок его сдачи. Все задания письменные. Каждая задача оценивается 0, ½ или 1 баллом. Все задания в целом оцениваются числом:
ДЗ = (сумма полученных баллов за все задачи) / (количество выданных задач).
Набор задач | Срок сдачи | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
гр. Дашкова | гр. Соколова | ||||||||||
ДЗ 1 | 20.09 | 20.9 |
Срок сдачи задания устанавливается семинаристом группы.
Контрольная работа
Письменная Контрольная работа проводится в начале второго модуля. Допускается использование собственных записей студента и явно разрешенных локальных справочных систем. Каждая задача оценивается 0, ½ или 1 баллом. Контрольная оцениваются числом:
КР = (сумма полученных баллов за все задачи) / (количество выданных задач).
Итоговый экзамен
Письменный экзамен проводится в конце курса. Допускается использование собственных записей студента и явно разрешенных локальных справочных систем. Каждая задача оценивается 0, ¼, ½ , ¾ или 1 баллом. Экзамен оценивается числом:
Э = (сумма полученных баллов за все задачи) / (количество выданных задач).
Индивидуальный проект
При желании студенты согласовывают с семинаристом проект для индивидуальной работы. Также допускается работа в группах до трех человек. Проект представляет собой решение достаточно сложной задачи по программированию и предполагает самостоятельное получение недостающих сведений. Проекты должны быть сданы до 15-го декабря. За проект выставляется (дробная) оценка ПР от 0 до 1 балла.
Некоторые темы для проектов
Материалы
Базовые ресурсы
Стандартная библиотека языка Haskell на Hackage
Книги и статьи
Learn You a Haskell for Great Good
Lectures on the Curry-Howard Isomorphism
Purely Functional Data Structures.
Нет в открытом доступе
Programming in Haskell by Graham Hutton
Basic Category Theory for Computer Scientists by Benjamin C. Pierce
Оценки
Итоговая оценка получается так:
Итог = ОКРУГЛ (2 * ПР + 2 * КР + 3 * ДЗ + 3 * Э).
Округление производится к ближайшему целому, притом что полуцелые значения округляются вверх.