Система оценок по ТА (подгруппа Иржавского)

При работе в семестре каждый студент набирает очки, которые потом преобразуются в оценку за работу в семестре. Для получения зачёта необходимо и достаточно заработать оценку 4 и выше, а также выполнить требования лекторов. При получении оценки 6 и выше за работу в семестре будет рекомендована автоматическая оценка за экзамен, которая может отличаться от оценки за работу в семестре на 1 балл в меньшую сторону и любое число баллов в большую сторону, исходя из личного представления преподавателя о работе и уровне знаний студента.

Очки начисляются за:

  • решение задач в тестирующей системе;
  • сдачу преподавателю алгоритмов для решения задач;
  • за оба этих действия с одной задачей;
  • обнаружение неточности/опечатки в условии задачи курса;
  • предложение новых наборов входных данных для задач курса;
  • создание новых задач курса;
  • участие в чемпионате факультета.

Очки переводятся в оценку за работу в семестре следующим образом: первый балл стоит 15 очков, каждый следующий — на 10 очков больше. Неполные баллы не начисляются. Таким образом, оценка 4 ставится от 120 очков, оценка 10 — от 600 очков.

Решение задач

Сдача каждой из общих задач в систему приносит 5 очков. Алгоритмы по общим задачам не сдаются. Далее речь идёт только об индивидуальных задачах.

Решение индивидуальных задач — это основной предполагаемый вид деятельности в рамках курса. Отдельно начисляются очки за сдачу реализации в тестирующую систему, за сдачу алгоритмов преподавателю и за оба действия с одной и той же задачей (такие задачи будем называть полностью сданными).

Каждая задача приносит число очков, равное своей номинальной сложности, умноженной на повышающие и понижающие коэффициенты.

  • За сдачу преподавателю алгоритма по задаче из текущей темы, очки за алгоритм удваиваются (см. график ниже).
  • Все очки за задачи 5-й и 6-й тем удваиваются.
  • Каждая следующая задача в одной теме приносит всё меньше очков (см. ниже).

Первая задача в каждой теме выбирается студентом самостоятельно среди не назначенных другим студентам группы. Каждая следующая задача выбирается преподавателем. При этом в каждый момент времени в каждой теме может быть назначено не более двух задач, которые не сданы ни преподавателю, ни системе.

График сдачи задач по темам

Сдача алгоритма по текущей теме поощряется удвоением очков за алгоритм. Текущая тема определяется в соответствии с таблицей.

1. Деревья поиска 11.02–24.02
2. Рекуррентные соотношения 25.02–11.03
3. Структуры данных 12.03–25.03
4. Алгоритмы на графах 26.03–15.04
5. Перебор 16.04–12.05
6. Приближённые алгоритмы 13.05–02.06

Задача может быть сдана с опережением графика, если в каждой из предыдущих тем сдан хоть один алгоритм. В этом случае очки за алгоритм также удваиваются.

Детали начисления очков за несколько задач в одной теме

Очки отдельно начисляются за:

  • алгоритм;
  • реализацию;
  • алгоритм и реализацию вместе.

При этом полностью сданная задача приносит очки по всем трём пунктам.

Среди задач одной темы каждый следующий алгоритм приносит в [math]\frac54[/math] раза меньше очков. Аналогично среди задач одной темы каждая следующая реализация приносит в [math]\frac54[/math] раза меньше очков. И точно так же среди задач одной темы каждая следующая полностью сданная задача (алгоритм и реализация) приносит в [math]\frac54[/math] раза меньше очков.

При этом задачи перед назначением коэффициентов переставляются оптимальным для студента образом. Это значит, что не имеет значения, сдать в систему сначала задачу номинальной сложности 10, а потом номинальной сложности 8 или наоборот — общее число очков будет равно [math]10 + 8 \cdot \frac45 = 16 \frac25[/math]. С другой стороны, если алгоритм по одной задаче сдать в рекомендуемый срок, а по второй позже срока, то порядок имеет значение: [math]2\cdot 10 + 8 \cdot \frac45 = 26 \frac25 \gt 24 = 2\cdot 8 + 10 \cdot \frac45[/math].

Обратите внимание, что сдать по одной задаче одинаковой сложности в трёх разных темах выгоднее, чем сдать четыре задачи такой же сложности в одной теме: [math]1 + \frac45 + \frac{16}{25} + \frac{64}{125} = \frac{369}{125} \lt 3 = 1 + 1 + 1[/math].

Плагиат

Внимание! При обнаружении плагиата очки за решение соответствующей задачи в системе умножаются:

  • на −3 (минус три) в случае индивидуальной задачи;
  • на −10 (минус десять) в случае общей задачи.

Очки за эту индивидуальную задачу как полностью сданную (при их наличии) аннулируются (умножаются на 0). Одинаково виновными в плагиате считаются обе стороны: дающая и берущая.

Улучшение задач курса

Улучшение задач курса поощряется следующим образом.

  • За каждую найденную опечатку, орфографическую, пунктуационную, синтаксическую, стилистическую, типографическую или математическую ошибку студент получает 1 очко. Здесь и далее только первый студент, нашедший каждую ошибку, получает очки.
  • За обнаружение ошибки в примере к задаче даётся 2 очков.
  • За обнаружение ошибки в тестах (невыполнение обещанных условием гарантий по формату файла, диапазону значений и др.) — 5 очков.
  • За каждый идейно новый набор входных и выходных данных даётся 10 очков (см. ниже).
  • За полную подготовку новой задачи — до 200 очков, в зависимости от объёма и качества проделанной работы (подготовка условия, тестов, авторских решений, программы проверки ответа и программы-контроллёра тестов). Перед началом работы по задаче необходимо обсудить с преподавателем идею задачи и получить дальнейшие указания.

К этим очкам не применяются повышающие или понижающие коэффициенты.

Идейно новые тесты

Идейно новым считается корректный набор входных и выходных данных, на котором не работает или работает неправильно одно из Ваших решений, прошедших все существующие по этой задаче тесты. Такой тест отправляется через вопрос по соответствующей задаче. Маленький файл можно включить в текст сообщения, большой — прикрепить. В выходных данных теста должен быть правильный ответ (для задач шестой темы — оптимальный). Очки выставляются после обсуждения с преподавателем сути ошибки и структуры теста.

При составлении тестов не пытайтесь жульничать, искусственно добавляя в правильное решение случаи, в которых оно преднамеренно работает неверно! Например, фрагмент

ifstream fin("input.txt");
ofstream fout("output.txt");
fin >> n;
if (n == 12345)
    fout << "Ой, всё!" << endl;

очевидно будет неправильно работать, если на входе будет число 12345, но этот случай является преднамеренной, а не идейной или технической ошибкой.

Участие в чемпионате факультета

Каждый участник команды чемпионата факультета по программированию получает 15 баллов за факт участия и 10 баллов за каждую сданную командой задачу.