Практикум (3 курс, осенний семестр 2017 года) — различия между версиями
DanilovB (обсуждение | вклад) (→Задание 3: catch) |
DanilovB (обсуждение | вклад) (→Задание 3: catch) |
||
Строка 76: | Строка 76: | ||
#* выложить решение в новый репозиторий в [http://mks1.cs.msu.ru gitlab-мк] и сообщить об этом. | #* выложить решение в новый репозиторий в [http://mks1.cs.msu.ru gitlab-мк] и сообщить об этом. | ||
− | Оценка задания будет производиться путём подмены правильной реализации рассматриваемых классов их ошибочными реализациями. Любое поведение, отличающееся от эталонного (представленного в реализации из варианта задания), надо считать ошибочным. В ошибочных реализациях гарантируется лишь совпадение сигнатур public членов классов - private члены, реализация конструктора, а также тел inline-функций и значений | + | Оценка задания будет производиться путём подмены правильной реализации рассматриваемых классов их ошибочными реализациями. Любое поведение, отличающееся от эталонного (представленного в реализации из варианта задания), надо считать ошибочным. В ошибочных реализациях гарантируется лишь совпадение сигнатур public членов классов - private члены, реализация конструктора, а также тел inline-функций и значений параметров функций по умолчанию могут быть произвольными. При выполнении необходимых условий балл за задание будет равен взятой от максимального балла доле обнаруженных тестами ошибочных реализаций. |
== Второй блок: практические задания == | == Второй блок: практические задания == |
Версия 03:45, 6 октября 2017
Содержание
Общая информация
- Занятия проходят по понедельникам с 16:20 до 17:55 в аудиториях 504 и 574.
- Занятия ведут Шуплецов М.С., Данилов Б.Р. и Подымов В.В.
Программа курса
Разделы будут наполняться по мере проведения занятий.
Первый блок: общие навыки
Задание 1: Git
Обязательно для получения положительной оценки.
Крайний срок сдачи: 17.09.2017, 23:59.
Максимальная оценка за выполнение в срок: 20 баллов.
Штраф за невыполнение в срок: -2 балла за каждый день сверх крайнего срока, но не ниже ноля баллов за задание.
Собственно задание:
- Зарегистрироваться в системе Gitlab сервера mks1.cs.msu.ru с логином, позволяющим легко идентифицировать зарегистрировавшегося (предпочтительно - ФамилияИО латинскими буквами).
- Обратиться к ведущему с просьбой добавиться в проект "prac-sandbox" (песочницу).
- От своего имени (через свой логин в Gitlab) дополнить дерево ревизий проекта "prac-sandbox" чем-нибудь похожим вот на это: от текущей ревизии создать ветку с названием, основанным на своей фамилии, сделать коммит в ветке (с какими угодно изменениями), создать вторую такую же ветку из первой, сделать коммит во второй ветке, и затем постепенно слить вторую ветку с первой, а первую - с главной. Если дерево получится не совсем таким, но тоже "разумным" и показывающим базовые навыки работы с git, то задание тоже может быть принято.
- Сообщить любым способом о выполнении задания.
Задание 2: cmake
Обязательно для получения положительной оценки.
Крайний срок сдачи: 24.09.2017, 23:59.
Максимальная оценка за выполнение в срок: 20 баллов.
Штраф за невыполнение в срок: -2 балла за каждый день сверх крайнего срока, но не ниже ноля баллов за задание.
Собственно задание:
- Заглянуть в репозиторий prac-318-cmake.
- Посмотреть свой номер варианта в файле tasks.xlsx .
- Скачать все файлы из папки с названием - номером варианта.
- Не изменяя скачанных файлов, дополнить их файлами сборки cmake, позволяющими собрать цели, описанные в скачанном файле task.txt .
- Сообщить решение любым способом, например,
Задание 3: catch
Обязательно для получения положительной оценки.
Презентация: тестирование ПО.
Крайний срок сдачи: 13.10.2017, 10:00.
Максимальная оценка за выполнение в срок: 20 баллов.
Штраф за невыполнение в срок: -2 балла за каждый день сверх крайнего срока, но не ниже ноля баллов за задание.
Собственно задание:
- Заглянуть в репозиторий prac-318-tests.
- Посмотреть свой номер варианта в файле tasks.xls .
- Скачать все файлы из папки с названием - номером варианта.
- Не изменяя скачанных файлов, дополнить их файлом main.cpp, в котором должны присутствовать тест-кейсы, тестирующие функционирование класса из варианта задания.
- Использование библиотеки Catch является необходимым условием для сдачи задания.
- Тесты для класса должны быть разнообразными. Необходимо иметь несколько видов тестовых данных:
- первый тест должен быть максимально прост, его цель - проверить, работает ли компонент вообще,
- вторая группа тестов должна проверять граничные/вырожденные случаи (здесь находится, в том числе, и проверка правильности выброса соответствующих исключений),
- в следующую группу необходимо включить тесты, проверяющие правильность работы компонента в целом, при этом здесь должны присутствовать 1) специальные тесты, проверяющие работоспособность компонента в случае специальной организации входных данных (например, входные данные могут быть отсортированы в порядке возрастания, в порядке убывания, или значения всех параметров могут быть равны между собой) и 2) общие тесты, проверяющие, по возможности, все ветви логической схемы программы.
- в последнюю группу тестов надо включить тесты, которые должны в полном объеме отражать реальную нагрузку на соответствующие компоненты - здесь, в частности, тестируются такая работа, при которой происходит многократное заполнение и опустошение соответствующих структур данных.
- Разные виды тестов надо оформлять в виде отдельных тест-кейсов.
- Сообщить решение любым способом, например,
Оценка задания будет производиться путём подмены правильной реализации рассматриваемых классов их ошибочными реализациями. Любое поведение, отличающееся от эталонного (представленного в реализации из варианта задания), надо считать ошибочным. В ошибочных реализациях гарантируется лишь совпадение сигнатур public членов классов - private члены, реализация конструктора, а также тел inline-функций и значений параметров функций по умолчанию могут быть произвольными. При выполнении необходимых условий балл за задание будет равен взятой от максимального балла доле обнаруженных тестами ошибочных реализаций.
Второй блок: практические задания
Третий блок: теоретические задания
Критерии выставления оценки
В курсе предполагаются:
- Несколько заданий в первом блоке. Максимальная суммарная оценка за выполнение всех заданий первого блока - 100 баллов. Некоторые из этих заданий обязательны для выполнения.
- Два задания во втором блоке. Максимальная оценка за выполнение каждого из этих заданий - 100 баллов.
- Несколько заданий в третьем блоке. Максимальная суммарная оценка за выполнение всех заданий третьего блока - 100 баллов.
Для получения положительной оценки необходимо сдать все обязательные задания и, кроме того, из максимальных 400 баллов (100 за первый блок, 200 за второй блок, 100 за третий блок) набрать хотя бы
- 320 для получения оценки "Отлично";
- 240 для получения оценки "Хорошо";
- 160 для получения оценки "Удовлетворительно".
Критерии получения оценки при недостаточном количестве баллов по итогам работы в семестре обсуждаются отдельно после завершения семестра.