Змагання з програмування це гра навички, яка зазвичай проводиться за допомогою мережі Інтернет або через локальну мережу, під час якого учасники намагаються програмувати згідно з наведеними специфікаціями. Учасників змагань називають спортивними програмістами. Змагання з програмування мають визнання та підтримку багатьма ІТ компаніями, як наприклад Google, та Facebook. Існує декілька організацій, які проводять змагання з програмування на регулярній основі.
Змагання з програмування зазвичай вимагають від організаторів надання списку логічних або математичних завдань для учасників змагань (кількість яких може бути від кількох десятків до кількох тисяч), а учасники мають написати комп'ютерні програми, здатні вирішувати кожне з завдань. Переможців визначають здебільшого за кількістю правильно вирішених завдань за найменший час, але також можуть бути враховані інші фактори (якість вихідних даних, час виконання, розмір програми тощо).
Історія
Одне з найдавніших змагань це ICPC, яке з'явилося в 70-х роках і станом на 2011 рік включає в себе 88 країн. Цікавість до спортивного програмування значно виросла за останні роки і багато в чому поєднана зі зростанням Інтернету, так як це заохочує проводити міжнародні онлайн-змагання без урахування географічних проблем.
Огляд
Мета змагань з програмування це написання початкового коду комп'ютерних програм, які здатні вирішувати запропоновані завдання. Переважна більшість проблем, що містяться у змаганнях з програмування, є математичними або логічними. Зазвичай ці завдання належать до наступних категорій: комбінаторика, теорія чисел, теорія графів, геометрія, аналіз рядків та структури даних. Проблеми пов'язані зі штучним інтелектом також популярні на деяких змаганнях.
Незалежно від категорії завдання, процес вирішування завдання може бути поділений на два основних етапи: розробка алгоритму та кодування алгоритму обраною мовою програмування (список дозволених мов програмування залежить від конкретного змагання).
На більшості змагань визначення результатів проводиться автоматично за допомогою спеціальних систем. Кожен розв'язок завдання запускається на сервері. На вхід цьому розв'язку подається список тестових прикладів (зазвичай секретний). У більшості випадків вирішення проблем маркуються за принципом «все або нічого», тобто якщо вирішення спрацювало неправильно на хоча б одному з тестових прикладів, воно не зараховується. Однак, деякі змагання використовують процентну систему оцінювання, тобто за розв'язок дають стільки відсотків, скільки відсотків тестових прикладів було розв'язано правильно.
Типи змагань
Існують два основніх типи змагань: короткострокові та довгострокові. Кожний раунд короткострокових змагань триває від 1 до 5 годин. Довгострокові змагання тривають від кількох діб до кількох місяців.
Короткострокові
- ICPC - одне з найстаріших змагань для студентів ВНЗ у складі команд з трьох осіб
- - змагання з інформатики для школярів. Містить письмову частину та кодування
- Google Code Jam - змагання, яке проводиться з 2003 року. Засновано та спонсується компанією Google
- Facebook Hacker Cup - змагання, яке проводиться з 2011 року. Засновано і спонсується компанією Facebook
- Ad Infinitum - математичне змагання з програмування
- Cook-Off - змагання за принципами ICPC, яке проводиться останньої суботи кожного місяця
- LunchTime - змагання для школярів, яке проводиться останнь\ суботи кожного місяця
- SnackDown - річне змагання з кількох раундів, яке проводиться за підтримки
- - річне змагання для студентів IEEE, проводиться з 2006 за підтримки IEEE
- IOI - одне з найстаріших змагань для школярів
- TopCoder Open - Algorithm - змагання, яке проводиться з 2004 року за підтримки TopCoder
- Яндекс Алгоритм - змагання, яке проводиться з 2013 року за підтримки компанії Яндекс;
У більшості вищезгаданих змагань, оскільки кількість учасників досить велика, змагання, як правило, організовуються в декілька раундів. Вони зазвичай дозволяють приймати учать онлайн у всіх раундах, крім останнього, який вимагає участі очно. Особливим винятком є IEEEXtreme, що є щорічним 24-годинним змаганням з програмування. Найкращі учасники IOI та ICPC отримують золоті, срібні та бронзові медалі, а в інших конкурсах фіналісти нагороджуються грошовими призами. Крім того, потрапляння в топ в таблицях результатів таких змагань може зацікавити рекрутерів від програмних та інтернет-компаній.
Довгострокові
- Long Challenges
- Google — змагання для студентів, що проходило у 2009–2011 роках
- Week of Code - тижневе змагання, організоване
- — Змагання з програмування штучного інтелекту. Halite I проводився з листопада 2016 по лютий 2017, Halite II проводиметься з 23 жовтня 2017 по 22 лютого 2018. Обидва змагання спонсовані Two Sigma and Cornell Tech Гугл також спонсує Halite II
- — щорічне 3-денне змагання, проводиться з 1998 року при підтримці
- Kaggle
- — відкрите змагання з програмування штучного інтелекту
- TopCoder Marathon matches
- CodeCup.nl — щорічне змагання штучного інтелекту в настільних іграх. Правила нової гри з'являються у вересні, остаточний турнір проводиться у січні.
Онлайн змагання та ресурси для підготовки
Програмісти з усього світу створили і підтримують декілька інтернет-ресурсів присвячених змаганням з програмування. Вони пропонують автономні змагання з винагородами або без них. Архіви минулих змагань є, в свою чергу, популярним ресурсом для тренувань у вирішенні подібних завдань. Серед яких:
Назва | Опис | Вебсайт |
---|---|---|
AtCoder | Платформа для проведення змагань, створена командою японських програмістів-змагунів. | atcoder.jp |
CodeChef | Підтримується , проводить 10-денне змагання та пару короткострокових змагань щомісяця (одне в стилі IOI і одне в стилі ICPC), та предоставляє безкоштовну платформу для проведення змагань для освітніх інституцій. Два найкращих учасники довгострокового змагання отримують грошову винагороду, десять найкращих учасників отримують футболки. | www.codechef.com |
CodeCup | Щорічне міжнароджне змагання в галузі штучного інтелекту настільних ігор. Проводиться Олімпіадою з інформатики Нідерландів з 2003 року. | CodeCup.nl |
Codeforces | Російський ресурс, підтримується Саратовським університетом, надає доступ до регулярних (до двох на тиждень) коротких змагань. Спеціальні можливості: можливість перевірити коректність рішень інших учасників під час «хакерської фази», віртуальні змагання, тренування і т. ін. | codeforces.com |
Coderbyte | Містить задачі з програмування, які можна вирішувати в онлайновому редакторі на одній з дев'яти мов програмування. Також надає доступ до ресурсів з поясненням роботи алгоритмів, вводним курсом з JavaScript, відеоматеріалами та матеріалами з підготовки до інтерв'ю. | www.coderbyte.com |
CodinGame | Головоломки (зі зростаючою складністю), . Проводить регулярні онлайн-змагання (змагання штучного інтелекту, задачі оптимізації) | www.codingame.com |
GeeksforGeeks | Вебсайт, присвячений програмуванню зі статтями та практичними завданнями. Сайт націлений на підготовку до проходження технічних інтрев'ю. Був започаткований у 2009 році, а платформа для змагань з програмування була додана у 2015 році. | geeksforgeeks.org |
HackerEarth | Компанія, що базується у місті Бенгалуру, Індія, та проводить онлайн-змагання націлені на оцінку для набору персоналу. | www.hackerearth.com |
HackerRank | Започаткований 2012 року, пропонує завдання з програмування у різних областях інформатики. Також проводить річний захід Codesprints, який допомагає з'єднати програмістів і стартапи Кремнієвої долини. | hackerrank.com |
Open Kattis | Відкрита версія системи оцінювання змагань Kattis, що містить архів із понад 2600 завдань. Система заснована у 2005 році у Швеції. Головною метою системи було її використання у курсах програмування і комп'ютерних наук, але Kattis також використовують для проведення престижних змагань, таких як світовий фінал ICPC. | open.kattis.com |
POJ | Система для онлайн-суддівства Пекінського університету для змагань ICPC, створена Ying Fuchen, Xu Pengcheng та Xie Di. Містить понад 3000 завдань. | poj.org |
Project Euler | Велика колекція обчислювальних математичних завдань (тобто маючих не пряме відношення до програмування, але потребуючих навичок кодування для їх вирішення). | projecteuler.net |
SPOJ | Польська платформа для онлайн-суддівства, яка надає доступ до багатьох навчальних задач, і надає платформу для інших організаторів для проведення своїх змагань з програмування. | www.spoj.com |
TopCoder | Ресурс та компанія, що базується у США, організує змагання та дає доступ до задач індустрії як до різновиду фрилансу; пропонує кілька коротких і кілька довгих («марафони») змагань щороку. Спеціальні можливості: учасники мають змогу перевірити правильність рішень інших учасників після фази кодування та перед фінальним автоматичним тестуванням (так званою «фазою завдання»). | www.topcoder.com |
UVa Online Judge | Містить архів із понад 4500 завдань для тренувань. Проводить регулярні онлайн-змагання. Заснований 1995 року, це один з найдавніших подібних сайтів. | uva.onlinejudge.org |
Див. також
- — всеукраїнський чемпіонат з розробки програмного забезпечення серед junior, middle та senior програмістів
Посилання
- . google.com. Архів оригіналу за 19 лютого 2016. Процитовано 20 лютого 2016.
- . topcoder.com. Архів оригіналу за 16 лютого 2012.
- . Facebook. Архів оригіналу за 5 липня 2013. Процитовано 20 лютого 2016.
- Programming problems and Competitions :: HackerRank. HackerRank. Процитовано 20 лютого 2016.
- . codechef.com. Архів оригіналу за 11 лютого 2016. Процитовано 20 лютого 2016.
- . codechef.com. Архів оригіналу за 12 квітня 2016. Процитовано 15 жовтня 2019.
- . HackerRank. Архів оригіналу за 16 листопада 2017. Процитовано 20 лютого 2016.
- . www.halite.io. Архів оригіналу за 16 травня 2022. Процитовано 19 червня 2022.
- . tech.cornell.edu. Архів оригіналу за 30 жовтня 2017. Процитовано 1 січня 2018.
- . Архів оригіналу за 31 січня 2023. Процитовано 1 січня 2018.
- Wevers, Lesley (2014). (PDF). University of Twente. Архів оригіналу (PDF) за 13 квітня 2017. Процитовано 16 вересня 2018.
- Bloomfield, Aaron; Sotomayor, Borja. (PDF). SIGCSE '16: Proceedings of the 47th ACM Technical Symposium on Computing Science Education. Архів оригіналу (PDF) за 20 березня 2020. Процитовано 24 березня 2020.
- Enström, E.; Kreitz, G.; Niemelä, F.; Söderman, P.; Kann, V. (2011). (PDF). IEEE Frontiers in Education Conference. Архів оригіналу (PDF) за 20 серпня 2020. Процитовано 24 березня 2020.
Зовнішні джерела
- Проект з відкритим кодом для проведення змагань
- Contest Management System [ 11 червня 2018 у Wayback Machine.] Засіб з відкритим кодом на мові Python для проведення і управління змаганнями з програмування на сервері IOI 2012 and IOI 2013.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Zmagannya z programuvannya ce gra navichki yaka zazvichaj provoditsya za dopomogoyu merezhi Internet abo cherez lokalnu merezhu pid chas yakogo uchasniki namagayutsya programuvati zgidno z navedenimi specifikaciyami Uchasnikiv zmagan nazivayut sportivnimi programistami Zmagannya z programuvannya mayut viznannya ta pidtrimku bagatma IT kompaniyami yak napriklad Google ta Facebook Isnuye dekilka organizacij yaki provodyat zmagannya z programuvannya na regulyarnij osnovi Oleg Naver bagatorazovij peremozhec mizhnarodnoyi olimpiadi z informatiki Zmagannya z programuvannya zazvichaj vimagayut vid organizatoriv nadannya spisku logichnih abo matematichnih zavdan dlya uchasnikiv zmagan kilkist yakih mozhe buti vid kilkoh desyatkiv do kilkoh tisyach a uchasniki mayut napisati komp yuterni programi zdatni virishuvati kozhne z zavdan Peremozhciv viznachayut zdebilshogo za kilkistyu pravilno virishenih zavdan za najmenshij chas ale takozh mozhut buti vrahovani inshi faktori yakist vihidnih danih chas vikonannya rozmir programi tosho IstoriyaOdne z najdavnishih zmagan ce ICPC yake z yavilosya v 70 h rokah i stanom na 2011 rik vklyuchaye v sebe 88 krayin Cikavist do sportivnogo programuvannya znachno virosla za ostanni roki i bagato v chomu poyednana zi zrostannyam Internetu tak yak ce zaohochuye provoditi mizhnarodni onlajn zmagannya bez urahuvannya geografichnih problem OglyadMeta zmagan z programuvannya ce napisannya pochatkovogo kodu komp yuternih program yaki zdatni virishuvati zaproponovani zavdannya Perevazhna bilshist problem sho mistyatsya u zmagannyah z programuvannya ye matematichnimi abo logichnimi Zazvichaj ci zavdannya nalezhat do nastupnih kategorij kombinatorika teoriya chisel teoriya grafiv geometriya analiz ryadkiv ta strukturi danih Problemi pov yazani zi shtuchnim intelektom takozh populyarni na deyakih zmagannyah Nezalezhno vid kategoriyi zavdannya proces virishuvannya zavdannya mozhe buti podilenij na dva osnovnih etapi rozrobka algoritmu ta koduvannya algoritmu obranoyu movoyu programuvannya spisok dozvolenih mov programuvannya zalezhit vid konkretnogo zmagannya Na bilshosti zmagan viznachennya rezultativ provoditsya avtomatichno za dopomogoyu specialnih sistem Kozhen rozv yazok zavdannya zapuskayetsya na serveri Na vhid comu rozv yazku podayetsya spisok testovih prikladiv zazvichaj sekretnij U bilshosti vipadkiv virishennya problem markuyutsya za principom vse abo nichogo tobto yaksho virishennya spracyuvalo nepravilno na hocha b odnomu z testovih prikladiv vono ne zarahovuyetsya Odnak deyaki zmagannya vikoristovuyut procentnu sistemu ocinyuvannya tobto za rozv yazok dayut stilki vidsotkiv skilki vidsotkiv testovih prikladiv bulo rozv yazano pravilno Tipi zmaganIsnuyut dva osnovnih tipi zmagan korotkostrokovi ta dovgostrokovi Kozhnij raund korotkostrokovih zmagan trivaye vid 1 do 5 godin Dovgostrokovi zmagannya trivayut vid kilkoh dib do kilkoh misyaciv Korotkostrokovi ICPC odne z najstarishih zmagan dlya studentiv VNZ u skladi komand z troh osib zmagannya z informatiki dlya shkolyariv Mistit pismovu chastinu ta koduvannya Google Code Jam zmagannya yake provoditsya z 2003 roku Zasnovano ta sponsuyetsya kompaniyeyu Google Facebook Hacker Cup zmagannya yake provoditsya z 2011 roku Zasnovano i sponsuyetsya kompaniyeyu Facebook Ad Infinitum matematichne zmagannya z programuvannya Cook Off zmagannya za principami ICPC yake provoditsya ostannoyi suboti kozhnogo misyacya LunchTime zmagannya dlya shkolyariv yake provoditsya ostann suboti kozhnogo misyacya SnackDown richne zmagannya z kilkoh raundiv yake provoditsya za pidtrimki richne zmagannya dlya studentiv IEEE provoditsya z 2006 za pidtrimki IEEE IOI odne z najstarishih zmagan dlya shkolyariv TopCoder Open Algorithm zmagannya yake provoditsya z 2004 roku za pidtrimki TopCoder Yandeks Algoritm zmagannya yake provoditsya z 2013 roku za pidtrimki kompaniyi Yandeks U bilshosti vishezgadanih zmagan oskilki kilkist uchasnikiv dosit velika zmagannya yak pravilo organizovuyutsya v dekilka raundiv Voni zazvichaj dozvolyayut prijmati uchat onlajn u vsih raundah krim ostannogo yakij vimagaye uchasti ochno Osoblivim vinyatkom ye IEEEXtreme sho ye shorichnim 24 godinnim zmagannyam z programuvannya Najkrashi uchasniki IOI ta ICPC otrimuyut zoloti sribni ta bronzovi medali a v inshih konkursah finalisti nagorodzhuyutsya groshovimi prizami Krim togo potraplyannya v top v tablicyah rezultativ takih zmagan mozhe zacikaviti rekruteriv vid programnih ta internet kompanij Dovgostrokovi Long Challenges Google zmagannya dlya studentiv sho prohodilo u 2009 2011 rokah Week of Code tizhneve zmagannya organizovane Zmagannya z programuvannya shtuchnogo intelektu Halite I provodivsya z listopada 2016 po lyutij 2017 Halite II provodimetsya z 23 zhovtnya 2017 po 22 lyutogo 2018 Obidva zmagannya sponsovani Two Sigma and Cornell Tech Gugl takozh sponsuye Halite II shorichne 3 denne zmagannya provoditsya z 1998 roku pri pidtrimci Kaggle vidkrite zmagannya z programuvannya shtuchnogo intelektu TopCoder Marathon matches CodeCup nl shorichne zmagannya shtuchnogo intelektu v nastilnih igrah Pravila novoyi gri z yavlyayutsya u veresni ostatochnij turnir provoditsya u sichni Onlajn zmagannya ta resursi dlya pidgotovkiProgramisti z usogo svitu stvorili i pidtrimuyut dekilka internet resursiv prisvyachenih zmagannyam z programuvannya Voni proponuyut avtonomni zmagannya z vinagorodami abo bez nih Arhivi minulih zmagan ye v svoyu chergu populyarnim resursom dlya trenuvan u virishenni podibnih zavdan Sered yakih Nazva Opis Vebsajt AtCoder Platforma dlya provedennya zmagan stvorena komandoyu yaponskih programistiv zmaguniv atcoder jp CodeChef Pidtrimuyetsya provodit 10 denne zmagannya ta paru korotkostrokovih zmagan shomisyacya odne v stili IOI i odne v stili ICPC ta predostavlyaye bezkoshtovnu platformu dlya provedennya zmagan dlya osvitnih institucij Dva najkrashih uchasniki dovgostrokovogo zmagannya otrimuyut groshovu vinagorodu desyat najkrashih uchasnikiv otrimuyut futbolki www codechef com CodeCup Shorichne mizhnarodzhne zmagannya v galuzi shtuchnogo intelektu nastilnih igor Provoditsya Olimpiadoyu z informatiki Niderlandiv z 2003 roku CodeCup nl Codeforces Rosijskij resurs pidtrimuyetsya Saratovskim universitetom nadaye dostup do regulyarnih do dvoh na tizhden korotkih zmagan Specialni mozhlivosti mozhlivist pereviriti korektnist rishen inshih uchasnikiv pid chas hakerskoyi fazi virtualni zmagannya trenuvannya i t in codeforces com Coderbyte Mistit zadachi z programuvannya yaki mozhna virishuvati v onlajnovomu redaktori na odnij z dev yati mov programuvannya Takozh nadaye dostup do resursiv z poyasnennyam roboti algoritmiv vvodnim kursom z JavaScript videomaterialami ta materialami z pidgotovki do interv yu www coderbyte com CodinGame Golovolomki zi zrostayuchoyu skladnistyu Provodit regulyarni onlajn zmagannya zmagannya shtuchnogo intelektu zadachi optimizaciyi www codingame com GeeksforGeeks Vebsajt prisvyachenij programuvannyu zi stattyami ta praktichnimi zavdannyami Sajt nacilenij na pidgotovku do prohodzhennya tehnichnih intrev yu Buv zapochatkovanij u 2009 roci a platforma dlya zmagan z programuvannya bula dodana u 2015 roci geeksforgeeks org HackerEarth Kompaniya sho bazuyetsya u misti Bengaluru Indiya ta provodit onlajn zmagannya nacileni na ocinku dlya naboru personalu www hackerearth com HackerRank Zapochatkovanij 2012 roku proponuye zavdannya z programuvannya u riznih oblastyah informatiki Takozh provodit richnij zahid Codesprints yakij dopomagaye z yednati programistiv i startapi Kremniyevoyi dolini hackerrank com Open Kattis Vidkrita versiya sistemi ocinyuvannya zmagan Kattis sho mistit arhiv iz ponad 2600 zavdan Sistema zasnovana u 2005 roci u Shveciyi Golovnoyu metoyu sistemi bulo yiyi vikoristannya u kursah programuvannya i komp yuternih nauk ale Kattis takozh vikoristovuyut dlya provedennya prestizhnih zmagan takih yak svitovij final ICPC open kattis com POJ Sistema dlya onlajn suddivstva Pekinskogo universitetu dlya zmagan ICPC stvorena Ying Fuchen Xu Pengcheng ta Xie Di Mistit ponad 3000 zavdan poj org Project Euler Velika kolekciya obchislyuvalnih matematichnih zavdan tobto mayuchih ne pryame vidnoshennya do programuvannya ale potrebuyuchih navichok koduvannya dlya yih virishennya projecteuler net SPOJ Polska platforma dlya onlajn suddivstva yaka nadaye dostup do bagatoh navchalnih zadach i nadaye platformu dlya inshih organizatoriv dlya provedennya svoyih zmagan z programuvannya www spoj com TopCoder Resurs ta kompaniya sho bazuyetsya u SShA organizuye zmagannya ta daye dostup do zadach industriyi yak do riznovidu frilansu proponuye kilka korotkih i kilka dovgih marafoni zmagan shoroku Specialni mozhlivosti uchasniki mayut zmogu pereviriti pravilnist rishen inshih uchasnikiv pislya fazi koduvannya ta pered finalnim avtomatichnim testuvannyam tak zvanoyu fazoyu zavdannya www topcoder com UVa Online Judge Mistit arhiv iz ponad 4500 zavdan dlya trenuvan Provodit regulyarni onlajn zmagannya Zasnovanij 1995 roku ce odin z najdavnishih podibnih sajtiv uva onlinejudge orgDiv takozh vseukrayinskij chempionat z rozrobki programnogo zabezpechennya sered junior middle ta senior programistivPosilannya google com Arhiv originalu za 19 lyutogo 2016 Procitovano 20 lyutogo 2016 topcoder com Arhiv originalu za 16 lyutogo 2012 Facebook Arhiv originalu za 5 lipnya 2013 Procitovano 20 lyutogo 2016 Programming problems and Competitions HackerRank HackerRank Procitovano 20 lyutogo 2016 codechef com Arhiv originalu za 11 lyutogo 2016 Procitovano 20 lyutogo 2016 codechef com Arhiv originalu za 12 kvitnya 2016 Procitovano 15 zhovtnya 2019 HackerRank Arhiv originalu za 16 listopada 2017 Procitovano 20 lyutogo 2016 www halite io Arhiv originalu za 16 travnya 2022 Procitovano 19 chervnya 2022 tech cornell edu Arhiv originalu za 30 zhovtnya 2017 Procitovano 1 sichnya 2018 Arhiv originalu za 31 sichnya 2023 Procitovano 1 sichnya 2018 Wevers Lesley 2014 PDF University of Twente Arhiv originalu PDF za 13 kvitnya 2017 Procitovano 16 veresnya 2018 Bloomfield Aaron Sotomayor Borja PDF SIGCSE 16 Proceedings of the 47th ACM Technical Symposium on Computing Science Education Arhiv originalu PDF za 20 bereznya 2020 Procitovano 24 bereznya 2020 Enstrom E Kreitz G Niemela F Soderman P Kann V 2011 PDF IEEE Frontiers in Education Conference Arhiv originalu PDF za 20 serpnya 2020 Procitovano 24 bereznya 2020 Zovnishni dzherelaProekt z vidkritim kodom dlya provedennya zmagan Contest Management System 11 chervnya 2018 u Wayback Machine Zasib z vidkritim kodom na movi Python dlya provedennya i upravlinnya zmagannyami z programuvannya na serveri IOI 2012 and IOI 2013