Такмичарско програмирање
Такмичарско програмирање је умни спорт који се у већини случајева одржава на интернету или у локалној мрежи, где такмичари покушавају да реше одређене задате проблеме из те области. Такмичари се такође називају спротским програмерима. Такмичарско програмирање је подржано и спонзорисано од стране великих софтверских компанија, а неке од њих су Гугл,[1][2] Фејсбук[3] и IBM.[4] Постоји велики број организатора који одржавају такмичења на редовној бази.
Такмичарско програмирање састоји се од великог броја задатака из логике као и из математике. Свако такмичење има од 3 до 10 различитих проблема у зависности од тога ког је типа такмичење као и од времена за које би оно требало да се заврши. Суди се по томе што се гледа колико проблема је одређени тим завршио и за које време су ти проблеми написани, али такође може бити и више фактора (величина програма, квалитет излаза).
Историја
[уреди | уреди извор]Једно од најстаријих такмичења у свету програмирања је ACM International Collegiate Programming Contest које је почело 1970. године и успело је да се прошири на 88 земаља широм света. Заинтересованост за такмичење порасла је невероватно од 2000. године, а разлог тога је велика промоција интернет технологија, као и проширење интернета.
Преглед
[уреди | уреди извор]Циљ такмичарског програмирања је да се напише изворни код од компјутерског програма који треба да реши одговарајући проблем. Велика већина проблема су из категорије математике и логике. Неке од типичних категорија из математике су: комбинаторика, теорија бројева, теорија графова, геометрија, анализа стрингова и структуре података. Такође постоје и такмичења која су везана за вештачку интелигенцију.
Процес решавања проблема на неким од ових такмичења се може поделити у две фазе - имплементирање одговарајућег ефикасног алгоритма и имплементирање истог у одговарајућем изабраном језику (у зависности да ли је тај језик подржан од стране такмичења). Ово су две фазе које су кључ у решавању проблема.
У већини такмичења, суђење је одрађено аутоматски од стране машина, које се називају "Судијом". Свако решење достављено од стране такмичара пролази кроз машину где се упоређује са неким од тестова. Постоје 2 исхода у овом случају - "решење је одбачено", што значи нетачан одговор или алгоритам није успео да испоручи одговарајући одговор ефикасно; као и "решење је прихваћено", што значи да је решење прошло све тестове успешно. Нека такмичења захтевају од такмичара да испоручи одговор у виду текстуалне датотеке у којој би се налазили одговори за сваки од понуђених питања који би они добили у такође текстуалној датотеци.
Такмичења
[уреди | уреди извор]Постоје два типа такмичарског формата: дугорочни и краткорочни. Свака краткорочна рунда траје у периоду од 3 до 5 сати, а дугорочне рунде могу да трају од неколико дана, па до месец дана.
Краткорочна такмичења
[уреди | уреди извор]- АЦМ ИЦПЦ - једно од најстаријих такмичења, за студенте из универзитета од по 3 особе по тиму, IBM је спонзор овог такмичења.
- АЦСЛ - Такмичење за средње и основне школе.
- CodeChef[5] - Такмичење у стилу ИЦПЦ које се одржава последње недеље у месецу.
- CodeChef Јуниор[5] - Јуниорско такмичење за ученике средњих школа које се одржава сваке недеље.
- CodeChef Прајм[6] - Такмичење које се одржава сваке године од стране Код Шеф
- Фејсбук хакер куп - Такмичење које спонзорише Фејсбук
- Гугл код џем - Такмичење које спонзорише Гугл
- Хакер ранг Ад инфинитум[7] - Математичко такмичење које спонзорише Хакер Ранг
- Хакер ранг[8] - Алгоритамско такмичење које спонзорише Хакер Ранг
- ИЦФП - Такмичење које се одржава од 1999. године Интернационално конференцијско такмичење из програмирања
- ИЕЕХтреме Такмичење - Алгоритамско такмичење које се одржава од 2006 ИЕЕЕ
- ИОИ - Једно од најстаријих такмичења за ученике средњих школа.
- Топ кодер такмичење - Такмичење коме је спонзор Топ Кодер;
У већини наведених такмичења збор превеликог броја такмичара, такмичења су подељена из више рунди. Они у већини случајева захтевају онлајн такмичење изузев последње рунде, које захтева такмичење на лицу места. Једини изузетак је ИЕЕХтреме такмичење, које се одржава сваке године и захтева 24 сата за решавање проблема. Најбољи такмичари на ИОИ такмичењу и АЦМ-ИЦПЦ добијају злато, сребро и бронзу као награду док су у другим такмичењима новчане награде. Такође добијање неких од медаља или освајање високог места може привући регрутере из великик софтверских компанија.
Дугорочна такмичења
[уреди | уреди извор]Онлајн такмичења и тренирање
[уреди | уреди извор]Програмерска такмичарска заједница широм света је створила и одржавала неколико интернет сајтова које служе за тренирање. Оне омогућавају такмичење као и неке од мањих награда. Неки од задатака на овим сајтовима се могу наћи у старој архиви од неких претходних такмичења. Ово су следећа интернет такмичења:
Веб ранг | Име | Опис | Сајт |
---|---|---|---|
5808[9] | Хакер Ранк | Основано је 2012. године, и омогућава такмичење у различитим доменима програмирања. Такође једном годишње одржава Код Спринт који помаже програмерима да се споје са неким од програмера из силицијумске Долине. | hackerrank |
17667[10] | Код Форсис | Руски веб-сајт, одржава га Универзитет Саратов, који одржава до 2 такмичења недељно. Посебна могућност овог сајта је да можете да исправите грешке других такмичара и притом добијете додатне бодове.Већина ових такмичења су алгоритамска. | codeforces |
27074[11] | Код Шеф | Одржава га Директи, већином одржава дугорочна такмичења али има и изузетака (једно такмичење у стилу ИОИ а друго у стилу ИЦПЦ), и омогућава организовање такмичења школским установама бесплатно. Прва два места добијају новчане награде док осталих 10 добијају мајицу. | www |
28109[12] | Топ Кодер | САД компанија, организује такмичења сваког месеца као и фри-ленс опције за веће компаније; Већина такмичења су краткорочна али и постоје изузеци где су остала такмичења маратони који трају више од 7 дана. Једна од занимљивих могућности је да током такмичења можете да изазовете противников код тако што ће те му поставити одговарајући улаз где ако погреши ви добијате додатно бодове. | www |
31587[13] | Пројект Еулер | Велики број математичких такмичења где се користе програмерске вештина само да би се имплементирале формуле.Такмичења која организује Пројект Еулер су већином краткорочна. | projecteuler |
32843[14] | Хакер Земља | Бангалор, Индија компанија која организује краткорочна такмичења где је награда могућност запошљавања у њиховој компанији. | www |
45824[15] | СПОЏ | Пољски Онлајн судија који омогућава велики избор задатака за тренирање,такође омогућава да такмичари сами организују своје такмичење. | www |
49763[16] | ПОЈ | Универзитет у Пекингу Сајт који су направили Јинг Фучен ,Ксу Пенгчен и Кси Ди. Садржи 3.055 проблема.. | www |
125102 | УВА онлајнд судија | Садржи преко 3.500 проблема и одржава краткорочна и дугорочна такмичења сваког месеца где су награде новчане. | uva |
Види још
[уреди | уреди извор]Референце
[уреди | уреди извор]- ^ „Google Code Jam”. google.com. Архивирано из оригинала 19. 02. 2016. г. Приступљено 20. 02. 2016.
- ^ „TCO12 Sponsor: Google - TCO 12”. topcoder.com. Архивирано из оригинала 16. 02. 2012. г. Приступљено 07. 07. 2016.
- ^ „Facebook Hacker Cup”. Facebook. Приступљено 20. 02. 2016.
- ^ „ACM International Collegiate Programming Contest World Finals Sponsored by IBM”. Архивирано из оригинала 10. 03. 2016. г. Приступљено 07. 07. 2016.
- ^ а б в „COMPETE - CodeChef”. codechef.com. Архивирано из оригинала 11. 02. 2016. г. Приступљено 20. 02. 2016.
- ^ „Snackdown Home - CodeChef”. codechef.com. Архивирано из оригинала 12. 04. 2016. г. Приступљено 05. 04. 2020.
- ^ „Programming problems and Competitions :: HackerRank”. HackerRank. Приступљено 20. 02. 2016.
- ^ „Programming problems and Competitions :: HackerRank”. HackerRank. Приступљено 20. 02. 2016.
- ^ „Security Screen”. www.similarweb.com. Архивирано из оригинала 17. 11. 2015. г. Приступљено 18. 10. 2015.
- ^ „Security Screen”. www.similarweb.com. Архивирано из оригинала 17. 11. 2015. г. Приступљено 18. 10. 2015.
- ^ „Security Screen”. www.similarweb.com. Архивирано из оригинала 17. 11. 2015. г. Приступљено 18. 10. 2015.
- ^ „Security Screen”. www.similarweb.com. Архивирано из оригинала 17. 11. 2015. г. Приступљено 18. 10. 2015.
- ^ „Security Screen”. www.similarweb.com. Архивирано из оригинала 20. 10. 2015. г. Приступљено 18. 10. 2015.
- ^ „Security Screen”. www.similarweb.com. Архивирано из оригинала 17. 11. 2015. г. Приступљено 18. 10. 2015.
- ^ „Security Screen”. www.similarweb.com. Архивирано из оригинала 11. 12. 2015. г. Приступљено 18. 10. 2015.
- ^ „Security Screen”. www.similarweb.com. Архивирано из оригинала 02. 06. 2016. г. Приступљено 20. 04. 2016.
Спољашње везе
[уреди | уреди извор]- Софтвер отвореног кода за такмичења
- Contest Management System Отворени код у Пајтону који омогућава лакше организовање такмичења