Международный студенческий конкурс по программированию , известный как ICPC , является ежегодным многоуровневым соревнованием по программированию среди университетов мира. [1] Под руководством исполнительного директора ICPC и профессора университета Бэйлора Уильяма Б. Паучера, ICPC проводит автономные региональные соревнования, охватывающие шесть континентов, которые завершаются всемирным финалом каждый год. В 2018 году в ICPC приняли участие 52 709 студентов из 3 233 университетов в 110 странах.
ICPC действует под эгидой Фонда ICPC и действует на основании соглашений с принимающими университетами и некоммерческими организациями, все в соответствии с Политикой и процедурами ICPC. [2] С 1977 по 2017 год ICPC проводился под эгидой ACM и назывался ACM-ICPC. [3]
ICPC берет свое начало от соревнования, проведенного в Техасском университете A&M в 1970 году под эгидой отделения Alpha Почетного общества компьютерных наук Upsilon Pi Epsilon (UPE). Это первоначальное соревнование по программированию называлось First Annual Texas Collegiate Programming Championship, и каждый университет был представлен командой из пяти человек. Использовался компьютер IBM System/360 model 65 , который был одной из первых машин с системой DAT (Dynamic Address Translator, также известной как «пейджинг») для доступа к памяти. В число команд, которые участвовали, входили Texas A&M, Texas Tech, University of Houston и пять или шесть других университетов/колледжей Техаса. Было три задачи, которые нужно было решить, и совокупное время от «старта» до «успешного завершения» определяло победителей, занявших первое, второе и третье места. Используемым языком программирования был Fortran . Программы были написаны на листах кодирования, набраны на карточках Холлерита и отправлены на выполнение. Команда Хьюстонского университета выиграла соревнование, успешно решив все три задачи с учетом времени. Команды, занявшие второе и третье места, не смогли успешно решить все три задачи. Соревнование приобрело свою нынешнюю форму многоуровневого соревнования в 1977 году, а первый финал проводился совместно с конференцией ACM Computer Science.
С 1977 по 1989 год в соревновании участвовали в основном команды из четырех человек из университетов по всей территории Соединенных Штатов и Канады. Штаб-квартира ICPC находилась в Университете Бэйлора с 1989 по 2022 год, а региональные соревнования, организованные в рамках мирового университетского сообщества, превратили ICPC в мировое соревнование. Чтобы расширить доступ к мировому финалу, команды были сокращены до трех студентов в течение первых пяти учебных лет. [ необходима цитата ]
С 1997 по 2017 год спонсором ICPC была корпорация International Business Machines (IBM). За это время участие в конкурсе выросло более чем на 2000%. В 1997 году в нем приняли участие 840 команд из 560 университетов. В 2017 году в региональных соревнованиях приняли участие 46 381 студент из 2948 университетов в 103 странах на шести континентах. Организованный как высоколокализованный внеклассный университетский интеллектуальный вид спорта и действующий как глобально координируемая некорпоративная ассоциация, действующая по соглашениям с принимающими университетами и некоммерческими организациями, ICPC открыт для квалифицированных команд из любого университета мира. [ необходима ссылка ]
UPE оказывает постоянную поддержку с 1970 года и чествует финалистов чемпионата мира с первого финала в 1976 году. ICPC обязан взносам членов ACM и помощи ACM с 1976 по 2018 год. Университет Бейлора служил с 1985 года, принимая штаб-квартиру ICPC с 1989 по 2022 год. ICPC работает под эгидой Фонда ICPC, который предоставляет Глобальную штаб-квартиру ICPC для обслуживания глобально координируемого сообщества, чьи мероприятия проводятся в соответствии с соглашениями с принимающими университетами и некоммерческими организациями, чтобы гарантировать, что участие в ICPC открыто для квалифицированных команд из любого университета мира. См. Политики и процедуры ICPC. [2]
Финал чемпионата мира ICPC (ежегодный финал чемпионата мира по программированию среди студентов) — это финальный раунд соревнований. За свою историю он стал 4-дневным мероприятием, проводимым на лучших площадках мира, в котором приняли участие 140 команд в финале чемпионата мира 2018 года. Команды, ставшие чемпионами мира в последнее время, были отмечены главой государства своей страны. В последние годы количество откликов СМИ достигло отметки в один миллиард. [ необходима цитата ]
С 2000 по 2022 год только команды из России , Китая и Польши побеждали в финалах чемпионата мира ICPC. [4] Участие в Северной Америке намного меньше, чем в остальном мире, что частично объясняется предполагаемой низкой выгодой от участия. [5]
Соревнования ICPC являются командными. Действующие правила предусматривают, что каждая команда состоит из трех студентов. Участники должны быть студентами университета, которые имели менее пяти лет университетского образования до начала соревнований. Студенты, которые ранее участвовали в двух мировых финалах или пяти региональных соревнованиях, не имеют права участвовать снова. [6] [7]
В ходе каждого соревнования командам из трех человек дается 5 часов на решение от восьми до пятнадцати задач по программированию (восемь типичных задач для региональных соревнований и двенадцать для финалов). Они должны представить решения в виде программ на C , C++ , Java , Ada , [8] Python [9] [10] или Kotlin [11] (хотя не гарантируется, что каждая задача разрешима на каком-либо определенном языке, на сайте ICPC указано, что «судьи решат все задачи на Java и C++» как для региональных, так и для мировых финалов). Затем программы запускаются на тестовых данных. Если программа не дает правильного ответа, команда уведомляется об этом и может представить другую программу.
Победителем становится команда, которая правильно решит больше всего задач. Если необходимо ранжировать команды для получения медалей или призов среди команд, набравших равное количество очков, место команд определяется суммой времени, затраченного на каждую точку, когда они представили правильные решения, плюс 20 минут за каждую отклоненную подачу в конечном итоге решенной задачи. Время не тратится на задачу, которая не решена. [12]
По сравнению с другими соревнованиями по программированию (например, Международной олимпиадой по информатике ), ICPC характеризуется большим количеством задач (восемь и более задач всего за 5 часов). Еще одной особенностью является то, что каждая команда может использовать только один компьютер, хотя в командах по три студента. Это еще больше увеличивает давление времени. Для победы необходимы хорошая командная работа и способность выдерживать давление.
Финал чемпионата мира ACM-ICPC 2004 года проводился в Obecni Dum в Праге Чешским техническим университетом в Праге. В отборочных турах соревновались 3150 команд, представлявших 1411 университетов из 75 стран, 73 из которых вышли в финал чемпионата мира. Победителем стал Санкт-Петербургский институт точной механики и оптики из России, решивший 7 из 10 задач. [13] Золотыми медалистами стали Санкт-Петербургский институт точной механики и оптики, Королевский технологический институт (Швеция), Белорусский государственный университет и Пермский государственный университет (Россия).
Финал чемпионата мира 2005 года состоялся в отеле Pudong Shangri-La в Шанхае 6 апреля 2005 года, его принимал Шанхайский университет Цзяотун . 4109 команд, представлявших 1582 университета из 71 страны, соревновались в отборочных турах, и 78 из этих команд прошли в финал чемпионата мира. Шанхайский университет Цзяотун завоевал свой второй титул чемпиона мира, решив 8 из 10 задач. [14] Золотыми медалистами стали Шанхайский университет Цзяотун, Московский государственный университет (Россия), Санкт-Петербургский институт точной механики и оптики (Россия) и Университет Ватерлоо (Канада).
Финал чемпионата мира ACM-ICPC 2006 года состоялся в Сан-Антонио , штат Техас , и был организован Университетом Бэйлора . [15] 5606 команд, представлявших 1733 университета из 84 стран, соревновались в отборочных турах, и 83 из этих команд вышли в финал чемпионата мира. Победителем стал Саратовский государственный университет из России, решивший 6 из 10 задач. [16] Золотыми медалистами стали Саратов, Ягеллонский университет (Польша), Алтайский государственный технический университет (Россия), Университет Твенте (Нидерланды).
Мировой финал ACM-ICPC 2007 года проводился в Tokyo Bay Hilton, в Токио, Япония, с 12 по 16 марта 2007 года. Мировой финал был организован японским отделением ACM и исследовательской лабораторией IBM Tokyo. На региональном уровне соревновались около 6099 команд на шести континентах. Восемьдесят восемь команд вышли в мировой финал. Варшавский университет выиграл свой второй чемпионат мира, решив 8 из 10 задач. Золотыми медалистами стали Варшавский университет, Университет Цинхуа (Китай), Санкт-Петербургский институт точной механики и оптики (Россия) и Массачусетский технологический институт (США). Серебряными медалистами стали Шанхайский университет Цзяотун (Китай) и 3 других университета.
Мировой финал ACM-ICPC 2008 года состоялся в отеле Fairmont Banff Springs в Банфе, Альберта, Канада, с 6 по 10 апреля 2008 года. [17] Мировой финал проводился Альбертским университетом. В мировом финале приняли участие 100 команд из 6700 команд, участвовавших в предыдущих раундах. [18] Санкт -Петербургский институт точной механики и оптики выиграл свой второй чемпионат мира. Массачусетский технологический институт , Ижевский государственный технический университет и Львовский национальный университет также получили золотые медали.
Мировой финал ACM-ICPC 2009 года прошёл в Стокгольме, Швеция, с 18 по 22 апреля в кампусе принимающего учреждения, Королевского технологического института KTH , а также в Гранд-отеле, Radisson Strand и отеле Diplomat. За звание чемпиона мира боролись 100 команд из более чем 200 региональных центров. Санкт-Петербургский институт точной механики и оптики защитил свой титул, выиграв свой третий чемпионат мира. Университет Цинхуа , Санкт-Петербургский государственный университет и Саратовский государственный университет также получили золотые медали. [19] Мировой финал 2009 года стал пионером в области прямой видеотрансляции всего конкурса, включавшей такие элементы, как комментарии экспертов, прямые трансляции команд и их компьютерных экранов и интервью с судьями, тренерами и высокопоставленными лицами. Мероприятие транслировалось онлайн, а также шведским телеканалом Axess TV .
Финал чемпионата мира ACM-ICPC 2010 года прошёл в Харбине , Китай. Организатором выступил Харбинский инженерный университет . Шанхайский университет Цзяотун выиграл чемпионат мира. [20] Московский государственный университет , Национальный Тайваньский университет и Киевский национальный университет имени Тараса Шевченко также получили золотые медали.
Финал чемпионата мира ACM-ICPC 2011 года состоялся в Орландо, Флорида, и был организован главным спонсором IBM . Первоначально конкурс планировалось провести в Шарм-эль-Шейхе , Египет , в феврале, но он был перенесен из-за политической нестабильности, связанной с Арабской весной . Университет Чжэцзян занял первое место, а Университет Мичигана в Энн-Арборе, Университет Цинхуа и Санкт-Петербургский государственный университет заняли 2-е, 3-е и 4-е места соответственно, получив золотые медали. [21] Китай (2G) США (1G) Россия (1G, 2S, 2B) Германия (1S) Украина (1S) Польша (1B) Канада (1B)
Финал чемпионата мира 2012 года состоялся в Варшаве, Польша. Он был открыт 15 мая и принимал Варшавский университет . [22] Санкт-Петербургский институт точной механики и оптики выиграл свой четвертый чемпионат мира, больше, чем любой другой университет на тот момент. Варшавский университет , Московский физико-технический институт и Шанхайский университет Цзяотун заняли 2-е, 3-е и 4-е места соответственно, получив золотые медали. Россия (2G, 1B) Китай (1G, 1S) Польша (1G) США (1S) Гонконг (1S) Беларусь (1S, 1B) Канада (1B) Япония (1B)
Финал чемпионата мира 2013 года прошел в Санкт-Петербурге, Россия. Он был открыт 3 июля и был организован НИУ ИТМО .
Тринадцать лучших команд 2013 года, получивших медали:
Япония(1G) Россия(1G,1S,2B) Китай(1G,1B) Тайвань(1G) Польша(1S,1B) Украина(1S) Беларусь(1S) США(1B)
Финал чемпионата мира 2014 года прошел в Екатеринбурге, Россия, с 21 по 25 июня, его принимал Уральский федеральный университет . Финальные соревнования состоялись 25 июня. [25] В соревнованиях приняли участие 122 команды, а чемпионом мира стал Санкт-Петербургский государственный университет . [26]
Следующие команды были награждены медалями на ICPC 2014: [26]
Россия(2G,2B) Китай(1G,1S,1B) Тайвань(1G) Япония(1S) Польша(1S) Хорватия(1S) Словакия(1B)
Золото
Серебро
бронза
Финал чемпионата мира 2015 года проходил в Марракеше ( Марокко ) с 16 по 21 мая, его хозяевами выступили Университет Мухаммеда Пятого , Университет Аль-Ахавайн и Университет Мундиаполис. Финальные соревнования состоялись 20 мая. За звание чемпиона мира боролись 128 команд. Победителем стал Санкт-Петербургский университет ИТМО, впервые решивший все задачи (13). Среди других призеров были команды из России (2G), Китая (1G, 1B, 1S), Японии (1G), США (1B, 1S), Хорватии (1S), Чехии (1S), Кореи (1B) и Польши (1B).
Золото
Серебро
бронза
Финал чемпионата мира 2016 года проходил в Пхукете ( Таиланд ) с 16 по 21 мая. Финальные соревнования состоялись 19 мая. За звание чемпиона мира боролись 128 команд. Победителем стал Санкт-Петербургский государственный университет , решивший 11 из 13 задач. Первыми призерами стали Шанхайский университет Цзяотун, также решивший 11 задач, но отставший от победившей команды на 7 минут.
Золото
Серебро
бронза
Финал чемпионата мира 2017 года прошел в Рапид-Сити, Южная Дакота ( США ) с 20 по 25 мая, организованный Excellence in Computer Programming. Из-за проблем с визами несколько команд не смогли присутствовать на месте, в связи с чем затронутым школам разрешена прямая квалификация на ICPC 2018 помимо обычных квалификационных мест.
Победителем стал Университет ИТМО . Медалями ICPC 2017 года были награждены команды следующих стран: Россия (2 золота, 1 серебро, 1 бронза), Польша (1 золото), Южная Корея (1 золото, 1 бронза), Китай (3 серебра), Швеция (1 бронза), Япония (1 бронза).
Золото
Серебро
бронза
Финал чемпионата мира 2018 года проходил в Пекине ( Китай ) с 15 по 20 апреля на базе Пекинского университета .
Архивировано на Wayback Machine (архивировано 24 апреля 2018 г.)
В Мировом финале 2018 года задачи «Завоевание мира» и «Непересекающийся конный поход» не были решены.
Финал чемпионата мира 2019 года проходил в Порту ( Португалия ) с 31 марта по 5 апреля 2019 года. Организаторами выступили Университет Порту и город Порту. [28]
Золото
Серебро
бронза
Из-за пандемии COVID-19 финал чемпионата мира 2020 года был отложен. [29] Финал проходил в Москве ( Россия ) с 1 по 5 октября 2021 года в Московском физико-техническом институте . [30] Чтобы избежать путаницы с датами, во всех официальных материалах он назывался «Финал чемпионата мира в Москве» вместо 2020 или 2021.
"ICPC World Finals Moscow final standings". ICPC World finals . Архивировано из оригинала 2021-10-05 . Получено 2021-10-16 .
В Мировом финале 2020–2021 гг. не были решены задачи K (Space Walls) и L (Sweep Stakes).
45-й финал чемпионата мира, изначально запланированный на 2021 год, состоялся в Дакке ( Бангладеш ) в Университете Азии и Тихого океана . [32] из-за изменений в расписании из-за пандемии COVID-19 . Чтобы избежать путаницы с датами, во всех официальных материалах он назывался «Финал чемпионата мира в Дакке».
Источник: [33]
Для синхронизации с расписанием после всех переносов из-за пандемии Covid-19 46-й и 47-й мировые финалы должны были состояться в одно и то же время в ноябре 2023 года в Шарм-эль-Шейхе . Из-за войны Израиля и ХАМАС и связанных с этим проблем безопасности он был перенесен еще раз и, наконец, состоялся в Луксоре в апреле с 14 по 19 апреля 2024 года. Чтобы избежать путаницы с датами, мероприятие было названо World Finals Luxor (World Finals Sharm до переноса), с двумя соревнованиями как 46-м и 47-м по отдельности, при необходимости, во всех официальных материалах.
Два соревнования проводились параллельно, с пересекающимися наборами задач. В 47-м финале, из-за очень близких результатов (менее 40 штрафных минут разницы между 12 и 16 местом), на следующем финале в Астане были разыграны дополнительные бронзовые медали.
Источник: Источник: [34] [35]
48-й финал чемпионата мира прошел 15–20 сентября 2024 года в Астане (Казахстан) и был организован Казахстанской федерацией спортивного программирования.
Источник: [36]
Некоторые бывшие финалисты ICPC добились выдающихся достижений в индустрии программного обеспечения и исследованиях. Среди них Адам Д'Анджело , бывший технический директор Facebook и основатель Quora ; Николай Дуров , соучредитель Telegram Messenger ; Матей Захария , создатель Apache Spark ; Тони Хси , генеральный директор Zappos и венчурный капиталист; Амит Сахай , известный профессор, специализирующийся на безопасности и криптографии; Крейг Сильверстайн , первый сотрудник Google ; и Якуб Пачоцки, главный научный сотрудник OpenAI . [ требуется ссылка ]