ДонНТУ   Портал магистров

Зимняя школа по программированию

В последние годы всё большую популярность среди студентов вузов обретают соревнования по спортивному программированию. Соревнование представляет собой командную олимпиаду.

Основные правила олимпиады:

  1. Каждая команда состоит из трех студентов.
  2. Каждой команде предоставляется один компьютер.
  3. За отведенное время (обычно 4-5 часов) команде необходимо решить 8-12 алгоритмических задач.
  4. Решение задачи отправляется на сервер, где тестируется на большом количестве входных тестов.
  5. Решение считается принятым, если оно прошло все тесты и не превысило лимит времени.
  6. За каждое принятое решение к штрафному времени команды прибавляется время, прошедшее с начала соревнования до момента отправки правильного решения.
  7. Если задача была сдана не с первой попытки, то к штрафному времени также прибавляется по 20 минут за каждое неверное решение задачи.
  8. Победителем соревнования считается команда, решившая максимальное количество задач с минимальным штрафным временем.

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

Более подробная информация о видах соревнований и их истории представлена на странице Ивана Беликова. Я же хочу уделить внимание такому роду мероприятий, как школа по программированию.

Школы по программированию

К настоящему времени на территории Украины ежегодно проводятся так называемые школы по программированию – Зимняя и Летняя. Эти мероприятия являются международными – в них принимают участие команды из Украины, России, Грузии, Китая, Белоруссии, и др. Зимняя школа проводится в Харькове, на базе Харьковского национального университета радиоэлектроники. Летняя школа – в Севастополе, на базе Севастопольского национального университета ядерной энергии и промышленности.

Целями мероприятий являются:

Зимняя школа

Зимняя школа ежегодно (начиная с 2008 года) проводится в г.Харькове. Организатором мероприятия является Харьковский национальный университет радиоэлектроники. Продолжительность зимней школы – 11 дней. 1-й, 6-й и 11-й дни традиционно являются организационными, а оставшиеся 8 дней – соревновательными.

Начинается всё с прибытия и регистрации команд. При регистрации каждый участник команды получает пакет с программой мероприятий, персональным бейджем, а также различными подарками от спонсоров мероприятия – блокнотами, ручками, буклетами, футболками. После регистрации и расселения команд, в первый день школы, проводится торжественное открытие зимней школы. Оно сопровождается публичным представлением каждой команды, выступлением организаторов и спонсоров мероприятия.

Все команды, принимающие участие в зимней школе, делятся на две категории (лиги): высшая и юниорская. На этапе соревнований командам высшей лиги предъявляются более высокие требования: усложненные задачи, меньший лимит времени. Итоги соревнований также подсчитываются отдельно для каждой лиги.

Рисунок 1 – Команда CUBE

Рисунок 1 – Команда «CUBE»

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

  1. Каждый день начинается с лекции. Лекции проводят известные призеры и победители чемпионатов мира по спортивному программированию, а также их тренеры и авторы популярных книг и сборников задач, посвященных спортивному программированию. Лекция посвящается актуальной тематике, связанной с решением задач зимней школы. Лектор делится с аудиторией своим опытом в решении определенного типа задач, отвечает на вопросы аудитории.
    Рисунок 2 – Лекция. Обсуждение алгоритма

    Рисунок 2 – Лекция. Обсуждение алгоритма

  2. После окончания лекции команды расходятся по аудиториям, где в соответствии с правилами олимпиады по спортивному программированию проводится основной этап соревнований. Соревнования длятся 4 часа. Команды решают задачи, предложенные автором сегодняшней лекции.
    Рисунок 3 – Этап соревнований

    Рисунок 3 – Этап соревнований

  3. По окончании основного этапа, после небольшого перерыва, лектор проводит разбор задач. Каждой задаче, вызвавшей трудности во время соревнований, уделяется отдельное внимание. Лектор подробно описывает алгоритм решения задачи, по желанию любой участник соревнований может дополнить лектора или предложить свой алгоритм решения.
  4. Сразу после разбора задач командам предоставляется возможность дорешать оставшиеся задачи. Все желающие возвращаются к своим компьютерам и продолжают решение задач. Данный этап не является обязательным – команда может оставить задачи нерешенными, или вернуться к ним в любое другое время – система доступна участникам по сети интернет. Задачи, решенные на этом этапе, уже не влияют на результаты текущего дня, но баллы за них повышают общий рейтинг команды.
  5. Подведение итогов дня. Каждый день определяются победители высшей и юниорской лиги. Автор текущего дня дополнительно отбирает понравившееся решение, исходя из собственных соображений, например, оригинальное, быстрое, единственное, короткое, красивое или упорное решение.

В последний день проводится подведение итогов соревнований, награждение победителей и закрытие зимней школы.

Рисунок 4 – Награждение победителей

Рисунок 4 – Награждение победителей

Хотелось бы заметить, что количество участников зимней школы растет с каждым годом. За пять лет общее количество команд, принимающих участие в этом мероприятии, выросло с 52 в 2008г. до 92 команд в 2012г. Также растет и уровень организации школы, и количество стран-участниц. Всё это, несомненно, положительно сказывается на развитии и популяризации спортивного программирования не только в Украине, но и в мире.

Немного о себе

Впервые я принял участие в олимпиаде по спортивному программированию на 3-м курсе университета. Тогда я узнал о том, что в рамках университета будет проводиться некая олимпиада по программированию, и решил попробовать свои силы. Участников было не так уж много – 10-15 человек. Задачи давались мне с трудом и несколько первых часов олимпиады я находился в последних строках турнирной таблицы. Но в последний час одна за одной были решены несколько задач, и в итоге я выбрался на первое место. Этим я привлек внимание капитана и тренера команды «CUBE» нашего университета.

Наилучших результатов команда «CUBE» добилась в 2011 году в составе: Наукович Григорий (капитан команды), Акчурин Владимир, Чирка Дмитрий, Некрашевич Сергей Петрович (тренер). В юниорской лиге зимней школы команда заняла 13 место. Позже в этом же составе команда стала участницей 1/2 финала чемпионата мира ACM ICPC (Association for Computing Machinery – International Collegate Programming Contest), в котором заняла 62 место.

Рекомендуемые ссылки