ФП 5SE осень 2020
Содержание
Лекции
Преподаватель: Москвин Денис Николаевич dmoskvin@gmail.com
Пожалуйста, указывайте в теме письма FPIFMOJB.
Экзамен
Экзамен состоится 20.01.2021. Начало в 10:30. Ссылка для записи на конкретное время. Пожалуйста, не опаздывайте.
Слайды
Лекция 1. Лямбда-исчисление 07.09.2020 (пн) 14:40-16:00 online
Лекция 2. Рекурсия и редукция 14.09.2020 (пн) 14:40-16:00 online
Лекция 3. Просто типизированное лямбда-исчисление 21.09.2020 (пн) 14:40-16:00 online
Лекция 4. Введение в Haskell 28.09.2020 (пн) 14:40-16:00 online (исходный код со слайдов)
Лекция 5. Типы данных 05.10.2020 (пн) 14:40-16:40 online (исходный код со слайдов)
Лекция 6. Классы типов 12.10.2020 (пн) 14:40-16:00 online (исходный код со слайдов)
Лекция 7. Свертки 19.10.2020 (пн) 14:40-16:00 online (исходный код со слайдов)
Лекция 8. Аппликативные функторы 26.10.2020 (пн) 14:40-16:00 online (исходный код со слайдов)
Лекция 9. Использование аппликативных функторов 02.11.2020 (пн) 14:40-16:00 online (исходный код со слайдов)
Лекция 10. Монады 09.11.2020 (пн) 14:40-16:00 online (исходный код со слайдов)
Лекция 11. Стандартные монады 16.11.2020 (пн) 14:40-16:00 online (исходный код со слайдов)
Лекция 12. Трансформеры монад 30.11.2020 (пн) 14:40-16:00 online (исходный код со слайдов, еще)
Лекция 13. Алгоритм вывода типов 07.11.2020 (пн) 14:40-16:00 online
Лекция 14. Рекурсивные типы 14.12.2020 (пн) 14:40-16:00 online (исходный код со слайдов)
Лекция 15. Молнии и линзы 21.12.2020 (пн) 14:40-16:00 online
Дополнительные материалы
Полезные ссылки
Learn You a Haskell for Great Good!
Полезными могут оказаться конспекты лекций по теоретической и практической частям курса. Это расширенные версии слайдов, с дополнительными примерами и рассуждениями. (Предупреждение: они неполные и представляют собой раннюю альфу!)
Книги
- What I Wish I Knew When Learning Haskell Для тех, кто уже знает Хаскелль хотя бы вплоть до монад.
Практика Жаворонков
Материалы с занятий и домашние задания:
- Семинар и домашнее задание 1 (Дедлайн(мягкий): 13.09.2020 21:00:00)
- Семинар и домашнее задание 2 (Дедлайн(мягкий): 20.09.2020 21:00:00)
- Семинар и домашнее задание 3 (Дедлайн(мягкий): 27.09.2020 21:00:00)
- Код с пары 28.09.2020
- Код с пары 05.10.2020
- Код с пары 12.10.2020
- Код с пары 19.10.2020
- Код с пары 26.10.2020
- Код с пары 02.11.2020
- Код с пары 09.11.2020
- Код с пары 16.11.2020
- Код с пары 30.11.2020
- Код для пары 14.12.2020
Правила игры и прочее
Сдача домашних заданий
- Первые три -- мне на почту. Формат -- pdf(LaTeX)
- Следующие -- в приватный курс на степике. Укажите при регистрации(если еще не) свои натсоящие имя и фамилию. Ссылка-инвайт на курс -- тык
Дедлайны
- Мягкий -- указан в строке с соответствующим заданием. Если присылаете до него -- я смотрю, отвечаю и можно один раз прислать исправления.
- Жесткий -- наступает в момент начала пары. Присылать после мягкого, но до жесткого дедлайна можно и нужно, я не снижаю баллы, но не гарантирую, что буду принимать исправления
Практика Халанский
Дедлайн — начало лекции. Обещаю отвечать в течение троих суток с момента получения письма. Для зачёта необходимо набрать указанный минимум для каждой темы, кроме, возможно, двух, а также выполнить курсовую работу (будет доступна позднее).
В рейтинг идут задачи из блока "Основные задания"; эти задачи принимаются только в срок. Задачи из блока "Дополнительные задания" принимаются совершенно когда угодно, но в рейтинге не участвуют.
1. задание исходник; презентация исходник.
2. задание исходник; презентация исходник.
3. задание исходник; презентация исходник.
4. презентация исходник. Приглашение в github classroom: https://classroom.github.com/a/7eSkgKXr Дополнительные задачи: https://classroom.github.com/a/tpNpFsFG
5. презентация исходник. Приглашение: https://classroom.github.com/a/2gjX925K Дополнительные задачи: https://classroom.github.com/a/2vQ77rii
6. конспект исходник. Приглашение: https://classroom.github.com/a/3yec3H92 Дополнительные задачи: https://classroom.github.com/a/johiBLlR Приглашение на курсовую (прошлогоднюю, чтобы не мешаться другому курсу; сроки все прошли, но ничего страшного): https://stepik.org/invitation/30abc7274253aa0825dc514cd33ef28f3e54c547/ Две половины курсовой работы по ссылкам https://stepik.org/lesson/258178/step/1?unit=238641 и https://stepik.org/lesson/258189/step/1?unit=238653. Сроков на сдачу курсовой нет, но для получения зачёта она обязательная.
7. презентация исходник. Приглашение: https://classroom.github.com/a/jfm8j7yr Дополнительные задачи: https://classroom.github.com/a/zG752tlT; разминка UPD 22.10, 23:52: добавил в разминку заметку про QuickCheck и примечание по работе с бесконечными структурами к решению первой задачи по Foldable.
8. Приглашение: https://classroom.github.com/a/pEDPowpt Дополнительные задачи: https://classroom.github.com/a/zYstmw8z
9. презентация исходник. Приглашение: https://classroom.github.com/a/tOYPqRV0 Дополнительные задачи: https://classroom.github.com/a/uyphTeFD
10. презентация исходник. Приглашение: https://classroom.github.com/a/RUYUSPL7 Дополнительные задачи: https://classroom.github.com/a/cJ0S0mBa
11. Приглашение: https://classroom.github.com/a/N2dnHRur Дополнительные задачи: https://classroom.github.com/a/xzWOjyZH
12. презентация исходник. Приглашение: https://classroom.github.com/a/mInkw7Ir Дополнительные задачи: https://classroom.github.com/a/F-Y2GxZn
13. Вторая половина курсовой (она же домашнее задание на неделю): https://stepik.org/lesson/258189/step/1?unit=238653 Сроков нет, досылать можно и потом, но баллы, полученные до следующего занятия, пойдут в рейтинг. Для удобства есть stack-проект с кодом и публичными тестами со Степика: https://classroom.github.com/a/g0IaZ4S4
14. Решите модуль на Степике: https://stepik.org/lesson/258190/step/1?unit=238654 Дополнительные задачи: https://classroom.github.com/a/OFd23Mqx