ФП 5SE осень 2017 — различия между версиями
Anstreth (обсуждение | вклад) (Добавил ссылку на книжку Введение в функциональное программирование) |
(→Материалы с занятий и домашние задания:) |
||
(не показано 26 промежуточных версий 4 участников) | |||
Строка 16: | Строка 16: | ||
> stack build</nowiki> | > stack build</nowiki> | ||
Здесь classwork – название проекта (и, как следствие, папки с проектом), а simple – template, по которому сгенерировать проект (по умолчанию используется другой, где проект разбивается на приложение, библиотеку и тесты; нам это сейчас не нужно) | Здесь classwork – название проекта (и, как следствие, папки с проектом), а simple – template, по которому сгенерировать проект (по умолчанию используется другой, где проект разбивается на приложение, библиотеку и тесты; нам это сейчас не нужно) | ||
+ | |||
+ | Дока с планами всех практик: https://docs.google.com/document/d/10oe6QO28qXiBBOdsYEc2Qu6hSBOaSwQrT2AMyLePwvk/edit?usp=sharing | ||
+ | |||
+ | ===Код с пар=== | ||
+ | # 11.10.2017: https://gist.github.com/projedi/490e8c76db5cd09c7838e4c62fa6eefc | ||
+ | # 18.10.2017: https://gist.github.com/projedi/36ef298f9a457cac5ecce3d9b46110d4 | ||
+ | # 8.11.2017: https://gist.github.com/projedi/f436148804bbf8f3891b5d73239502a9 | ||
+ | # 15.11.2017: https://gist.github.com/projedi/e78d1ab7de3904ad0f417de189c11b0c | ||
+ | # 22.11.2017: https://gist.github.com/projedi/0cdb8d6f2af6854192037769cdee644d | ||
+ | # 29.11.2017: https://gist.github.com/projedi/8320e35887c95b06f729cabe9eaedc46 | ||
+ | # 13.12.2017: https://gist.github.com/projedi/36f57d713a76fcfe386fb390fb1b6b85 | ||
+ | # 20.12.2017: https://gist.github.com/projedi/50a00d08d0f9805a3b394d227f9b3b2b | ||
===Домашние задания=== | ===Домашние задания=== | ||
Строка 24: | Строка 36: | ||
# https://yadi.sk/i/lrZGFUjT3N4vts дедлайн: 29.09.2017 | # https://yadi.sk/i/lrZGFUjT3N4vts дедлайн: 29.09.2017 | ||
# https://stepik.org/lesson/57527/step/1?unit=35283 дедлайн: 6.10.2017 | # https://stepik.org/lesson/57527/step/1?unit=35283 дедлайн: 6.10.2017 | ||
+ | # https://stepik.org/lesson/57528/step/1?unit=35284 дедлайн: 13.10.2017 | ||
+ | # https://stepik.org/lesson/57530/step/1?unit=35286 дедлайн: 20.10.2017 | ||
== Практика Жаворонков == | == Практика Жаворонков == | ||
Строка 38: | Строка 52: | ||
* [[Медиа:Sem02.pdf|Семинар и домашнее задание 2]] ('''Дедлайн(мягкий): 19.09.2017 23:59''') | * [[Медиа:Sem02.pdf|Семинар и домашнее задание 2]] ('''Дедлайн(мягкий): 19.09.2017 23:59''') | ||
* [[Медиа:Sem03.pdf|Семинар и домашнее задание 3]] ('''Дедлайн(мягкий): 26.09.2017 23:59''') | * [[Медиа:Sem03.pdf|Семинар и домашнее задание 3]] ('''Дедлайн(мягкий): 26.09.2017 23:59''') | ||
+ | * Код с пары 27.09 куда-то потерялся | ||
+ | * [[Медиа:Sem05.zip|Код с пары 04.10]] | ||
+ | * [[Медиа:Sem06.zip|Код с пары 11.10]] | ||
+ | * [[Медиа:Sem07.zip|Код с пары 18.10]] | ||
+ | * [[Медиа:Sem08.zip|Код с пары 25.10]] | ||
+ | * [[Медиа:Sem09.zip|Код с пары 8.11]] | ||
+ | * [[Медиа:Sem10.zip|Код с пары 15.11]] | ||
+ | * [[Медиа:Sem11.zip|Код с пары 22.11]] | ||
+ | * [[Медиа:Sem12.zip|Код с пары 29.11]] | ||
+ | * [[Медиа:Sem13.zip|Код с пары 6.12 -- заготовка]] | ||
+ | * [[Медиа:Sem14.zip|Код с пары 13.12]] | ||
+ | * [[Медиа:Sem15.zip|Код с пары 20.12]] | ||
=== Правила игры и прочее === | === Правила игры и прочее === | ||
Строка 44: | Строка 70: | ||
Первые три домашних задания сдаются мне на почту. Формат, в котором вы присылаете ваши решения не очень принципиален, однако предпочтение отдается чему-то адекватному, например pdf или Markdown(plain text в целом тоже котируется, а вот ссылку на картинку, лежащую где-нибудь на depositfiles присылать лучше не стоит). | Первые три домашних задания сдаются мне на почту. Формат, в котором вы присылаете ваши решения не очень принципиален, однако предпочтение отдается чему-то адекватному, например pdf или Markdown(plain text в целом тоже котируется, а вот ссылку на картинку, лежащую где-нибудь на depositfiles присылать лучше не стоит). | ||
− | Начиная с четвертого домашнего задания вы будете писать код на хаскеле и | + | Начиная с четвертого домашнего задания вы будете писать код на хаскеле и домашние задания будут сдаваться в приватный курс на степике. Там они будут проверяться тестирующей системой и я смогу смотреть ваши посылки. По мере прочтения лекций в курсе будут открываться новые модули с задачами. Модуль открывается сразу после пары и закрывается в начале следующей. |
==== Дедлайны ==== | ==== Дедлайны ==== | ||
Строка 54: | Строка 80: | ||
Что бы допуститься до экзамена вам сперва необходимо получить зачет по практике. Для этого вам нужно сделать несколько вещей: | Что бы допуститься до экзамена вам сперва необходимо получить зачет по практике. Для этого вам нужно сделать несколько вещей: | ||
* Сдать все теоретические домашние задания(ими считаются первые три) | * Сдать все теоретические домашние задания(ими считаются первые три) | ||
− | * Получить не менее | + | * Получить не менее 75% от суммы баллов за теоретические и практические домашние задания без учета дополнительных заданий |
* Сдать алгоритм вывода типов(ближе к концу семестра) | * Сдать алгоритм вывода типов(ближе к концу семестра) | ||
Строка 60: | Строка 86: | ||
== Дополнительные материалы == | == Дополнительные материалы == | ||
− | Небольшая запись с объяснением Numeric Typeclasses и их красивой диаграммой | + | === Полезные ссылки === |
− | + | * [https://gist.github.com/CMCDragonkai/fab0980b3325e8a788c9 Небольшая запись с объяснением Numeric Typeclasses и их красивой диаграммой.] | |
− | + | * [http://dev.stephendiehl.com/editor_talk.html Configure your ghci] | |
+ | * [https://habrahabr.ru/post/183150/ Функторы, аппликативные функторы и монады на пальцах] | ||
+ | === Книги === | ||
− | + | * [http://www.nsu.ru/xmlui/bitstream/handle/nsu/8874/Harrison.pdf Введение в функциональное программирование, John Harrison] | |
− | [http:// | + | * [http://inis.jinr.ru/sl/vol2/Mathematics/%D0%9C%D0%B0%D1%82.%D0%BB%D0%BE%D0%B3%D0%B8%D0%BA%D0%B0/%D0%91%D0%B0%D1%80%D0%B5%D0%BD%D0%B4%D1%80%D0%B5%D0%B3%D1%82,_%D0%9B%D0%B0%D0%BC%D0%B1%D0%B4%D0%B0-%D0%B8%D1%81%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5,1985.pdf Ламбда-исчисление, Барендрегт] |
Текущая версия на 13:03, 21 декабря 2017
Содержание
Лекции
Преподаватель: Москвин Д. Н.
Практика Шабалин
- Электропочта: shabalyn.a@gmail.com
- Telegram: https://t.me/ashabalin
Начиная с 4-го занятия потребуются компьютеры. На них нужно поставить stack: https://docs.haskellstack.org/en/stable/README/#how-to-install
Еще желательно заранее создать рабочую папку с проектом (чтобы stack автоматом скачал необходимые библиотеки и компилятор):
> stack new classwork simple > cd classwork > stack setup > stack build
Здесь classwork – название проекта (и, как следствие, папки с проектом), а simple – template, по которому сгенерировать проект (по умолчанию используется другой, где проект разбивается на приложение, библиотеку и тесты; нам это сейчас не нужно)
Дока с планами всех практик: https://docs.google.com/document/d/10oe6QO28qXiBBOdsYEc2Qu6hSBOaSwQrT2AMyLePwvk/edit?usp=sharing
Код с пар
- 11.10.2017: https://gist.github.com/projedi/490e8c76db5cd09c7838e4c62fa6eefc
- 18.10.2017: https://gist.github.com/projedi/36ef298f9a457cac5ecce3d9b46110d4
- 8.11.2017: https://gist.github.com/projedi/f436148804bbf8f3891b5d73239502a9
- 15.11.2017: https://gist.github.com/projedi/e78d1ab7de3904ad0f417de189c11b0c
- 22.11.2017: https://gist.github.com/projedi/0cdb8d6f2af6854192037769cdee644d
- 29.11.2017: https://gist.github.com/projedi/8320e35887c95b06f729cabe9eaedc46
- 13.12.2017: https://gist.github.com/projedi/36f57d713a76fcfe386fb390fb1b6b85
- 20.12.2017: https://gist.github.com/projedi/50a00d08d0f9805a3b394d227f9b3b2b
Домашние задания
Табличка с результатами: https://docs.google.com/spreadsheets/d/1qnKuNN3FTIZqInoWOL0i02NeEv3mT4XwPp8_HUMsDes/edit?usp=sharing Инвайт на курс в степике: https://stepik.org/invitation/01319ce7dc3fe58dc06457cf4ed7c029beacd70e/
- https://yadi.sk/i/ocg7lzsF3Mjmap дедлайн: 15.09.2017
- https://yadi.sk/i/YGMNMCES3Mr3Bc дедлайн: 22.09.2017
- https://yadi.sk/i/lrZGFUjT3N4vts дедлайн: 29.09.2017
- https://stepik.org/lesson/57527/step/1?unit=35283 дедлайн: 6.10.2017
- https://stepik.org/lesson/57528/step/1?unit=35284 дедлайн: 13.10.2017
- https://stepik.org/lesson/57530/step/1?unit=35286 дедлайн: 20.10.2017
Практика Жаворонков
Контакты:
Материалы с занятий и домашние задания:
- Семинар и домашнее задание 1 (Дедлайн(мягкий): 12.09.2017 23:59)
- Семинар и домашнее задание 2 (Дедлайн(мягкий): 19.09.2017 23:59)
- Семинар и домашнее задание 3 (Дедлайн(мягкий): 26.09.2017 23:59)
- Код с пары 27.09 куда-то потерялся
- Код с пары 04.10
- Код с пары 11.10
- Код с пары 18.10
- Код с пары 25.10
- Код с пары 8.11
- Код с пары 15.11
- Код с пары 22.11
- Код с пары 29.11
- Код с пары 6.12 -- заготовка
- Код с пары 13.12
- Код с пары 20.12
Правила игры и прочее
Сдача домашних заданий
Первые три домашних задания сдаются мне на почту. Формат, в котором вы присылаете ваши решения не очень принципиален, однако предпочтение отдается чему-то адекватному, например pdf или Markdown(plain text в целом тоже котируется, а вот ссылку на картинку, лежащую где-нибудь на depositfiles присылать лучше не стоит).
Начиная с четвертого домашнего задания вы будете писать код на хаскеле и домашние задания будут сдаваться в приватный курс на степике. Там они будут проверяться тестирующей системой и я смогу смотреть ваши посылки. По мере прочтения лекций в курсе будут открываться новые модули с задачами. Модуль открывается сразу после пары и закрывается в начале следующей.
Дедлайны
На вики я пишу мягкий дедлайн до которого мне можно присылать решения, и я постараюсь ответить и, в случае чего, вы можете прислать мне исправления. Жесткий дедлайн, после которого я не смотрю решения -- начало пары. Если вы прислали решение после мягкого дедлайна, то я постараюсь ответить вам в течение дня, но не готов гарантировать, что буду принимать исправления. Решения присланные после жесткого дедлайна -- не оцениваются.
Зачет
Что бы допуститься до экзамена вам сперва необходимо получить зачет по практике. Для этого вам нужно сделать несколько вещей:
- Сдать все теоретические домашние задания(ими считаются первые три)
- Получить не менее 75% от суммы баллов за теоретические и практические домашние задания без учета дополнительных заданий
- Сдать алгоритм вывода типов(ближе к концу семестра)
Если что-то из этих пунктов не выполняется, то мы решаем этот вопрос в индивидуальном порядке.
Дополнительные материалы
Полезные ссылки
- Небольшая запись с объяснением Numeric Typeclasses и их красивой диаграммой.
- Configure your ghci
- Функторы, аппликативные функторы и монады на пальцах