Функциональное программирование 2MIT осень 2020 — различия между версиями

Материал из CSC Wiki
Перейти к:навигация, поиск
(Сдача домашних заданий)
Строка 223: Строка 223:
  
 
* Первые три -- мне на почту. Формат -- pdf(LaTeX)
 
* Первые три -- мне на почту. Формат -- pdf(LaTeX)
* TBD
+
* Следующие -- в приватный курс на степике. Если не зарегистрированы, то зарегистрируйтесь и укажите свои настоящие инициалы. Ссылка-инвайт на курс --[https://stepik.org/invitation/1c9d27b77853f159f646b12bb343a3415002d7a2/ тык]
  
 
==== Дедлайны ====
 
==== Дедлайны ====

Версия 11:58, 28 сентября 2020

Лекции

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

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


Слайды

Лекция 1. Лямбда-исчисление 04.09.2020 (пт) 9:30-10:50 online

Лекция 2. Рекурсия и редукция 11.09.2020 (пт) 9:30-10:50 online

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

Лекция 4. Введение в Haskell 25.09.2020 (пт) 9:30-10:50 online (исходный код со слайдов)

Лекция 5. Типы данных 02.10.2020 (пт) 8:50-10:50 online

Лекция 6. Классы типов 09.10.2020 (пт) 9:30-10:50 online

Лекция 7. Свертки 16.10.2020 (пт) 9:30-10:50 online

Лекция 8. Аппликативные функторы 23.10.2020 (пт) 9:30-10:50 online

Лекция 9. Использование аппликативных функторов 30.10.2020 (пт) 9:30-10:50 online

Лекция 10. Монады 06.11.2020 (пт) 9:30-10:50 online

Лекция 11. Стандартные монады 13.11.2020 (пт) 9:30-10:50 online

Лекция 12. Трансформеры монад 20.11.2020 (пт) 9:30-10:50 online

Лекция 13. Алгоритм вывода типов 27.11.2020 (пт) 9:30-10:50 online

Лекция 14. Рекурсивные типы 04.12.2020 (пт) 9:30-10:50 online

Лекция 15. Молнии и линзы 11.12.2020 (пт) 9:30-10:50 online

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

Hoogle

Typeclassopedia

Haskell 2010 Language Report

Learn You a Haskell for Great Good!

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

Практика Москвин

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

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

Текущая успеваемость

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

Проценты переводятся в баллы следующей функцией

score :: Int -> Int
score proc
 | proc < 58 = 0
 | proc > 98 = 10
 | otherwise = ( proc - 58) `div` 4


Haskell: рекомендации по установке

Для установки Haskell под Linux и Mac удобнее всего использовать утилиту ghcup.

Для установки под Windows я в настоящий момент рекомендую скачать и запустить установщик Haskell Platform 8.6.5. Хотя эта версия годичной давности, для наших учебных целей она вполне подойдет.


Домашние задания на stepik.org

Для выполнения домашних заданий по Haskell следует:

Если вы ранее не обучались на Stepik, зарегистрироваться тут. Настоятельная просьба - указать идентификационные данные, позволяющие опознавать вас без сложных исследований.

Перейти по ссылке-приглашению на курс: ссылка только группы 1 (практические занятия ведет Москвин).

Модули с текущим домашним заданием будут становиться доступными по мере прохождения курса, дедлайны будут видны там же.

Отметим, что проверяющая система на Stepik использует GHC 8.0.2. Не пользуйтесь, пожалуйста, при сдаче домашних заданий более новыми расширениями языка и библиотек.


Материалы

Практика 1. Чистое лямбда-исчисление как язык программирования 07.09.2020 (пн) 14:40-16:00 online

ДЗ 1. Исходник в TeX (предпочтительный формат сдаваемого ДЗ - pdf)

Мягкий дедлайн 13.09.2020 22:00. При наличии ошибок можно 1 раз переделать до жесткого дедлайна.

Жесткий дедлайн 14.09.2020 14:40. Решения, присланные после этого срока, не проверяются.


Практика 2. Рекурсия и редукция 14.09.2020 (пн) 18:10-19:30 online

ДЗ 2. Исходник в TeX (предпочтительный формат сдаваемого ДЗ - pdf)

Мягкий дедлайн 20.09.2020 22:00. При наличии ошибок можно 1 раз переделать до жесткого дедлайна.

Жесткий дедлайн 21.09.2020 18:10. Решения, присланные после этого срока, не проверяются.


Практика 3. Просто типизированное лямбда-исчисление 21.09.2020 (пн) 18:10-19:30

ДЗ 3. Исходник в TeX (предпочтительный формат сдаваемого ДЗ - pdf)

Мягкий дедлайн 27.09.2020 22:00. При наличии ошибок можно 1 раз переделать до жесткого дедлайна.

Жесткий дедлайн 28.09.2020 18:10. Решения, присланные после этого срока, не проверяются.


Практика 4. Введение в Haskell 28.09.2020 (пн) 18:10-19:30

Практика 5. Программирование на Haskell 05.10.2020 (пн) 18:10-19:30

Практика 6. Классы типов 12.10.2020 (пн) 14:40-16:00

Практика 7. Полугруппы, моноиды, свертки 19.10.2020 (пн) 18:10-19:30

Практика 8. Аппликативные функторы 26.10.2020 (пн) 18:10-19:30

Практика 9. Траверсы, парсеры, моноидальные функторы 02.11.2020 (пн) 18:10-19:30

Практика 10. Монады 09.11.2020 (пн) 18:10-19:30

Практика 11. Стандартные монады 16.11.2020 (пн) 18:10-19:30

Практика 12. Трансформеры монад 23.11.2020 (пн) 18:10-19:30

Практика 13. Алгоритм вывода типов 30.11.2020 (пн) 18:10-19:30

Практика 14. Рекурсивные типы 07.12.2020 (пн) 18:10-19:30

Практика 15. Молнии и линзы исходник для практики 14.12.2020 (пн) 18:10-19:30

Практика 16. Тестирование 21.12.2020 (пн) 18:10-19:30

Практика Кайсин

Кайсин Илья Сергеевич @dmrkk, demarkok@gmail.com

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

Инструкция по сдаче

Для первых трёх заданий:

  1. Заполните (??) в файле с заданием
  2. Отправьте на demarkok@gmail.com с темой hw01/hw02/hw03
  3. Основная часть простая, поэтому если с чем-то трудности, обязательно пишите на @dmrkk
  4. Звёздочки - это сложность
  5. Исправлять до мягкого дедлайна можно несколько раз

Практики и задания

  1. Практика 1, Домашнее задание 1 (Жесткий дедлайн 14.09.2020 14:40, Мягкий дедлайн 13.09.2020 14:40)
  2. Практика 2, Домашнее задание 2 (Жёсткий дедлайн 21.09.2020 14:40, Мягкий дедлайн 20.09.2020 14:40)
  3. Практика как у первой группы, Домашнее задание 2 (Жёсткий дедлайн 28.09.2020 14:40, Мягкий дедлайн 27.09.2020 23:00)

Практика Алфёров

Почта для домашек: vasily.v.alferov@gmail.com

Телега для телег: @vasiliyalferov

Результаты

Правила игры

  • Оценка определяется отношением числа набранных баллов к сумме баллов за обязательные задачи.
  • В конце семестра я выберу число a между 0.5 и 0.65.
    • Студент с указанным отношением, меньшим a, получает оценку 0.
    • Доля баллов a соответствует оценке 0, доля баллов 1 соответствует оценке 10, между ними оценка мапится линейно.
    • Округление — вниз.
    • 0.58 — хорошее начальное приближение числа a.
  • Оценка за практику не является блокирующей.

Материалы

  • Практика 07.09 (лямбда-исчисление).
    • Задачи: как в первой группе.
    • ДЗ — задачи с последней страницы документа с практики.
    • Мягкий дедлайн: 13.09 22:00, жёсткий дедлайн: 14.09 14:40.
    • Обещанный разбор задач про числа Чёрча: тык.
  • Пратика 14.09 (рекурсия).
    • Задачи: как в первой группе.
    • ДЗ: тык.
    • Исходник ДЗ (TeX): тык (необязательный, но пусть будет).
    • Мягкий дедлайн: 20.09 22:00, жёсткий дедлайн: 21.09 14:40.
  • Практика 21.09 (просто типизированное лямбда-исчисление)
    • Задачи: как в первой группе.
    • ДЗ: тык.
    • Исходник ДЗ (TeX): тык (необязательный, но пусть будет).
    • Мягкий дедлайн: 27.09 22:00, жёсткий дедлайн: 28.09 14:40.

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

Почта

Телега

Таблица с успеваемостью

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

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

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

  • Первые три -- мне на почту. Формат -- pdf(LaTeX)
  • Следующие -- в приватный курс на степике. Если не зарегистрированы, то зарегистрируйтесь и укажите свои настоящие инициалы. Ссылка-инвайт на курс --тык

Дедлайны

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