Яндекс Кружок · направление «Олимпиадное программирование». Организационная лекция: устройство курса, правила, система оценивания и олимпиадный ландшафт.
Лекцию ведут четыре преподавателя параллели, все равноправны — с вопросом можно обращаться к любому из них (лично или в чат):
Полина — ведёт вводную часть, рассказывает про устройство курса;
Алиса — рассказывает про правила общения и «как задавать вопросы»;
Лёша — рассказывает про систему оценивания и списывание;
Настя — рассказывает про сдачу задач и тестирующую систему.
Помимо преподавателей над курсом работает много людей. Организаторы: Полина (организационная помощь на месте) и Таня — она же отвечает за другие направления кружка (математика, ИИ) и рассказывает в конце лекции про олимпиады.
Преподаватели просят обращаться на «ты» — команда молодая и не позиционирует себя как «учителя в школе». Если кому-то привычнее «вы» — это тоже нормально.
Цель Плавно готовить участников к олимпиадам высокого уровня — ВсОШ (Всероссийской олимпиаде школьников) и перечневым олимпиадам первого уровня.
Чтобы до них дойти, нужно пройти определённый путь, и кружок его начинает. Дополнительные задачи курса:
научить писать код и сформировать интуицию «что такое нормальный код, а что — нет»;
развить чувство «заработает / не заработает» ещё до запуска;
достигается это только через нарешивание большого количества задач и разбор разных концепций — «взять одну книжку, прочитать и всему научиться» нельзя.
Занятия проходят в Школе анализа данных (Яндексовское помещение): по будням здесь учится ШАД, по выходным — кружок.
Есть кофепоинт с печеньками и напитками. Просьба выбрасывать мусор, не оставлять на местах.
Базовые правила безопасности: не бегать (упомянута стеклянная дверь, которую уже разбивали).
Пропуска
Пропуск не подписан именем, но привязан к владельцу: не передавать никому.
Если потеряли — написать преподавателям («надо деактивировать»), выдадут новый.
Пропуск может «перестать работать» (например, если месяц не прикладывали на входе). В таких случаях — к Тане, у неё есть устройство, «прошивающее» пропуска.
Если забыли пропуск, но очень нужно внутрь — пишете преподавателям, вас проведут по спискам.
Ноутбуки и зарядки
Обычно на занятиях пользуются ноутбуками; на вводной лекции просили их закрыть (нет нормального контеста).
Зарядок и розеток на местах нет — приносите свои зарядки.
Старайтесь не устраивать «хаос из проводов» на проходе.
Лекция — ≈ 1,5–2 часа по новой теме (по субботам, вечером, до ≈ 21:00 по Москве).
Разбор — контест, выданный на прошлом занятии, разбирается через неделю. С перерывом или без — по ситуации.
Дорешка — свободное решение задач, можно подходить с вопросами (после разбора; нужен ноутбук).
Контест по теме недели разбирают в следующую субботу; дорешивать можно и после разбора.
Правила расписания:
Структура: новая тема → по ней в тот же день выдаётся контест; предыдущий контест разбирается в этот же день.
Посещаемость не учитывается; опаздывать и пропускать можно, никого уведомлять не нужно.
Даже после разбора контест можно дорешать на те же баллы.
Ссылки на Zoom постоянные до конца семестра, лежат в закреплённых сообщениях чата.
15:00 Дистанционные занятия по составу аналогичны очным: та же лекция, те же контесты, вопросы можно задавать через «поднятую руку». Не путать с группой самостоятельного обучения.
Семинары: за год их четыре, каждый занимает все 5 часов занятия. Формат — устная сдача: получаете листик с задачами, решаете, идёте сдавать.
Зачёт: в конце каждого семестра (зимний и летний), формат — контест на ~5 часов, как короткий тур отбора. Начать можно в любой момент в отведённый день (условно 9:00–19:00).
Если не получилось в основной день — есть запасной день, но писать дважды нельзя: выбирается либо основной, либо запасной.
Пропуск зачёта не означает вылет из курса.
В кружке также проводятся туры и сборы к различным этапам ВсОШ (например, к муниципальному), бывают командные соревнования — анонсы пишутся в канале кружка, за ним нужно следить.
Идея Программу первого семестра можно назвать «джентльменский набор до муниципального этапа».
Примерно до ноября–декабря проходятся ключевые темы, которые позволят зарешать школьный и муниципальный этапы ВсОШ — при условии, что участник решает тематические контесты и что-то ещё на стороне. Первая часть тем — обязательный набор, дальше пойдут темы с «чуть меньшей удельной полезностью».
Используется Ejudge — система, которая применяется на региональном этапе ВсОШ, Открытой олимпиаде, Высшей пробе и многих других олимпиадах и тренировках.
Логин и пароль от летнего отбора не действуют; новые логины и пароли придут на почту.
На странице параллели выкладываются контесты; для самостоятельной группы — отдельные контесты (с пометкой).
Новые посылки появляются сверху списка; условия контеста открываются отдельной кнопкой (PDF).
Язык — только C++
Писать можно только на C++. Python не проходит по времени и памяти на большом числе задач.
Для тех, кто знает только Python, — есть курс по C++ на Stepik (ссылка на странице параллели). Он небольшой, осваивается за несколько недель.
Ревью посылок
В каждом контесте 1–3 задачи, и посылки просматриваются преподавателями «глазами»:
Посылка может получить вердикт от тестирования, но не засчитывается, пока преподаватель не посмотрит код и не решит, что он верен.
Если использован запрещённый приём (например, встроенная sort вместо той сортировки, которую просили реализовать), посылку «банят» — придётся переписать.
Посылки не «сгорают»: если что-то долго висит без проверки — её проверят, писать в чат постоянно не нужно.
Код-стайл и протокол
Есть style checker: система проверяет оформление кода (пробелы, отступы, пустая строка в конце и т. п.) и сообщает о нарушениях.
У посылки можно открыть код (сохраняется) и протокол — там видно сообщение от преподавателя (например, «так и так надо переписать»).
Актуальность правил Число дедлайнов, шкала баллов и организационные правила ниже — по состоянию на момент записи этой лекции (конкретный набор/год курса). Такие правила меняются от года к году; актуальную версию уточняйте у организаторов, а не считайте написанное здесь постоянным.
Дедлайны
Каждую неделю объявляется новый дедлайн: к определённой дате нужно сдать некоторое количество задач.
Дедлайн бинарный: либо сдал (плюс балл), либо не сдал (ноль).
Если пропустил первый дедлайн — можно нарешать к следующему, получишь балл только за него (это нормально).
За семестр — четыре дедлайна, объявляются заранее (не раньше чем за 2 недели).
Дедлайн можно перенести один раз по уважительной причине (больница, сборы). «Школа завалила» уважительной причиной не считается.
Итоговая оценка
оценка за семестр = дедлайны + зачёт + бонусы
Дедлайны: 4 штуки, дают от 0 до 4 баллов (по одному за сданный дедлайн).
Зачёт: нормируется до 0–4 баллов. Сколько задач ни было бы (4, 6 или меньше), результат пересчитывается в шкалу 0–4; нормировка зависит от сложности конкретного зачёта, поэтому «назвать формулу заранее тяжеловато».
Бонусы: успешное участие в олимпиадах, участие в мероприятиях кружка (семинары). Чёткие критерии объявят позже.
Пример расчёта
Решены три дедлайна → 3. На зачёте решено 5 задач из 10; при линейной нормировке (10 задач = 4 балла) это 2 балла. Набран 1 бонусный балл.
3 + 2 + 1 = 6
Итоговая оценка за семестр — 6 (из 8 возможных, без учёта возможных дополнительных бонусов).
Пример из лекции: три дедлайна, зачёт на 2 балла и один бонус — итого 6.
На что влияет оценка
Мерч, автопроход на следующий год и другие плюшки.
На следующий семестр остаются по итоговой оценке (не по отдельным дедлайнам). Обычно автопроход даётся тем, кто хорошо работал весь год.
Таблица баллов и апелляции
Ведётся табличка (ссылка — в канале параллели и на странице параллели). За своей строкой нужно следить.
Ошибки в баллах готовы обсуждать в течение недели-двух после дедлайна, но не через полгода — «через полгода разобраться уже невозможно».
10. Честность: списывание, LLM и утечки решений 32:18
Правило Использовать LLM (нейросети) нельзя. Любой обход правил — это плохо, даже если «в правилах текстом этого не было написано».
Аргументация «почему это плохо для вас самих»:
Сейчас — старт пути. Важно самому научиться решать; списывать можно везде, но на олимпиаде (без интернета и нейронок) не получится.
Списывание на сборах «вырождается» в то, что на олимпиаде человек не может сделать то же самое и сливается.
За списывание — жёсткое наказание; на зачёте действует прокторинг, есть системы антиплагиата.
Утечка решений
Публичный репозиторий (например, GitHub) со своими решениями — это фактически расшаривание решений: банят обоих — и того, кто списал, и того, кто дал (разница не принципиальна).
Приватный репозиторий — можно, если никому не даёшь доступ.
LLM и утечка данных
Если «скармливать» своё решение (например, 300 строк) в нейросеть (Алису, Клод, ChatGPT и т. п.), эти данные могут попасть в обучающую выборку или пайплайн и «выдаться» кому-то ещё — то есть своё решение можно фактически «потерять», как потерянный паспорт, на который потом берут кредит. Локальные LLM (не сливающие данные наружу) — обсуждались, но общего «разрешения» это не отменяет.
просить подсказку по задаче, над которой долго думал.
Плохо:
списывать готовый код решения (скатывать) — у себя и у друзей;
флудить, писать нецензурно, обсуждать политику — можно замьютить.
Перед вопросом
Сначала посмотрите канал параллели (посты, поиск) и закреплённые сообщения в чате — с большой вероятностью ответ уже есть.
Не пишите всем четырём преподавателям сразу — выберите одного.
Не шлите «пинг-котиков» и «ответьте на мой вопрос»: сообщение никуда не делось, преподаватель ответит, когда сможет. Если ответа нет больше дня — можно вежливо пингануть ещё раз.
Имя и фамилия (если их нет в нике) — чтобы вас идентифицировали.
Номер контеста и номер задачи, из которой вопрос.
Скриншот условия — преподавателю может быть неудобно заходить в Ejudge (например, в метро).
Код — лучше текстом, в тройных апострофах (```), а не картинкой.
Номер посылки в Ejudge.
Что уже пробовали и что не получилось.
Пример: «Я Вася Пупкин, учусь в 9 классе. Вопрос по задаче "Деление чисел" из контеста №… Скрин условия. Посылка такая-то. Вот код. Мой подход — делаю то-то, попробовал это, получил ошибку на тесте 334».
Обращение можно на «ты» или на «вы» — как удобнее. Помните, что кружок — не единственное занятие в жизни преподавателей, они могут быть заняты.
Первый выданный контест — вводный по C++ (название «выживание по C++»), 4–5 задач.
Цель — просто пописать простой код: a + b, чтение из файлов, работа со строками, базовые примитивы.
Для тех, кто знает C++ — контест займёт немного времени; главное — привыкнуть к проверяющей системе.
Для тех, кто не знает C++, — курс на Stepik (ссылка на странице параллели), за неделю нужно освоить базу: циклы, считывание данных, массивы, функции — это «must have».
Никто не ждёт, что все сразу бросятся писать код; дальше база добирается на практике в тематических контестах.
Часть лекции ведёт Таня (организатор Яндекс Кружка). Олимпиады в стране делятся на три больших направления: ВсОШ, перечневые олимпиады и командные олимпиады.
Актуальность правил Форматы этапов, региональные правила и призы олимпиад меняются от года к году. Ниже — состояние дел на момент записи лекции; перед конкретным олимпиадным сезоном сверяйтесь с официальными положениями, а не с этим конспектом.
Проводится по всем школьным предметам; нас интересует ВсОШ по информатике.
С прошлого учебного года ВсОШ по информатике состоит из четырёх профилей: классическое программирование, искусственный интеллект, информационная безопасность и робототехника.
Цифра «на этап приглашается 1250 человек» — это суммарно по всем профилям, поэтому для классического программирования ориентир — те же ~500 человек.
Этап
Сроки (ориентировочно)
Формат
Школьный
сентябрь–октябрь
онлайн на платформе Сириус
Муниципальный
начало декабря
локально (школа / площадка)
Региональный
конец января – февраль
локально, единая тестирующая система (Ejudge)
Заключительный
конец марта – апрель
другая система
Этапы ВсОШ по информатике. Чтобы пройти дальше муниципального, школьнику 7–8 класса нужно писать за 9-й.
Важные правила по классам:
Если пишешь за свой класс (7–8 класс), олимпиада для тебя заканчивается на муниципальном этапе.
Если уверен в силах, можно писать за 9-й класс и выше — тогда есть шанс пройти на региональный и заключительный этапы.
Начиная с регионального этапа нужно выбрать профиль, за который пишешь.
Региональный и заключительный этапы проходят в два тура (два разных дня): каждый тур — контест на 5 часов и 4 задачи.
Муниципальный этап в некоторых регионах (пример — Саратовская область) также бывает в два тура, по сумме дней.
МОШ (Московская олимпиада школьников) по информатике — для тех, кто идёт итерационно.
Олимпиада им. Келдыша — «юниорская ВсОШ»: можно участвовать дополнительно, даже если не участвовал в основной. Дополнительный отбор совпадает с отбором в Сириус.
РСОШ — Российский совет олимпиад школьников: раз в год формирует перечень олимпиад по всем предметам и присваивает им уровни (1, 2, 3). Про них рано говорить всем, кроме 11-классников, но вот главное:
Диплом перечневой олимпиады нужно подтверждать ЕГЭ по профильному предмету (каждый вуз устанавливает свой порог баллов).
Если диплом есть и ЕГЭ сдан на нужный балл — ЕГЭ по предмету засчитывается как 100 баллов, и работает БВИ (поступление без вступительных испытаний).
Примеры: Высшая школа экономики берёт дипломантов Открытой олимпиады с подтверждением ~N баллов ЕГЭ по информатике; МФТИ — только диплом первой степени Открытой олимпиады с примерно такими же баллами.
Олимпиады 2-го и 3-го уровня — часто проектные или «трата времени», за ними кружок особо не следит.
ICPC — студенческая командная олимпиада (4 буквы: I-C-P-C). Лучшие команды мира собираются на финале. Россия входит в регион «Евразия». Российские команды становились чемпионами мира 17 раз с 2000 года.
ВКОШП (Всероссийская командная олимпиада школьников по программированию) — первая командная олимпиада для школьников, создана по образцу ICPC.
ВКОШП Junior — для тех, кто впервые участвует, и для младших классов.
Правила набора команды на ВКОШП:
В команде трое; для московского региона все члены команды должны быть из одной школы. Если в школе четверо сильных — «кто-то пострадает».
Все командные соревнования проходят весной — есть полгода на тренировки.
Формат отбора / самой олимпиады:
Отбор организуется через площадку (школа/тренер подаёт заявку), вы приходите на площадку к назначенному времени, без ноутбуков.
Пишете 4 часа. На команду из трёх человек — один ноутбук, решаете по очереди; нужно выработать хитрые тактики, чтобы ноутбук не простаивал, и натренировать печать кода (баги ищут в распечатках).
Образовательный центр с проживанием (лагерь на берегу моря, между Адлером и Сочи), разделён на смены по 21 дню.
Смены бывают по информатике, математике, астрономии, искусству, спорту и т. д.
Отбор в науку идёт через: мартовскую смену (берут кандидатов, кто едет от Москвы на Всерос) и «Информатика.Юниоры» (всегда в июне) — именно она интереснее всего младшим.
Летние школы (лагеря)
Школа
Описание
ЛКШ (Летняя компьютерная школа)
Старейшая школа по программированию (Московская область). Преподают в т. ч. топовые тренеры страны, авторы и жюри олимпиад.
ЛШКН
Сильно младше ЛКШ, в Липецке (со следующего года возможна смена дислокации). Много преподавателей кружка.
Волошка
Лагерь в Перми, берут ребят и из других регионов; нормальная альтернатива ЛКШ/ЛШКН.
Олмат
Олимпиадная школа (Москва). Следить за наборами весной.
Наполис
Школа олимпиадной подготовки (формат год от года разный).
Про зимние ЛКШ В зимнюю ЛКШ обычно берут тех, кто уже был в летней: сначала нужно попасть в летнюю, чтобы преподаватели убедились, что всё в порядке, и позвали в зимнюю. Если никогда не были в ЛКШ — на зимнюю скорее не возьмут.
Отдельно: в кружке также есть «Сборы к ВсОШ по математике, ИИ» и открытые «Сборка» (аналог, где просто решаешь задачи, похожие на этапные).
Официальная часть лекции на этом закончилась. Дальше — перерыв и свободное общение.
Уходить можно в любой момент, но полезно познакомиться с людьми вокруг: «вы сейчас никого не знаете, а потом будете вместе решать задачи и ездить на олимпиады».