27 июня в онлайн формате состоялся Day Zero ICPC 2020 World Finals Moscow. Это событие можно считать точкой отсчета до финала который должен был пройти в Москве в этом году, но был перенесен на июнь 2021 года. В организации Day Zero участвовали ICPC Foundation и Московский физико-технический институт (МФТИ).
Крупнейшая в мире студенческая командная олимпиада по программированию ICPC впервые проводит мероприятие подобного масштаба в онлайн-формате. На одной платформе собрались победители и участники финалов прошлых лет, тренеры по спортивному программированию и студенты лучших технических университетов мира, а также обычные зрители, которые интересуются спортивным программированием.
«Финал ICPC — это грандиозный международный праздник. Когда весной стало понятно, что нам придется перенести его на 2021 год, вся команда ICPC буквально душу вложила в то, чтобы сделать из этого, казалось бы, печального обстоятельства еще большее торжество программирования, информатики и математики, подготовить нечто уникальное. Вынужденный онлайн-формат, наоборот, способствовал дополнительной широте охвата аудитории, популяризации спортивного программирования и красивой математики.
Десятки наших коллег из ФПМИ, Huawei, Яндекса и других компаний России и всего мира уже присоединились и продолжат активно присоединяться. А онлайн — давно наша стихия!» — подчеркнул Андрей Райгородский, директор Финала ICPC 2020 в Москве и директор Физтех-школы прикладной математики и информатики (МФТИ).
Мероприятие началось с официального приветствия представителей ICPC:
«Сообщество ICPC празднует Day Zero. Благодаря совместной работе волонтеров и тренеров мы предоставили студентам, изучающим компьютерные технологии, новые возможности для совершенствования своих навыков и мастерства. МФТИ, принимающий всемирный финал ICPC 2020 в Москве, установил новые стандарты для чемпионов ICPC», — отметил заместитель исполнительного директора ICPC Майкл Джеффри Донахью.
ICPC Graph Mining Challenge
Центральным событием Day Zero стал трехчасовой турнир ICPC Graph Mining Challenge, на него зарегистрировались более 7000 человек из 63 стран мира и 193 городов. Участникам было предложено поработать над сложной задачей на модулярность графа, не имееющей конкретного и определенного решения. В итоге участники представили более 11 000 решений, которые были рассмотрены судьями — финалистами чемпионата мира ICPC 2020 года, тренерами финала чемпионата мира ICPC 2020 года и остальными участниками. Данный турнир был организован при поддержке компании Huawei. В ходе проведения онлайн-мероприятий представители спонсора провели лекцию по применению математических наук в работе с беспроводной связью 5G. Позже к выступлению присоединилась компания IBM и рассказала об исследованиях в области квантовых технологий и работе с ними.
Участник соревнований Day Zero и призер прошлых чемпионатов ICPC Николай Калинин: «Задача на модулярность графа заключала в себе написание программы, которая некоторым оптимальным образом разбивает граф на связанные кластеры. Говоря простым языком, нужно, например, сгруппировать профили в социальной сети в несколько сообществ так, чтобы внутри каждой группы было много друзей, а между группами — не очень. Качество такого разбиения и определяется величиной, называемой модулярностью, о чем было рассказано в задаче. Поиск точного (лучшего возможного) решения на современных компьютерах невозможен за приемлемое время, поэтому участники соревновались в том, кто найдет наиболее хорошее решение за отведенные три часа. Этим данное соревнование и отличается от ICPC — в его задачах нужно всегда находить точное решение, поэтому в данном конкурсе важны другие навыки, а лидерами в таблице результатов становятся не те, кто выигрывал чемпионаты ICPC. Я рад, что получилось попасть в число призеров, это достаточно неплохой результат для меня в данном формате».
«Я рад, что Huawei предложил для турнира ICPC задачу на модулярность графа — тему, которая исключительно важна для построения алгоритмов поиска сообществ в сетях. Мне посчастливилось быть специалистом именно в теории графов. Вместе с моими учениками, среди которых двукратный чемпион мира ICPC Михаил Ипатов, мы занимаемся как математикой модулярности (считаем ее для конкретных графов и классов графов), так и ее применением. А на Физтехе есть целая лаборатория продвинутой комбинаторики и сетевых приложений, которая специализируется в том числе на изучении модулярности графов», — добавил Андрей Райгородский.
Спикер компании “МегаФон” также рассказал о применении теории графов и аналитики больших данных в коммуникациях. А в преддверии турнира Андрей Райгородский подготовил лекцию по теории графов для школьников старших классов “Графовые модели интернета”. Для участников же ICPC Challenge была опубликована лекция на английском языке под названием “Graph colorings and applications” («Раскраски графов и приложения»). На YouTube канале доступны все материалы Day Zero на английском языке, включая разбор задач ICPC Graph Mining Challenge с участием Андрея Райгородского. Подробное расписание и ссылки на видео можно найти на сайте ICPC University Commons.
Опыт всему учитель
Вторая часть Day Zero была посвящена выступлениям официальных партнеров, выпускников и победителей прошлых лет и тренера команды ICPC. Русскоговорящие спикеры программы составили большинство среди специалистов, что свидетельствует о лидирующей позиции российских экспертов в международной IT повестке.
В ходе мероприятия также выступил золотой медалист ICPC 2007 Михаил Дворкин и рассказал о лучших практиках спортивного программирования. Затем и другие выпускники ICPC поделились историями о запуске собственных стартапов и опыте в качестве предпринимателей:
Никита Шамгунов, соруководитель компании MemSQL: «Я выиграл бронзовую медаль в соревнованиях ICPC еще в 2001 году, и это было безумно весело. Я начинал свою карьеру в сфере SQL Server, потому что мне было интересно разобраться с базой данных изнутри, решать технические задачи и находить интересные выходы из ситуаций — обрести такие навыки мне помог именно ICPC».
Деон Николас, один из основателей компании Forethought: «Я всегда чувствовал, что ICPC — это мое место. В старшей школе у меня плохо шли такие предметы, как история, я всегда проваливал тесты. Поэтому еще тогда я задумался о технической помощи школьникам и студентам в понимании предмета, привлечь внимание и заинтересовать — с этим мне помогли в ICPC, и сейчас я занимаюсь разработкой таких алгоритмов в Forethought».
Tips and tricks
К предстоящему финалу готовятся не только будущие участники — главный судья ICPC рассказал о важности опыта в соревнованиях и его роли в качественном и честном оценивания на конкурсе. Его выступление продолжил один из самых титулованных спортсменов ICPC (победитель чемпионатов в 2013 и 2015 года) — Геннадий Короткевич. Он поделился своими советами и рекомендациями по участию в соревнованиях, которые помогут будущим участникам быстрее справляться с задачами: «Никогда не сдавайтесь. Вряд ли такая же проблема появится снова под другим контекстом. Поэтому, решив одну, вы уже никогда к ней не вернетесь».
Михаил Тихомиров тренирует студенческие команды со всего мира на сборах по подготовке к международному чемпионату по спортивному программированию ICPC, а также выступает тренером команд МФТИ. Он поделился своим опытом о прошедших ранее соревнованиях и советами для участников следующего чемпионата по программированию:
«Наша команда очень серьезно относится к подготовке ко всем соревнованиям ICPC. Наверное, поэтому сейчас мы можем похвастаться некоторыми показательными результатами: завоевали медали чемпионатов мира ICPC за последние четыре года, провели несколько ICPC Workshops, где помогали другим командам в подготовке к соревнованиям, победили и во многих других промежуточных соревнованиях. У ICPC замечательный коллектив, мы очень счастливы быть его частью и будем стараться добиваться новых результатов. Также с нетерпением ждем знакомства с новыми участниками и командами для получения новых знаний и навыков».
Завершающими выступлениями в ходе проведения Day Zero ICPC стали лекции представителей AWS (Amazon Web Services), которые рассказали об опыте работы в больших IT-корпорациях, презентация спикеров «Райффайзенбанка» о работе с теорией графов в банкинге, а также сообщение сотрудников компании «Яндекс» о работе над беспилотными автомобилями.
Day Zero — это онлайн-событие, которое подготовлено в рамках ICPC University Commons — программы, нацеленной на совершенствование в области решения алгоритмических задач на конкурсной основе.
Онлайн-площадка Day Zero 27 июня на один день объединила мировое сообщество, участников региональных этапов соревнований ICPC, победителей финала ICPC и выпускников прошлых лет, также тренеров по спортивному программированию, представителей индустриальных партнеров и академической среды.
Чемпионат ICPC зародился в 1977 году в США. Сейчас в нем ежегодно принимают участие студенты более 3 тыс. ведущих университетов из 110 стран мира, соревнования проходят на 530 площадках, а общее число студентов, занятых ежегодно в чемпионате, превышает 320 тыс. человек. С участниками работает около 5,5 тыс. тренеров.
По правилам в соревнованиях могут участвовать студенты и аспиранты одного вуза до 24 лет, по трое в команде. За пять часов они решают алгоритмические задачи, которых в одном соревновании может быть от восьми до двенадцати. Соревнования проходят на языках программирования С++, Java, Python и Kotlin. За день до соревнования проходит генеральный репетиция для проверки оборудования и систем тестирования.