Программирование на языке Haskell
Материалы для семинаров по Haskell (ВМК МГУ АЯ 3 курс, гр. 324, 325).
В рамках этого курса вы познакомитесь с основами языка Haskell и научитесь создавать полноценные функциональные приложения!
Таблица с результатами работы на семинарах
Материалы курса
Данный курс состоит из видео-лекций, семинаров и семестрового практического задания.
Лекции
Все лекции доступны для просмотра на YouTube:
- Функции высшего порядка.
- Свойства полиморфных функций.
- Ленивые вычисления.
- Функции над списками. Свёртки.
- Алгебраические типы данных.
- Классы типов.
- Функторы.
- Моноиды.
- Моноидная свёртка.
- Аппликативные функторы.
Семинары
Семинарские занятия проходят по четвергам в 9:30 дистанционно на сервере Discord (приглашение можно получить, связавшись с преподавателем).
В конце марта - начале апреля проводится письменная контрольная работа (по возможности очно). Написанная на положительную оценку контрольная работа является необходимым условием для получения зачёта. В конце семестра будет возможность переписать/написать КР для тех, кто по той или иной причине не справился с этим с первого раза.
Практическое задание
Сроки этапов сдачи практического задания на Haskell:
- Базовая часть:
- 24 февраля: выбор варианта и постановка задачи;
- 10-17 марта: основные типы и функции (только сигнатуры);
- 24 марта: реализация основных функций;
- 7 апреля: рабочее приложение;
- 14 апреля: отчёт (только для тех, кто выполнял задание индивидуально).
- Индивидуальная часть (только для тех, кто выполнял задание в команде):
- 14 апреля: основные типы и функции;
- 21 апреля: рабочее приложение;
- 28 апреля: отчёт (должно входить описание как базовой, так и индивидуальных частей).
Подробная информация доступна на странице практических заданий.
Обратите особое внимание на список "красных флагов" - фатальных недостатков в коде, при нахождении которых преподаватель категорически не будет продолжать смотреть вашу программу до устранения этих недостатков.
Оценка
Оценка по практикуму зависит от набранного за семестр суммарного количества баллов. Баллы начисляются за:
- работу в семестре на семинарах;
- контрольную работу в середине семестра;
- выполнение практического задания на Haskell.
Все результаты будут внесены в таблицу.
Haskell Platform
Для работы с Haskell в этом семестре рекомендуется установить Haskell Platform с официального сайта языка. На сайте есть инструкции по установке для каждой платформы (Linux, macOS, Windows). Haskell Platform содержит следующие инструменты:
- компилятор GHC;
- система сборки Cabal;
- утилита Stack для разработки проектов;
- стандартные и часто используемые библиотеки.
Дополнительные материалы
Ниже приведены несколько источников знаний о Haskell, которые рекомендуется прочитать, если интересно узнать больше, недостаточно информации для выполнения практического задания или что-то осталось непонятным после семинаров:
- Пишите лично преподавателю (особенно по вопросам, непосредственно касающимся данного курса и выполнения практического задания)!
- Словарь сленга функционального программирования.
- Learn You a Haskell — это позитивно и понятно изложенный материал, начиная с самых основ и заканчивая введением в интересные вещи.
- Haskell Wikibook — нечто среднее между справочником и туториалом по языку Haskell. В книге содержатся статьи по базовым и продвинутым темам, включая структуры данных, теорию типов и статьи о производительности программ на Haskell.
- Learn Haskell in Y minutes — минимум информации в максимально сжатом формате.
- ruHaskell.org — сайт русскоязычного сообщества Haskell.
- О Haskell по-человечески — русскоязычная книга по основам Haskell, написанная очень доступным языком.
- GitHowTo — интерактивный курс по работе с системой контроля версий Git.