Правила курса

О чём курс

Курс можно будет поделить на 3 части:

  1. Основы C++ (мотивация - нет гарантии, что все задачи сдаются на питоне из-за его медлительности)
  2. Стандартные алгоритмы (мотивация - проходить собесы)
  3. Продвинутые алгоритмы - например: streaming, map-reduce, разные деревья поиска (мотивация - для общего развития и понимания того, как что работает под капотом)

Стадартные и продвинутые алгоритмы будут идти вперемешку, чтобы иногда разгружать вас от количества дз.

Формы контроля знаний студентов

  1. Домашние задания - длинные тематические контесты, обычно на 1-2 недели, обычно 1 в неделю. Их будет 15-20 за весь курс.
  2. Контрольные работы - короткие контесты на 2 часа. Их будет 3 за весь курс:
    • по C++
    • по итогам 3 модуля
    • по итогам 4 модуля
  3. Экзамена нет.

Порядок формирования итоговой оценки

Формула для итоговой оценки:

\[O_{итоговая} = round(min(10, 0.7 \cdot \text{O}_{дз} + 0.3 \cdot \text{O}_{к/р})),\]

где round - арифетическое округление.

Каждая из $\text{O}{дз}$ и $\text{O}{к/р}$ оценивается от 0 до 11 и вычисляется как средняя оценка по всем дз и контрольным работам соответственно:

\[\text{O}_{дз} = \frac{1}{N} \sum_{i=1}^{N} \text{O}_{дз_i},\] \[\text{O}_{к/р} = \frac{1}{M} \sum_{i=1}^{M} \text{O}_{к/р_i},\]

Каждый контест (ДЗ или КР) оценивается от 0 до 11 баллов. У каждого контеста есть четыре трешхолда - на оценки 4, 6, 8 и 10 соотвтетсвенно, все что между - линейна апроксимация, все что больше - линейна апроксимация до 11. Оценки не округляются.

Рассмотрим пример:

Трешхолд на 4 Трешхолд на 6 Трешхолд на 8 Трешхолд на 10 Всего задач
1 3 5 7 11

Тогда:

Количество решенных задач 0 1 2 3 4 5 6 7 8 9 10 11
Оценка 0 4 5 6 7 8 9 10 10.25 10.5 10.75 11

Уточнения

  • Полная автопроверка всех задач
  • Жесткие дедлайны
  • Все дедлайны будут считаться понедельниками 18:00 мск (то есть ровно до пары)
  • отдельная автотабличка с оценками по каждому контесту; там же будут видны все дедлайны и разбаловки, дедлайны на codeforces могут быть не всегда корректными
  • Продление дедлайнов по болезни через гугл-форму (прикладываете справку и даты болезни, мы руками продляем вам все контесты, которые попали в этот промежуток)
  • Полуручная проверка на списывание
  • Возможно, будут защиты дз. Это означает, что я буду выбирать в студента и просить объяснить его его же решение (студент заранее не знает какой задачи). Если студент не справляется, то ему зануляется весь контест

Что делать, если у вас в течение курса возник вопрос?

  1. Ищите ответ в закрепах
  2. Ищите ответ в чате
  3. Спрашивайте у chatgpt / claude
  4. Если это вопрос по курсу / общий вопрос по задаче / С++, то приходите в чат
  5. Если вам не ответили, тегните ассистентов
  6. Если это личный вопрос, то пишите сразу в личку ассистентам
  7. Если вам по какой-то причине кажется, что ассистенты не в силах помочь с вашей проблемой, то пишите мне в личку. Я сразу признаюсь, ETA на ответ может быть очень большим, поэтому в списке я последний
  8. Мы не будем отвечать на вопросы вида: “почему у меня в задаче WA?” или “а какой там тест?”. На оба вопроса ответ один - тестируйте самостоятельно, ищите крайние случаи

Об использовании LLM для решения задач (chatgpt, claude, copilot, etc)

  • Точно нельзя использовать промты вида: “напиши код на С++, решающий задачу…”
  • В длинных контестах использование LLM не воспрещается. Например, чтобы узнать что-то вида “как взять подстроку от L до R строки s в C++?” или вы не поняли условие задачи
  • На КР использование LLM строго запрещается

Ссылки

  1. Группа на codeforces со всеми контестами
  2. Форма для продления дедлайнов по болезни
  3. Таблица с оценками, разбаловками и дедлайнами
  4. Альтерантивный курс по C++