Программирование на языке 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.