ФП 5SE осень 2019 — различия между версиями

Материал из CSC Wiki
Перейти к:навигация, поиск
(Материалы)
(Материалы с занятий и домашние задания:)
Строка 120: Строка 120:
 
* [[Медиа:fp5-sem10.zip|Код с пары 20.11.2019 ]]
 
* [[Медиа:fp5-sem10.zip|Код с пары 20.11.2019 ]]
 
* [[Медиа:fp5-sem11.zip|Код с пары 27.11.2019 ]]
 
* [[Медиа:fp5-sem11.zip|Код с пары 27.11.2019 ]]
 +
* [[Медиа:fp5-sem12.zip|Код с пары 04.12.2019 ]]
  
 
=== Правила игры и прочее ===
 
=== Правила игры и прочее ===

Версия 14:07, 4 декабря 2019

Лекции

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

Слайды

Лекция 1. Лямбда-исчисление 04.09.2019 (ср)

Лекция 2. Рекурсия и редукция 11.09.2019 (ср)

Лекция 3. Просто типизированное лямбда-исчисление 18.09.2019 (ср)

Лекция 4. Введение в Haskell 25.09.2019 (ср)

Лекция 5. Программирование на Haskell 02.10.2019 (ср)

Лекции 5a. Программирование на Haskell (2) 09.10.2019 (ср)

Лекция 6. Классы типов 16.10.2019 (ср)

Лекция 7. Свертки 23.10.2019 (ср)

Лекция 8. Аппликативные функторы 06.11.2019 (ср)

Лекция 9. Использование аппликативных функторов 13.11.2019 (ср)

Лекция 10. Монады 20.11.2019 (ср)

Лекция 11. Стандартные монады 27.11.2019 (ср)

Лекция 12. Трансформеры монад 04.12.2019 (ср)

Лекция 13. Алгоритм вывода типов 11.12.2019 (ср)

Лекция 14. Рекурсивные типы 18.12.2019 (ср)

Лекция 15. Молнии и линзы 25.12.2019 (ср)

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

Hoogle

Typeclassopedia

Haskell 2010 Language Report

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

Преподаватель Халанский Дмитрий

d.khalansky+fp2019@gmail.com (не пропускайте +fp2019, а то бот может положить письмо не туда) Не стесняйтесь писать с вопросами, замечаниями и пожеланиями, особенно если ощущаете, что застряли!

  • Задания разбираются через неделю, если не сказано обратное.
  • Я должен ответить в течение троих суток с момента, как увидел решения, так что имеет смысл что-то прислать, даже если готово ещё мало.

Домашние задания можно отправлять мне на почту с темой письма вида "Фамилия-НомерЗадания"; иначе, можно завести репозиторий на Gitlab, открыть мне (https://gitlab.com/d.khalansky) доступ и слать мне запрос на проверку pull request-ов.

Баллы

  • Каждая задача оценивается как максимум в один балл. Особо выдающиеся решения могут получать больше, но это редкость.
  • Можно получить дробный балл.
  • Для каждой темы назначается порог баллов, который нужно пройти.
  • Для зачёта необходимо и достаточно получить зачёт по всем темам, кроме любой одной, а также выполнить курсовую работу.
  • Баллы за одну тему не переходят в другую тему, так что если порог пройден, посылать новые задачи имеет смысл только ради рейтинга.
  • Каждая дополнительная задача также оценивается в один балл.
  • На дополнительные задачи нет сроков.
  • Дополнительные задачи не учитываются при расчёте рейтинга, с их помощью можно только дозакрывать темы.

Материалы

Курсовая: нужно на курсе Эдгара на Степике пройти модуль https://stepik.org/lesson/258178 и, когда появится, модуль https://stepik.org/lesson/258189. Приглашение на курс ниже, в разделе Эдгара. После решения задач можно сообщить мне, чтобы я их проверил, но я и так буду периодически смотреть, кто решил.

дополнительные задачи исходник

1. задание исходник; конспект исходник

2. задание исходник; конспект исходник

3. задание исходник; конспект исходник

4. задание исходник; конспект исходник

5. задание исходник; конспект исходник

6. задание исходник; конспект исходник Долго пытался придумать хорошую разминку, но в результате понял, что перепечатываю https://wiki.haskell.org/Foldr_Foldl_Foldl' . Если возникнут проблемы с домашним заданием, почитайте эту страницу, там очень подробно расписано, как происходят вычисления. Ещё попробуйте в интерпретаторе вызвать команду `:set +s` и после этого попроизводить разные вычисления функций: тогда ghci будет сообщать, сколько памяти было запрошено (хотя и не обязательно использовано) и сколько времени ушло на каждую команду; это поможет проверить свои догадки насчёт производительности.

7. задание исходник; конспект исходник; разминка

8. задание исходник; конспект исходник (разминка внутри задания). Для зачёта нужно решить пять задач, хотя бы одно из которых на свёртки и хотя бы одно — на развёртки.

9. задание исходник; конспект исходник (тут ещё пара слов про интуицию под Traversable, которые я когда-то из себя выжал)

10. задание исходник; см. конспект прошлой темы

11. задание исходник; конспект исходник. Важно: добавлена информация про курсовую.

12. задание исходник

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

Преподаватель Жаворонков Эдгар

Табличка с результатами

Контакты:

Материалы с занятий и домашние задания:

Правила игры и прочее

Сдача домашних заданий

  • Первые три -- мне на почту. Формат -- pdf(LaTeX)
  • Следующие -- сдаются в приватный курс на Степике. Укажите при регистрации свои настоящие имя и фамилию. Для зачисления на курс необходимо перейти по ссылке-приглашению

Дедлайны

  • Мягкий -- указан в строке с соответствующим заданием. Если присылаете до него -- я смотрю, отвечаю и можно прислать исправления.
  • Жесткий -- наступает в момент начала пары. Присылать до него можно и нужно, я не снижаю баллы, но не гарантирую, что буду принимать исправления

Зачет

TBD