Russian Code Cup: как это было, как это будет

в 8:53, , рубрики: IT-образование, rcc, Блог компании Mail.Ru Group, Спортивное программирование, Учебный процесс в IT, метки: , ,

Russian Code Cup: как это было, как это будет
В 2013 году Mail.Ru Group организует очередную, третью по счёту, международную олимпиаду для самых сильных программистов – Russian Code Cup 2013. Мы задумывали олимпиаду как способ популяризации программирования, поднятия престижа профессии (и, конечно, как отличный повод измерить свою скорость мысли на интеллектуальной гоночной трассе).
Russian Code Cup: как это было, как это будет
Зачем это нужно? Российские программисты всегда были известны как одни из самых сильных в мире. И, конечно, хочется, чтобы этот статус оставался за ними и дальше.
Что касается мотивации — помимо соревновательного драйва, возможности попробовать свои силы и прочих бонусов, есть и материальная сторона. Участники финала получают ценные призы, а победителям из топ-3 полагается денежное вознаграждение: 10, 5 и 3 тыс. долларов соответственно. А еще все прошедшие квалификацию получают футболки с символикой Russian Code Cup — за прошедшие годы они уже стали своеобразным трофеем «бывалых».

Каждый год мы стараемся привнести в Russian Code Cup что-то новое. В 2013 году основа, касающаяся непосредственно соревнования, будет сохранена, а формат мероприятия станет ещё интереснее и интенсивнее.

Кратко напомним, как проходит Russian Code Cup

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

  • Быть не младше 18 лет
  • не являться сотрудником или близким родственником сотрудника Mail.Ru Group

Схематически структура RCC выглядит так:
Russian Code Cup: как это было, как это будет
Зарегистрироваться для участия в Russian Code Cup можно на сайте. Первый квалификационный раунд пройдёт 13 апреля, так что, если хотите успеть принять в нём участие, стоит поторопиться.

Все участники могут пробовать свои силы в каждом из квалификационных туров. Не получилось выйти в отборочный тур? Не отчаивайтесь — попробуйте ещё раз в следующем квалификационном туре.

Задания и техническую часть для Russian Code Cup обеспечивают специалисты Mail.Ru Group и эксперты Национального исследовательского университета информационных технологий, механики и оптики (НИУ ИТМО) во главе с Андреем Станкевичем. А. Станкевич — доцент кафедры компьютерных технологий ИТМО, лауреат Премии Президента Российской Федерации в области образования, лауреат премии ACM-ICPC Founder’s Award, лауреат специальной премии корпорации IBM, присуждаемой за успехи в тренерской работе.

Как устроены онлайн-туры?

Участники регистрируются на сайте Russian Code Cup. После получения задания каждый участник может отправить решение через форму на сайте. Далее решение проверяется автоматически через проверяющую систему.

Проверяющая система PCMS2 была написана больше 10 лет назад для полуфинала чемпионата мира по программированию. Помимо Russian Code Cup эту систему также используют для проведения таких соревнований как NEERC (полуфинал чемпионата мира по программированию), Всероссийская олимпиада по информатике и Всероссийская командная олимпиада по программированию. Система написана на Java и имеет распределенную архитектуру.

Устройство PCMS2 и схема взаимодействия с сервером Russian Code выглядит так:

Russian Code Cup: как это было, как это будет

Участники непосредственно взаимодействуют с веб-сервером russiancodecup.ru, расположенным на наших серверах. Инфраструктура Mail.Ru Group, поддерживающая многомиллионные сервисы, без проблем справляется с несколькими тысячами участников и зрителей. Отправленные на проверку решения пересылаются на сервер PCMS2, который располагается в НИУ ИТМО.

Именно на сервере PCMS2 хранятся все решения участников, осуществляется управление проверкой и подводятся итоги. Жюри олимпиады может наблюдать за ходом соревнований с помощью удобного приложения. На скриншоте можно видеть, как жюри изучает последнее удачное решение Владислава Епифанова, благодаря которому он выиграл отборочный раунд в 2012 году.

Russian Code Cup: как это было, как это будет

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

Для проверки решений на тестах системе приходится запускать программы участников. Запуск чужого кода – это потенциально опасное действие. Для этого в PCMS2 используются отдельные машины — инвокеры. Они же используются для распараллеливания процесса проверки. На инвокерах приняты серьезные меры для обеспечения безопасности запуска решений, запускаемые программы ограничены в правах, а PCMS2 следит за ограничениями по времени и памяти.

Таким образом, проверка решения состоит из следующих основных этапов:

  • участник отправляет решение с помощью веб-интерфейса на сайте russiancodecup.ru
  • решение пересылается на сервер PCMS2
  • если решение написано на компилируемом языке, то оно компилируется
  • решение запускается на инвокере на заранее подготовленных жюри тестах
  • результат проверки решения записывается в базу
  • обновляются текущие результаты соревнования

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

В 2012 году в Russian Code Cup приняли участие более 3000 человек. До финала дошел 51 участник, 22 из них — студенты. Распределение по странам: 35 человек — Россия, 9 — Украина, 4 — Беларусь, 2 — США, 1 – Швейцария. Russian Code Cup можно смело назвать мировым чемпионатом среди русскоязычных программистов – 35% участников не проживает на территории России. А из 10 первых программистов в рейтинге TopCoder все десять – участники Russian Code Cup 2012.

Отчёт о том, как прошел Russian Code Cup в 2012 году можно прочитать здесь.
В 2013 году мы ожидаем еще большего числа участников, зрелищного финала и интересных побед, поэтому, если вы увлекаетесь спортивным программированием или просто хотите попробовать свои силы – присоединяйтесь к RCC 2013.

Задавайте ваши вопросы по организации и условиям чемпионата в комментариях, я обязательно отвечу.

Автор: Dmitry21

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js