TopCoder

Матер?ал з В?к?пед?? ? в?льно? енциклопед??.
Перейти до нав?гац?? Перейти до пошуку
TopCoder, Inc.
Тип б?знес ? п?дпри?мство
Орган?зац?йно-правова форма господарювання корпорац?я
Галузь Кадрове забезпечення в галуз? ?нформац?йних технолог?й
Розробка програмного забезпечення
Аутсорсинг
Засновано Кв?тень, 2001
Штаб-квартира Гластонбер?, Коннектикут, США
Сп?вроб?тники 105 (2007)
topcoder.com

TopCoder  ? це компан?я, яка орган?зову? змагання з програмування . П?д кер?вництвом TopCoder проходять регулярн? як алгоритм?чн? онлайн-змагання (прост? матч? або марафони), так ? змагання з дизайну та розробки програмного забезпечення. В результат? останн?х створю?ться високояк?сне програмне забезпечення, яке л?цензоване для продажу компан??ю TopCoder. Учасники ж змагань отримують платню зг?дно з досягнутими результатами. Алгоритм?чн? змагання, як правило, не приносять прибутку компан??, але вони можуть спонсоруватися зац?кавленими компан?ями. Статистика учасника ведеться по кожному типу змагань ? м?стить у соб? рейтинг та ?нш? показники.

Типи змагань

[ ред. | ред. код ]
  • Алгоритми ( англ. Algorithm ): учаснику пропону?ться розв'язати три алгоритм?чн? задач? за 75 хвилин. Алгоритм?чний матч под?ля?ться на 4 фази. Впродовж код?нгу ( англ. Coding Phase ) учасники пишуть розв'язки на одн?й з дозволених мов програмування. Ц? розв'язки можна перев?рити на к?лькох доступних прикладах тест?в. Якщо учасник вважа?, що його розв'язок правильний, то в?н може здати задачу ? отримати за це певну к?льк?сть бал?в. Бали за задачу залежать в?д ?? складност? та часу, який учасник витратив на розв'язування. П?сля ц??? фази наста? перерва. За ц? дек?лька хвилин учасники можуть обговорити задач? чи просто в?дпочити ? п?дготуватись до останньо? фази змагання, де в?д них ще щось залежить. У сленгу кодер?в ця фаза носить ?м'я ≪челендж-фаза≫ ( англ. Challenge Phase ). Оск?льки розв'язки, в?дправлен? впродовж код?нгу, не перев?ряються на повному набор? тест?в, то серед них можуть бути неправильн?. Основне завдання ≪челенджу≫ ? пошук таких розв'язк?в. Учасникам стають доступними для перегляду розв'язки ?нших. Якщо хтось вважа?, що побачив помилку в певному розв'язку, то в?н може його ≪челенджити≫ ? перев?рити на певному тест?. Якщо розв'язок дасть на тест? правильний результат ? 25 бал?в втратить той, хто ≪челенджив≫, в протилежному випадку в?н отрима? додатков? 50 бал?в, а автор розв'язку втратить вс? бали за задачу. Розв'язок, що не проходить ≪челендж≫, переста? бути доступним для повторних ≪челендж?в≫.Остання фаза ? системн? тести ( англ. System Test ). Впродовж системних тест?в вс? розв'язки, помилки в котрих не були виявлен? на попередн?й фаз?, перев?ряються на максимально повному набор? тест?в. Якщо розв'язок да? результат, що не зб?га?ться з правильним, хоч на одному тест? ? його автор втрача? вс? бали за дану задачу.
  • Марафон ( англ. Marathon Matches ): на в?дм?ну в?д попереднього типу змагань, учаснику пропону?ться розв'язати одну, значно складн?шу задачу. Тривал?сть змагання ?стотно довша ? як правило 1-2 тижн?. В б?льшост? випадк?в, задача передбача? евристичне р?шення, яке не може бути ?диноправильним.
  • Концептуал?зац?я ( англ. Conceptualization ): учасник працю? ?з замовниками програмного забезпечення з метою створення б?знес-вимог ( англ. Business Requirements Document ) для апл?кац??.
  • Специф?кац?я ( англ. Specification ): учасник ?з документ?в, отриманих в?д кл??нта ? змагань з концептуал?зац??, створю? формальну TopCoder Requirements Specifications документац?ю.
  • Арх?тектура ( англ. Architecture ): учасник, отримавши всю потр?бну документац?ю з ранн?х змагань, створю? арх?тектуру апл?кац??. П?д час цього виду змагань ?де вид?лення функц?ональних блок?в (компонент) додатку, що да? можлив?сть проводити паралельн? змагання по кожн?й з компонент.
  • Дизайн ( англ. Component Design ): учасники створюють дизайн компоненти, продюсуючи потр?бн? UML -д?аграми та специф?кац?ю компоненти. Переможець змагань, як правило, нада? ?нформац?йну п?дтримку учасникам наступного етапу ? девелопменту.
  • Девелопмент ( англ. Component Development ): учасник розробля? компоненту зг?дно з отриманою документац??ю в?д дизайнера.
  • Зведення ( англ. Assembly ): на даному етап? в?дбува?ться зведення апл?кац?? учасниками зг?дно з арх?тектурою, використовуючи вже готов? компоненти ?з проведених змагань.
  • Тестування ( англ. Testing ): учасникам ставиться завдання, яке поляга? у тестуванн? розробленого додатку.
  • Виловлення помилок ( англ. Bug Races ): Швидк? змагання для виправлення помилок, знайдених у готових продуктах. На в?дм?ну в?д ?нших тип?в змагань, вигра? той, хто зробить швидше за ?нших ? в?рно.

Посилання

[ ред. | ред. код ]
  • Оф?ц?йний сайт компан?? TopCoder . Арх?в ориг?налу за 27 червня 2013 . Процитовано 17 с?чня 2010 . (англ.)
  • Рейтинг Укра?ни в Algorithm Competitors . Арх?в ориг?налу за 27 червня 2013 . Процитовано 17 с?чня 2010 . (англ.)
  1. CrunchBase ? 2007.