Топ питань
Часова шкала
Чат
Перспективи

Змагання з програмування

З Вікіпедії, вільної енциклопедії

Змагання з програмування
Remove ads

Змагання з програмування це гра навички, яка зазвичай проводиться за допомогою мережі Інтернет або через локальну мережу, під час якого учасники намагаються програмувати згідно з наведеними специфікаціями. Учасників змагань називають спортивними програмістами. Змагання з програмування мають визнання та підтримку багатьма ІТ компаніями, як наприклад Google,[1][2] та Facebook.[3] Існує декілька організацій, які проводять змагання з програмування на регулярній основі.

Thumb
Олег Навер – багаторазовий переможець міжнародної олімпіади з інформатики.

Змагання з програмування зазвичай вимагають від організаторів надання списку логічних або математичних завдань для учасників змагань (кількість яких може бути від кількох десятків до кількох тисяч), а учасники мають написати комп'ютерні програми, здатні вирішувати кожне з завдань. Переможців визначають здебільшого за кількістю правильно вирішених завдань за найменший час, але також можуть бути враховані інші фактори (якість вихідних даних, час виконання, розмір програми тощо).

Remove ads

Історія

Одне з найдавніших змагань це ICPC, яке з'явилося в 70-х роках і станом на 2011 рік включає в себе 88 країн. Цікавість до спортивного програмування значно виросла за останні роки і багато в чому поєднана зі зростанням Інтернету, так як це заохочує проводити міжнародні онлайн-змагання без урахування географічних проблем.

Огляд

Узагальнити
Перспектива

Мета змагань з програмування це написання початкового коду комп'ютерних програм, які здатні вирішувати запропоновані завдання. Переважна більшість проблем, що містяться у змаганнях з програмування, є математичними або логічними. Зазвичай ці завдання належать до наступних категорій: комбінаторика, теорія чисел, теорія графів, геометрія, аналіз рядків та структури даних. Проблеми пов'язані зі штучним інтелектом також популярні на деяких змаганнях.

Незалежно від категорії завдання, процес вирішування завдання може бути поділений на два основних етапи: розробка алгоритму та кодування алгоритму обраною мовою програмування (список дозволених мов програмування залежить від конкретного змагання).

На більшості змагань визначення результатів проводиться автоматично за допомогою спеціальних систем. Кожен розв'язок завдання запускається на сервері. На вхід цьому розв'язку подається список тестових прикладів (зазвичай секретний). У більшості випадків вирішення проблем маркуються за принципом «все або нічого», тобто якщо вирішення спрацювало неправильно на хоча б одному з тестових прикладів, воно не зараховується. Однак, деякі змагання використовують процентну систему оцінювання, тобто за розв'язок дають стільки відсотків, скільки відсотків тестових прикладів було розв'язано правильно.

Remove ads

Типи змагань

Узагальнити
Перспектива

Існують два основніх типи змагань: короткострокові та довгострокові. Кожний раунд короткострокових змагань триває від 1 до 5 годин. Довгострокові змагання тривають від кількох діб до кількох місяців.

Короткострокові

  • ICPC - одне з найстаріших змагань для студентів ВНЗ у складі команд з трьох осіб
  • ACSL - змагання з інформатики для школярів. Містить письмову частину та кодування
  • Google Code Jam - змагання, яке проводиться з 2003 року. Засновано та спонсується компанією Google
  • Facebook Hacker Cup - змагання, яке проводиться з 2011 року. Засновано і спонсується компанією Facebook
  • HackerRank Ad Infinitum[4] - математичне змагання з програмування HackerRank
  • CodeChef Cook-Off[5] - змагання за принципами ICPC, яке проводиться останньої суботи кожного місяця
  • CodeChef LunchTime[5] - змагання для школярів, яке проводиться останнь\ суботи кожного місяця
  • CodeChef SnackDown[6] - річне змагання з кількох раундів, яке проводиться за підтримки CodeChef
  • IEEEXtreme Programming Competition - річне змагання для студентів IEEE, проводиться з 2006 за підтримки IEEE
  • IOI - одне з найстаріших змагань для школярів
  • TopCoder Open - Algorithm - змагання, яке проводиться з 2004 року за підтримки TopCoder
  • Яндекс Алгоритм - змагання, яке проводиться з 2013 року за підтримки компанії Яндекс;

У більшості вищезгаданих змагань, оскільки кількість учасників досить велика, змагання, як правило, організовуються в декілька раундів. Вони зазвичай дозволяють приймати учать онлайн у всіх раундах, крім останнього, який вимагає участі очно. Особливим винятком є IEEEXtreme, що є щорічним 24-годинним змаганням з програмування. Найкращі учасники IOI та ICPC отримують золоті, срібні та бронзові медалі, а в інших конкурсах фіналісти нагороджуються грошовими призами. Крім того, потрапляння в топ в таблицях результатів таких змагань може зацікавити рекрутерів від програмних та інтернет-компаній.

Довгострокові

  • CodeChef Long Challenges[5]
  • Google AI Challenge — змагання для студентів, що проходило у 2009–2011 роках
  • HackerRank Week of Code[7] - тижневе змагання, організоване HackerRank
  • Halite[8] — Змагання з програмування штучного інтелекту. Halite I проводився з листопада 2016 по лютий 2017, Halite II проводиметься з 23 жовтня 2017 по 22 лютого 2018. Обидва змагання спонсовані Two Sigma and Cornell Tech[9] Гугл також спонсує Halite II[10]
  • ICFP Programming Contest — щорічне 3-денне змагання, проводиться з 1998 року при підтримці International Conference on Functional Programming
  • Kaggle
  • Russian AI Cup — відкрите змагання з програмування штучного інтелекту
  • TopCoder Marathon matches
  • CodeCup.nl — щорічне змагання штучного інтелекту в настільних іграх. Правила нової гри з'являються у вересні, остаточний турнір проводиться у січні.
Remove ads

Онлайн змагання та ресурси для підготовки

Узагальнити
Перспектива

Програмісти з усього світу створили і підтримують декілька інтернет-ресурсів присвячених змаганням з програмування. Вони пропонують автономні змагання з винагородами або без них. Архіви минулих змагань є, в свою чергу, популярним ресурсом для тренувань у вирішенні подібних завдань. Серед яких:

Більше інформації Назва, Опис ...
Remove ads

Див. також

  • DEV Challenge — всеукраїнський чемпіонат з розробки програмного забезпечення серед junior, middle та senior програмістів

Посилання

Зовнішні джерела

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads