Правила курса
О чём курс
Курс можно будет поделить на 3 части:
- Основы C++ (мотивация - нет гарантии, что все задачи сдаются на питоне из-за его медлительности)
- Стандартные алгоритмы (мотивация - проходить собесы)
- Продвинутые алгоритмы - например: streaming, map-reduce, разные деревья поиска (мотивация - для общего развития и понимания того, как что работает под капотом)
Стадартные и продвинутые алгоритмы будут идти вперемешку, чтобы иногда разгружать вас от количества дз.
Формы контроля знаний студентов
- Домашние задания - длинные тематические контесты, обычно на 1-2 недели, обычно 1 в неделю. Их будет 15-20 за весь курс.
- Контрольные работы - короткие контесты на 2 часа. Их будет 3 за весь курс:
- по C++
- по итогам 3 модуля
- по итогам 4 модуля
- Экзамена нет.
Порядок формирования итоговой оценки
Формула для итоговой оценки:
\[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 могут быть не всегда корректными
- Продление дедлайнов по болезни через гугл-форму (прикладываете справку и даты болезни, мы руками продляем вам все контесты, которые попали в этот промежуток)
- Полуручная проверка на списывание
- Возможно, будут защиты дз. Это означает, что я буду выбирать в студента и просить объяснить его его же решение (студент заранее не знает какой задачи). Если студент не справляется, то ему зануляется весь контест
Что делать, если у вас в течение курса возник вопрос?
- Ищите ответ в закрепах
- Ищите ответ в чате
- Спрашивайте у chatgpt / claude
- Если это вопрос по курсу / общий вопрос по задаче / С++, то приходите в чат
- Если вам не ответили, тегните ассистентов
- Если это личный вопрос, то пишите сразу в личку ассистентам
- Если вам по какой-то причине кажется, что ассистенты не в силах помочь с вашей проблемой, то пишите мне в личку. Я сразу признаюсь, ETA на ответ может быть очень большим, поэтому в списке я последний
- Мы не будем отвечать на вопросы вида: “почему у меня в задаче WA?” или “а какой там тест?”. На оба вопроса ответ один - тестируйте самостоятельно, ищите крайние случаи
Об использовании LLM для решения задач (chatgpt, claude, copilot, etc)
- Точно нельзя использовать промты вида: “напиши код на С++, решающий задачу…”
- В длинных контестах использование LLM не воспрещается. Например, чтобы узнать что-то вида “как взять подстроку от L до R строки s в C++?” или вы не поняли условие задачи
- На КР использование LLM строго запрещается