ФП 5SE осень 2021

Материал из CSC Wiki
Перейти к:навигация, поиск

Лекции

Преподаватель: Москвин Денис Николаевич dmoskvin@gmail.com

Пожалуйста, указывайте в теме письма FPIFMOJB.

Вопросы к экзамену

Консультация состоится 27.01.2022 в 12:00 в zoom.

Экзамен будет проходить онлайн, начнется 28.01.2022 в 10:00. Табличка для предварительной записи на конкретное время.

Слайды

Лекция 1. Лямбда-исчисление 08.09.2021 (ср) 13:30-14:50

Лекция 2. Рекурсия и редукция 09.09.2021 (чт) 15:10-16:30

Лекция 3. Просто типизированное лямбда-исчисление 22.09.2021 (ср) 13:30-14:50

Лекция 4. Введение в Haskell 23.09.2021 (чт) 15:10-16:30 (исходный код со слайдов)

Лекция 4'. Операторы, форсирование, списки Лекция виртуальная, собирается из трех ссылок: операторы и их сечения, ленивость и строгость, стандартные списки. (исходный код со слайдов)

Лекция 5. Типы данных 29.09.2021 (ср) 11:40-13:00 (исходный код со слайдов)

Лекция 6. Классы типов 29.09.2021 (ср) 13:30-14:50 (исходный код со слайдов)

Лекция 7. Свертки Лекция виртуальная, смотреть самостоятельно по ссылке. (исходный код со слайдов)

Лекция 8. Аппликативные функторы 14.10.2021 (чт) 15:10-16:30 (исходный код со слайдов)

Лекция 9. Использование аппликативных функторов 28.10.2021 (чт) 15:10-16:30 (исходный код со слайдов)

Лекция 10. Монады 02.11.2021 (вт) 12:10-13:30 (исходный код со слайдов)

Лекция 11. Стандартные монады 11.11.2021 (чт) 15:10-16:30 (исходный код со слайдов)

Лекция 12. Трансформеры монад 25.11.2021 (чт) 15:10-16:30 (исходный код со слайдов) Запись версии этой лекции для МКН СПбГУ

Лекция 14. Рекурсивные типы 09.12.2020 (чт) 15:10-16:30 (исходный код со слайдов)

Лекция 13. Алгоритм вывода типов 16.12.2021 (чт) 15:10-16:30

Дополнительные материалы

Полезные ссылки

Hoogle

Typeclassopedia

Haskell 2010 Language Report

Learn You a Haskell for Great Good!

Полезными могут оказаться конспекты лекций по теоретической и практической (новая версия) частям курса. Это расширенные версии слайдов, с дополнительными примерами и рассуждениями. (Предупреждение: они неполные и представляют собой раннюю альфу!)

Книги

Практика Жаворонков

Почта

Телега

Успеваемость

Правила

  • Первые три домашних задания сдаются в формате PDF мне на почту. Можно использовать LaTeX или Markdown(понадобится pandoc)
  • Последующие -- в курс на stepik.org. Укажите при регистрации ваши настоящие имя и фамилию. Курс доступен по ссылке-приглашению
  • Мягкий дедлайн -- если у меня возникнут замечания к решению, то можно один раз прислать исправления
  • Жесткий дедлайн -- решения присланные после него не будут проверены.

Материалы

  • Листок с пары 14.09.2021 и домашнее задание -- pdf. Мягкий дедлайн -- 19.09.2021 21:00. Жесткий дедлайн -- 21.09.2021 15:10
  • Листок с пары 21.09.2021 и домашнее задание -- pdf. Мягкий дедлайн -- 26.09.2021 21:00. Жесткий дедлайн -- 28.09.2021 15:10
  • Листок с пары 28.09.2021 и домашнее задание -- pdf. Мягкий дедлайн -- 03.10.2021 21:00. Жесткий дедлайн -- 05.10.2021 15:10
  • Код для пары 12.10.2021 -- zip
  • Код для пары 19.10.2021 -- zip
  • Код для пары 21.10.2021 -- zip
  • Код для пары 26.10.2021 -- zip
  • Код для пары 02.11.2021 -- zip
  • Код для пары 09.11.2021 -- zip
  • Код для пары 18.11.2021 -- zip
  • Код для пары 14.12.2021 -- zip

Практика Халанский

Почта

Успеваемость

Правила:

  • Отсылать решения первых трёх заданий надо мне на почту с темой [ИТМО] Имя Фамилия-Номер (Номер — номер пачки заданий).
  • Нужно закрыть все темы, кроме двух.
  • Нужно сдать курсовую на Stepik (вступить в класс тут) из двух частей:
  • У каждой темы указан её проходной балл.
  • Дополнительные задачи не идут в рейтинг успеваемости, но учитываются в количестве задач в данной теме.
  • Мягкий дедлайн — полночь с воскресенья на понедельник. Жёсткий дедлайн — начало моей пары.

Материалы

1. задание исходник; презентация исходник (тема: лямбда-исчисление).

2. задание исходник; презентация исходник (тема: рекурсия).

3. задание исходник; презентация исходник (тема: типы).

4. презентация исходник (тема: Haskell) Приглашение в github classroom: https://classroom.github.com/a/4Ql5I20F Дополнительные задачи: https://classroom.github.com/a/bOeqYI74

5. презентация исходник (тема: структуры данных) Приглашение в github classroom: https://classroom.github.com/a/okbLJjJK Дополнительные задачи: https://classroom.github.com/a/mTHZ4YUW

6. объяснение классов типов Приглашение в github classroom: https://classroom.github.com/a/GcAqQ7J1 Дополнительные задачи: https://classroom.github.com/a/OTgm038q

7. презентация исходник (тема: свёртки) Приглашение в github classroom: https://classroom.github.com/a/t4ZAIy6- Дополнительные задачи: https://classroom.github.com/a/FwChgIfA

8. презентация исходник (тема: аппликативные функторы) Приглашение в github classroom: https://classroom.github.com/a/1PuesrNq Дополнительные задачи: https://classroom.github.com/a/KgP4q2da

9. презентация исходник Парсеры и traversable. Приглашение в github classroom: https://classroom.github.com/a/-a0NKpMW Дополнительные задачи: https://classroom.github.com/a/FAHfGEZa

10. презентация исходник (тема: монады) Приглашение в github classroom: https://classroom.github.com/a/sLsucwYN Дополнительные задачи: https://classroom.github.com/a/PDLcSNQi

11. (тема: стандартные монады) Приглашение в github classroom: https://classroom.github.com/a/_iDn6NY8 Дополнительные задачи: https://classroom.github.com/a/mVUj3zDI

12. презентация исходник (тема: трансформеры монад) Приглашение в github classroom: https://classroom.github.com/a/n1W-KEam Дополнительные задачи: https://classroom.github.com/a/0_bqAWfA

13. Решайте типизатор и курсовую на Степике. Для удобства stack-проект для типизатора: https://classroom.github.com/a/iAAiRKMF Если пришлёте мне на обзор, прокомментирую стиль.

14. Задачи по рекурсивным типам, не на оценку и с ответами: https://classroom.github.com/a/y_gCAwDo