В течение семестра раз в неделю Вам будут читаться лекции о языке Haskell. Посещение лекций не влияет на возможность получения зачета.
По прошествии нескольких тем Вам будут выдаваться домашние задания на эти темы. Обычно новое домашнее задание выдается после 3-4х лекций и содержит задачи на темы лекций. На решение каждого домашнего задания отводится 3 недели с момента его выдачи. Всего ожидается четыре домашних задания.
Как уже было сказано, в каждом домашнем задании будет несколько задач. Каждая задача оценивается в несколько баллов.
У некоторых задач будут advanced версии, которые будут представлять усложненную версию задачи и оцениваться большим количеством баллов. Сумма баллов за все advanced версии задач равна 100 баллам.
Решения задач, которые будут признаны как списанные, будут помечаться красным в таблице и аннулироваться.
Решения задач, которые подозреваются как списанные, будут помечаться желтым в таблице и аннулироваться до тех пор, пока студент не докажет, что он полностью понимает код.
Ожидается, что каждый студент заведет один приватный репозиторий на github.com для всех домашних заданий, в который добавит как коллаборатов преподавателей курса (github: pva701, georgeee, gitlab: pva701, george-serokell)
Репозиторий должен иметь следующую структуру:
https://github.com/pva701/fp-homework-templates
Подробнее, как добиться такой структуры и настроить систему сборки написано здесь.
Чтобы сдать домашнее задание, необходимо отправить на почту курса fp.ctd.itmo@serokell.io письмо с ссылкой на коммит в Вашем репозитории, в котором сделано это домашнее задание.
Письмо должно иметь следующий формат:
Subject: ДЗX
Body:
https://github.com/pva701/fp-homework-templates/commit/aefa5b04cce75323ce89825e3820cdea58841e8a
Иванов Иван, группа 333X
где X
- это номер домашнего задания (0, 1, 2, …).
Отправить письмо необходимо до истечения дедлайна по домашнему заданию.
После того как дедлайн по домашнему заданию прошел, преподаватели в первую очередь проверяют Ваши решения на предмет списывания.
Те решения, которые окажутся списанными или подозреваются как списанные, аннулируются в таблице с особой пометкой.
Остальные же решения просматриваются преподавателями.
Прежде всего, чтобы Ваше решение было оценено, необходимо чтобы оно собиралось stack build
.
Баллы за задачу могут снижаться за:
Имейте в виду, что Вы можете получить отрицательное количество баллов за задачу.
Баллы за задачу могут повышаться за:
По умолчанию будет происходить только онлайн-проверка.
Если желающих сдавать домашние задания будет немного, то преподаватели вправе проводить офлайн-проверку: очную сдачу, при которой студент должен будет продемонстрировать код и ответить на возникающие по ходу проверки вопросы. Об офлайн-проверке задания будет сообщено заранее.
Офлайн-проверка предполагает все те же самые требования (решение выполнено самостоятельно, студент полностью понимает и может объяснить код и т.д.) и условия на снижения и повышения баллов.
Кроме получения баллов за домашние задания, есть дополнительные возможности заработать баллы.
В дополнение к домашним заданиям или вместо них Вы можете выполнить специальное задание.
Вы можете попробовать улучшить какую-нибудь Haskell IDE, например: Intellij IDEA на языке Scala, Haskell plugin для Emacs и т.д.
Количество баллов, которое Вы можете заработать, зависит от количества сделанного. Перед выполнением лучше согласовать с преподавателями.
Вы можете попробовать улучшить некоторые существующие библиотеки языка Haskell, исправив некоторые issues в github репозиториях или сделав новые улучшения.
Например, Вы можете попробовать улучшить следующие библиотеки:
Количество баллов, которое Вы можете заработать, зависит от количества сделанного. Перед выполнением лучше согласовать с преподавателями.
За поиск ошибок и опечаток в слайдах нашего курса будут даваться баллы. Вы также можете предлагать более хорошие примеры и прочие улучшения слайдов.
Количество баллов, которое можно получить, зависит от улучшения, но будет лежать в пределах от 0.5 до 3х баллов.
После каждой лекции студентам будет предложено оставить отзыв о том, насколько им понравилась лекция и какие были недочеты, по их мнению.
Чтобы избежать случаев, когда студент даже не был на лекции, но оставляет отзыв, неанонимные отзывы будут поощряться в 0.5 баллов.
Есть два способа получить зачет. Два стула.
Необходимо набрать не менее 100 баллов в течение семестра. Тогда студент получает зачет автоматом.
Сумма advanced версий домашних заданий составляет 100 баллов, то есть данный способ не является чем-то невозможным, но нужно регулярно выполнять advanced версии заданий, а также сделать немножко больше, чтобы покрыть возможные снятия баллов за недочеты.
Чтобы получить зачет данным способом, необходимо выполнить все три условия:
Письменный экзамен представляет собой письменную работу, в которой будет 13 вопросов по разным темам, затронутым в лекциях. Обычно для ответа на вопрос необходимо дать короткий ответ или написать некоторый небольшой кусочек кода. Предполагается, что все знания, нужные для ответа на вопрос, были рассказаны Вам на лекциях.
Каждый вопрос оценивается от 0 до 1 баллов (например, Вы можете получить 0.7 баллов за неточный ответ на вопрос).
То есть максимум за письменную работу можно получить 13 баллов. Количество баллов, которое Вам нужно набрать на письменном экзамене, чтобы его сдать, зависит от количества баллов, которые вы получили за семестр. Чем больше у Вас баллов набранно за семестр –- тем меньше нужно набрать на письменном экзамене.
Конкретные условия такие:
>= 60
за семестр –- >= 9
за письменный экзамен
>= 70
за семестр –- >= 8
за письменный экзамен
>= 80
за семестр –- >= 7
за письменный экзамен
>= 90
за семестр –- >= 6
за письменный экзамен
Да, предмет зачетный, но устный экзамен все равно придется сдать, чтобы получить зачет.
Ребят, зря вы сюда поступили… Оно вас сожрет. Бегите отсюда…
На экзамене Вы тянете билет, номер которого соответствует расказанной Вам лекции отсюда, у Вас есть 10 минут, чтобы воспользоваться своими записями или ноутбуком, после этого Вы можете еще некоторое время готовиться, но уже без каких либо материалов.