С++,1 курс, 2 семестр, 2016/17 — различия между версиями

Материал из SEWiki
Перейти к: навигация, поиск
(Практика Суворов: добавлена примерная схема оценки)
Строка 19: Строка 19:
  
 
Префикс в теме письма: <code>[C++TA]</code>
 
Префикс в теме письма: <code>[C++TA]</code>
 +
 +
=== Примерные правила оценки лабораторных ===
 +
Это больше руководство для меня и контрольные точки, чем чёткие правила; баллы могут сниматься и по другим причинам. Апелляции подавать можно и нужно - я мог что-то не заметить (например, что вы что-то на самом деле сделали, или что это ещё не проходили, или что в заданее не требуется), мог сделать слишком жёсткую систему оценки (тогда мы обсудим это с коллегами). Если что-то непонятно - задавайте вопросы.
 +
 +
Итак, 10 баллов распределяются примерно следующим образом:
 +
# За прохождение тестов:
 +
#* 3 балла, если прошло всё и сразу.
 +
#* 2 балла, если потребовалось косметически поменять формат вывода текста (вроде `SalaryManager` и `Salary Manager`).
 +
#* 1 балл, если работает только текст (возможно, после косметических исправлений) или программа исходно не компилировалась.
 +
#* 0 баллов, если не удалось простыми изменениями заставить заработать.
 +
# За Valgrind:
 +
#* 2 балла, если претензий нет.
 +
#* 1 балл, если есть только утечки памяти.
 +
#* 0 баллов, если есть undefined behavior вроде чтения из неинициализированной памяти.
 +
# За качество и корректность интерфейсов классов (включая поля) и функций:
 +
#* 2 балла, если претензий нет.
 +
#* 1 балл, если в целом идея верная, но сделали что-то не слишкои опасное (открыты лишние методы), или что-что, что обнаружится на этапе компиляции (забыли const qualifier).
 +
#* 0 баллов, если интерфейс опасен (невиртуальный деструктор, забыли закрыть оператор присваивания/конструктор копирования).
 +
# За качество и корректность реализации ставится от 0 до 3 баллов и снимаются за:
 +
#* -1 балл, если есть обширное дублирование кода, от которого можно избавиться (например, вынести в предка).
 +
#* -1 балл за скрытые ограничения (вроде фиксированной максимальной длины строки).
 +
#* -1 балл за серьёзное несоответствие "традициям" языка C++ или за неожиданную логику программы (нумерация массивов с единицы, реализация больших нешаблонных методов в header'ах, лишний код).

Версия 17:08, 19 февраля 2017

Экзамен

Актуальная wiki первого семестра

Лекции

Преподаватель: Евгений Линский (evgeny.linsky@gmail.com)

Практика Гулецкий

Преподаватель: Артур Гулецкий (hatless.fox@gmail.com)

Префикс в теме письма: [C++TA]

Практика Афанасьев

Практика Суворов

Преподаватель: Егор Суворов (egor_suvorov@mail.ru)

Префикс в теме письма: [C++TA]

Примерные правила оценки лабораторных

Это больше руководство для меня и контрольные точки, чем чёткие правила; баллы могут сниматься и по другим причинам. Апелляции подавать можно и нужно - я мог что-то не заметить (например, что вы что-то на самом деле сделали, или что это ещё не проходили, или что в заданее не требуется), мог сделать слишком жёсткую систему оценки (тогда мы обсудим это с коллегами). Если что-то непонятно - задавайте вопросы.

Итак, 10 баллов распределяются примерно следующим образом:

  1. За прохождение тестов:
    • 3 балла, если прошло всё и сразу.
    • 2 балла, если потребовалось косметически поменять формат вывода текста (вроде `SalaryManager` и `Salary Manager`).
    • 1 балл, если работает только текст (возможно, после косметических исправлений) или программа исходно не компилировалась.
    • 0 баллов, если не удалось простыми изменениями заставить заработать.
  2. За Valgrind:
    • 2 балла, если претензий нет.
    • 1 балл, если есть только утечки памяти.
    • 0 баллов, если есть undefined behavior вроде чтения из неинициализированной памяти.
  3. За качество и корректность интерфейсов классов (включая поля) и функций:
    • 2 балла, если претензий нет.
    • 1 балл, если в целом идея верная, но сделали что-то не слишкои опасное (открыты лишние методы), или что-что, что обнаружится на этапе компиляции (забыли const qualifier).
    • 0 баллов, если интерфейс опасен (невиртуальный деструктор, забыли закрыть оператор присваивания/конструктор копирования).
  4. За качество и корректность реализации ставится от 0 до 3 баллов и снимаются за:
    • -1 балл, если есть обширное дублирование кода, от которого можно избавиться (например, вынести в предка).
    • -1 балл за скрытые ограничения (вроде фиксированной максимальной длины строки).
    • -1 балл за серьёзное несоответствие "традициям" языка C++ или за неожиданную логику программы (нумерация массивов с единицы, реализация больших нешаблонных методов в header'ах, лишний код).