Функциональное программирование 22-23

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск

Функциональное программирование

Курс по выбору для студентов 3 и 4 курса ФКН ВШЭ, 1 и 2 модуль 2022 г. Функциональное программирование (ФП) представляет собой теоретически изящный, выдержавший проверку временем на практике и оказавший заметное влияние на технологии программирования вообще подход к созданию ПО. Курс посвящен основам ФП в целом и популярного языка Haskell в частности. Попутно сообщаются начальные сведения из области лямбда-исчислений, теории типов, теории категорий.

Преподаватели

Лектор и семинарист: Евгений Дашков, ТГ: @edashkov, edashkov@gmail.com.

Семинарист: Павел Соколов, ТГ: @TurtlePU.

Учебный ассистент: Олег Мкртчян, ТГ: @unwishfulthinking.

Текущая успеваемость

https://docs.google.com/spreadsheets/d/e/2PACX-1vTGKTtVAvjvCheX-dky3tB_W-GQnKunxccajwMziHquQvTDA7pqOGOZUfajFtO20dQhPkx0rurScFju/pubhtml

Листки и код для семинаров

Домашние задания

Домашние задания выдаются приблизительно раз в две недели; при выдаче каждого задания указывается срок его сдачи. Все задания письменные. Каждая задача оценивается 0, ½ или 1 баллом. Все задания в целом оцениваются числом:

ДЗ = (сумма полученных баллов за все задачи) / (количество выданных задач).

Набор задач Срок сдачи
гр. Дашкова гр. Соколова
ДЗ 1 20.09 20.09
ДЗ 2

Срок сдачи задания устанавливается семинаристом группы.

Ссылка на классрум: https://classroom.google.com/c/OTM4MjAyNzk1MTda?cjc=xbblft6

Контрольная работа

Письменная Контрольная работа проводится в начале второго модуля. Допускается использование собственных записей студента и явно разрешенных локальных справочных систем. Каждая задача оценивается 0, ½ или 1 баллом. Контрольная оцениваются числом:

КР = (сумма полученных баллов за все задачи) / (количество выданных задач).

Итоговый экзамен

Письменный экзамен проводится в конце курса. Допускается использование собственных записей студента и явно разрешенных локальных справочных систем. Каждая задача оценивается 0, ¼, ½ , ¾ или 1 баллом. Экзамен оценивается числом:

Э = (сумма полученных баллов за все задачи) / (количество выданных задач).

Индивидуальный проект

При желании студенты согласовывают с семинаристом проект для индивидуальной работы. Также допускается работа в группах до трех человек. Проект представляет собой решение достаточно сложной задачи по программированию и предполагает самостоятельное получение недостающих сведений. Проекты должны быть сданы до 15-го декабря. За проект выставляется (дробная) оценка ПР от 0 до 1 балла.

Некоторые темы для проектов

Материалы

Группа слушателей курса в ТГ

Материалы Е.В. Дашкова

Базовые ресурсы

Сайт языка

Haskell Tool Stack

Информация про Cabal

Hoogle

Hackage

Стандартная библиотека языка Haskell на Hackage

Книги и статьи

Learn You a Haskell for Great Good

Real World Haskell

Basic Simple Type Theory

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 * Э).

Округление производится к ближайшему целому, притом что полуцелые значения округляются вверх.