Սպորտային ծրագրավորում
Ծրագրավորման օլիմպիադա, ինտելեկտուալ մրցում, որի ընթացքում լուծվում են բազմաթիվ խնդիրներ էլեկտրոնային հաշվիչ համակարգով՝ օգտագործելով տարբեր ծրագրավորման լեզուների ալգորիթմեր կամ ծրագրեր։ Սովորաբար մասնակիցներին բաժանում են խնդիրների կոմպլեկտ։ Խնդիրը համարվում է լուծված միայն այն ժամանակ, երբ ծրագիրը կարողանում է ճիշտ անցնել ժուրիի կազմած թեստը։ Մասնակիցներին թեստի պարունակությունը մնում է անհայտ։
Սպորտային ծրագրավորումը համարվում է գիտելիքի սպորտ, երբ հավաքվում են աշխարհի տարբեր ծայրերից ծրագրավորողները ( կամ ապագա ծրագրավորողները ) և հիմնականում ինտերնետի միջոցով անց է կացվում տարբեր մրցույթներ, քննարկումներ և գիտելիքի փոխանակումներ։ Սպորտային ծրագրավորումը ընդհանուր ծրագրավորման հիմնական ռեսուրսներից մեկն է, որը տրամադրում է մրցունակ ծրագրավորողներ տարբեր ընկերությունների և ստեղծում ավելի ակտիվ համակարգեր։ Այս ամենը ծագում է այն մտքից, որ սպորտային ծրագրավորումը հնարավորություն է տալիս ստեղծել առողջ մրցակցություն տարբեր կայքերի և մրցույթների միջոցով։
Ծրագրավորման օլիմպիադաները բաժանվում են երկու ձևաչափի։ Առաջին ձևաչափում ընդգրկված են թիմային օլիմպիադաները, այդ օլիմպիադային թիմին տրվում է ընդամենը մեկ համակարգիչ խնդիրները լուծելու համար։ Այդ մրցույթների անցկացման համար օգտագործվում են տարբեր մասնագիտացված ծրագրային համակարգեր։ Սպորտային ծրագրավորման խնդիրները հիմնականում լինում են 3 տեսակի՝ ալգորիթմային, օպտիմալային, հետազոտական․
- Ալգորիթմային են կոչվում այն խնդիրները, որոնք առաջադրվում են մրցույթների ժամանակ և մասնակիցների կողմից լուծվում են լիովին կամ մասնակի։ Մասնակիցը պետք է գրի ալգորիթմներ՝ առաջադրված ծրագրավորման լեզուներով։ Սերվերին ուղարկելուց հետո, սերվերը աշխատեցնում է մասնակցի գրած ծրագիրը իր թեստերով, յուրաքանչյուր թեստի, ծրագրի կողմից ճիշտ արտածած պատասխանի համար մասնակիցը ստանում է համապատասխան միավոր։
- Օպտիմալային են կոչվում այն ծավալուն խնդիրները, որոնց համար լիարժեք լուծում գոյություն չունի։ Գնահատվում է, թե որքան օպտիմալ է մասնակցի (ների) որոշումը տվյալ խնդիրը լուծելու համար։ Որոշ խնդիրների մեջ մասնակիցների որոշումները տվյալ խնդիրը լուծելու համար փոխկապակցված են (խաղեր)։
- Հետազոտական են կոչվում այն խնդիրները, որոնք առաջադրվում են ինտերնետային մրցույթների ժամանակ։ Մասնակիցը պետք է գրի ծրագիր՝ առաջադրված ծրագրավորման լեզուներից մեկով և այն ուղարկի սերվերին, որը այնտեղ կոմպիլացվում է և ուղարկում է համապատասխան պատասխան։ Օրինակ՝ բոլոր առաջադրված թեստերի պատասխանները ճիշտ է արտածել՝ մասնակցի կողմից գրված ծրագիրը, թե թերի, կամ կարող են լինել կոմպիլացիոն սխալներ։
Ալգորիթմային և հետզոտական խնդիրները շատ նման են իրար, սակայն տարբերվում են գնահատման սիստեմներով։ Խնդիրների լուծման համար անհրաժեշտ է տիրապետել առնվազն 1 ծրագրավորման լեզվի։ Հիմնական օգտագործվող լեզուներն են՝ C, C++, Java, Python, Pascal, #C։ Այնուամենայնիվ որոշ կայքեր թույլատրում են 20 և ավելի ծրագրավորման լեզուներ։ Համեմատաբար բարդ խնդիրների լուծման համար անհրաժեշտ է իմանալ նաև դասական ալգորիթմներ և խնդիրների մոտեցումներ։
ACM International Collegiate Programming Contest[խմբագրել | խմբագրել կոդը]
Ծրագրավորման միջազգային ուսանողական մրցույթը խոշորագույն միջազգային ուսանողական թիմային ծրագրավորման օլիմպիադա է։
ICPC-ն թիմային մրցույթ է։ Ներկայիս կանոններով՝ յուրաքանչյուր թիմ պետք է ունենա երեք ուսանող։ Մասնակիցները պետք է լինեն համալսարանի ուսանող, որոնց համալսարանական կրթությունը տևել է հինգ տարուց պակաս։ Ուսանողները, ովքեր երկու անգամ մասնակցել են Աշխարհի եզրափակչին կամ հինգ մարզային փուլերի, այլևս իրավունք չունեն մասնակցել մրցույթին[1][2]։ Առաջնության գլխավոր հովանավորներից երկուսը Մայքրոսոֆթն ու IBM-ն են։ 2004 թվականին այդ մրցույթին մասնակցում էին 3150 թիմ 75 երկրներից։ Ռուսաստանի թիմը բազում անգամներ հաղթել է օլիմպիադայում[3][4][5][6][7]։ Այդ ուսանողները հանդիպել են Ռուսաստանի դաշնության նախագահի հետ[8][9][10]։
Օլիմպադաներ ԽՍՀՄ-ում և Ռուսաստանում[խմբագրել | խմբագրել կոդը]
Դպրոցականների միջև[խմբագրել | խմբագրել կոդը]
Առաջին օլիմպիադան ԽՍՀՄ-ում (ինֆորմատիկայի օլիմպիադա անվանմամբ) կայացավ դպրոցականների միջև 1998 թվականին Սվերդլովսկում[11]։ Հետագայում ինֆորմատիկայի օլիմպիադաները դարձան համամիութենական (այնուհետև ԽՍՀՄ-ի փլուզումից հետո համառուսաստանյան) առարկայական օլիմպիադա։ Համառուսաստանյան ինֆորմատիկայի օլիմպիադան դպրոցականների միջև անցկացվեց 2011 թվականին Պերմում։
Սովորաբար դպրոցականների անհատական ձևաչափով առաջնությունները անցկացվում են մի քանի փուլերով՝ շրջանային, քաղաքային, տարածաշրջանային և ազգային։ Համառուսաստանյան օլիմպիադան հաղթողները իրավունք են ստանում մասնակցելու միջազգային ինֆորմատիկայի օլիմպիադային։
Բարձր արդյունքներ ցուցաբերելը որոշակի առավելություն կտա տվյալ ուսանողին բուհ ընդունվելուց։
Դպրոցականների թիմային մրցույթ[խմբագրել | խմբագրել կոդը]
Նաև անցկացվում են դպրոցականների թիմային առաջնություն, ուսանողների միջազգային օլիմպիադայի նույնատիպ օրենքներով[12][13]։
Առավել հայտնի թիմային օլիմպիադան դա Համառուսաստանյան ինֆորմատիկայի թիմային օլիմպիադան է դպրոցականների միջև[14]։ Այդ օլիմպիադան սովորաբար անցկացվում է դեկտեմբերի սկզբին, Ռուսաստանի տարբեր քաղաքներում։ Այդ օլիմպիադային մասնակցելու համար պետք է ընտրվել շրջանում, Մոսկվայից սովորաբար գալիս են 10-20 թիմ, իսկ Սանկտ-Պետերբուրգից համեմատ քիչ[15]։
Ուսանողներ[խմբագրել | խմբագրել կոդը]
Ինֆորմատիկայի օլիմպիադա ուսանողների միջև ԽՍՀՄ-ում գլոբալ մասշտաբներով չի անցկացվել։ Սկսած 1996 թվականից ռուսական բուհերի ուսանողները սկսեցին մասնակցել մրցույթների, որոնք մտնում էին ուսանողների միջև թիմային ծրագրավորման համակարգի մեջ։
Այլ հայտնի մրցույթներ[խմբագրել | խմբագրել կոդը]
Վերջին ժամանակներում օգտագործվում է ավելի ընդհանուր տերմին «սպորտային ծրագրավորում»։ Սպորտային ծրագրավորման մրցույթները կամ առաջնությունները ուղղակիորեն կապված չեն կրթական համակարգի հետ, այսինք այդ մրցումներին կամ առաջնություններին կարող են մասնակցել պրոֆեսիոնալ ծրագրավորողներ։ Սպորտային ծրագրավորման հայտնի մրցույթ է համարվում TopCoder ռեսուրսը, որտեղ պարբերաբար անցկացվում են տուրեր, որոնց շնորհիվ ձևավորվում է մասնակիցների վարկանիշը։ Նաև ամեն տարի անցկացվում է TopCoder Open մրցույթը։ Հետագայում հայտնվել է նաև ռուսական ռեսուրս Codeforces-ը, որը նույնպես անցկացնում է պարբերաբար տուրեր, որի արդյունքների հաշվին նույնպես ձևավորվում է մասնակիցների վարկանիշները։
Խոշորագույն ՏՏ ընկերությունները նույնպես անցկացնում են մրցույթներ ծրագրավորման ոլորտում, դրանց մեջ են մտնում՝ Google Code Jam-ը, Facebook Hacker Cup-ը և Russian Code Cup-ը։
IOI[խմբագրել | խմբագրել կոդը]
Ստեղծվեցին մի շարք մրցույթներ, ինչպիսին է IOI – ը (ինֆորմատիկայի միջազգային օլիմպիադա ), որը առաջին անգամ տեղի է ունեցել 1989 թվականին Բուլղարիայում։ IOI – ը դպրոցական անհատական օլիմպիադա է, որին մասնակցում են յուրաքանչյուր երկրից ամենաշատը 4 մասնակից։ Մրցույթը կազմված է 2 օրից և յուրաքանչյուր օր առաջադրվում է 3-ական խնդիր, որոնք մասնակիցը պետք է լուծի 5 ժամվա ընթացքում։ Յուրաքանչյուր տարի մրցույթը տեղի է ունենում տարբեր երկրներում և հնարավորություն է տալիս տարբերվել նախորդներից։ Խնդիրների բնույթը համեմատաբար տարբերվում է ICM-ICPC –ից իր հետաքրքրությամբ և բարդությամբ։
IOI-ին թույլատրվում է օգտագործել ծրագրավորման լեզուներից միայն C++, C, Pascal և Java: Բայց Pascal-ը կհեռացվի 2019-թվականին։
Հայաստանի մասնակիցների արդյունքներն ԻՄՕ-ում[խմբագրել | խմբագրել կոդը]
1996-2017 ժամանակաշրջանում հայաստանյան թիմերը արժանացել են 1 ոսկե, 4 արծաթե և 23 բրոնզե մեդալների։
Մրցույթների համար նախատեսված կայքեր[խմբագրել | խմբագրել կոդը]
IZHO[խմբագրել | խմբագրել կոդը]
Այս մրցույթը իրականացվում է IOI -ի նման ոճով, որին մասնակցում են նախկին Խորհրդային Միության պետությունների հիմնական մասը(նաև Հայաստանը)։ Մրցույթը անց է կացվում Ղազախստանում և մեկնարկել է 2005 թվականին։ Մրցույթի հաղթողներին տրվում են արտոնություններ հետագա կարիեիայի համար, ընդհուպ նաև համալսարանական արտոնություններ։
CodeForces[խմբագրել | խմբագրել կոդը]
Այս կայքը ստեղծվել է 2010 թվականին Ռուսաստանում և արդեն դարձել սպորտային ծրագրավորման հետ կապող ամենաէական փաստերից մեկը։ Կայքում անց է կացվում առցանց մրցույթներ և մասնակիցների ռեկորդակիր քանակը եղել է մինչև 9733 օգտատեր։ CodeForces-ը տիպիկ ալգորիթմային խնդիրներով հարուստ մրցույթների կայք է։
Կայքում կար ավելի քան 300000 օգտատեր 2015 թվականի տվյալներով, որոնց թիվը գնալով աճում է մինչև օրս։
Օգտատերերը բաժանված են 10 խմբերի, որոնց համար տեղի է ունենում 3 տարբեր մակարդակների մրցույթներ և մրցակցության հիմնական աղբյուրը, հանդիսանում է իրենց տեղը ընդհանուր օգտատերերի ցուցակում։
TopCoder[խմբագրել | խմբագրել կոդը]
Կայքը մեծ ընկերություն է ՝ նախատեսված դիզայներների, մշակողների, տվյալների փորցագետների և սպորտային ծրագրավորողների համար։ Կայքում օգտատերերի թիվը կազմում է մոտավորապես 1 200 000 (2018 - ի տվյալներով), որը ներկայումս համարվում է առաջատարը շուկայում։ Համակարգը ստեղծվել է 2001 թվականին Jack Hughes – ի կողմից ԱՄՆ-ում[16][17][18]։
Վարժություններ[խմբագրել | խմբագրել կոդը]
Ծրագրավորման դասական օլիմպիադաների ժամանակ մասնակիցներին առաջարկվում է մի շարք խնդիրներ, տարբեր բարդության։ Խնդրի լուծումը համարվում է ծրագիրը, որը գրված է թույլատրվող ծրագրավորման լեզուներից մեկի վրա։ Այդ ծրագիրը պետք է հստակ հաշվի տվյալ ձևաչափի ցանկացած մուտքի տվյալներ։ Եվ հստակ մշակել, խնդրի պահանջների համաձայն և դուրս բերել որոշակի ելքային հոսքով նշված տեսքով։
Բոլոր լուծումները ստուգվում է ավտոմատացված համակարգի շնորհիվ։ Այդ համակարգը մեկնարկում է տվյալ խնդրի բոլոր լուծումները, որոշ թեստերի լուծման համար։ Թեստերը լուծելուց հետո համակարգը դիտարկում է ելքային տվյալները և համեմատում է արդեն պատրաստի շաբլոնների հետ կամ կատարում է ավելի բարդ գործողություններ։
Օլիմպիադաների առանձնահատկությունը նրանումն է, որ պետք է խնդրին մոտենալ ավելի ստեղծագործ կերպով։ Այսինքն այդ մրցաշարերին հազվադեպ են հանդիպում խնդիրներ, որոնց մեջ պետք է օգտագործել միանման ալգորիթմներ կամ ծրագրեր։ Ավելի հաճախ խնդրի մեջ ներկայացվում է կարճ պատմություն իր սյուժեյով, հերոսներով և իրենց հակամարտությամբ։ Այսպիսով օլիմպիադայի խնդիրը լուծելու համար անհրաժեշտ է նախապես կազմել իրադարձությունների մաթեմատիկական մոդելը և արդեն ըստ դրա կառուցել համապատասխան ալգորիթմը կամ ծրագիրը։ Ալգորիթմը կարող է լինել հայտնի կամ կարող է ստեղծվել լրիվ նորը։ Դասական և շատ պարզ խնդրի օրինակ է A+B-ն։ Այդ խնդիրը սովորաբար տեղադրում են օլիմպիադաների փորձնական փուլում։
Ծանոթագրություններ[խմբագրել | խմբագրել կոդը]
- ↑ «Information - ICPC». Արխիվացված օրիգինալից հունիսի 16, 2008-ին. Վերցված է 2008 թ․ հունիսի 10-ին.
- ↑ «2008 ICPC Regionals Eligibility Decision Diagram» (PDF). Արխիվացված է օրիգինալից (PDF) 2005 թ․ նոյեմբերի 18-ին. Վերցված է 2008 թ․ հունիսի 10-ին.
- ↑ «SnarkNews». Արխիվացված է օրիգինալից 2021 թ․ ապրիլի 14-ին. Վերցված է 2018 թ․ օգոստոսի 19-ին.
- ↑ Чемпионы мира из ИТМО в новостях РЕН ТВ :: :: Видео на RuTube(չաշխատող հղում)
- ↑ В Петербурге открылась академия программирования — Наталья Шергина — «Чемпионы мира получили кластер» — Российская Газета — В Северной столице открылась …
- ↑ Студенты ИТМО стали чемпионами мира по программированию
- ↑ Дмитрий Медведев встретился с победителями чемпионата мира по программированию — Первый канал
- ↑ Президент сегодня встретился со студентами — победителями чемпионата мира по программированию — Первый канал
- ↑ «Президент России Дмитрий Медведев продолжит традицию встреч с российскими студентами-победителями Чемпионата мира по программированию среди сборных команд вузов. — РИА Новости …». Արխիվացված է օրիգինալից 2012 թ․ հունվարի 18-ին. Վերցված է 2018 թ․ օգոստոսի 19-ին.
- ↑ Три золотых медали привезли в РФ победители первенства планеты по программированию — Первый канал
- ↑ «Олимпиады — История олимпиады». Արխիվացված է օրիգինալից 2011 թ․ օգոստոսի 10-ին. Վերցված է 2018 թ․ օգոստոսի 19-ին.
- ↑ «Уральская региональная олимпиада по программированию / Центр классического образования УрФУ им. Б. Н. Ельцина (УрГУ)». Արխիվացված է օրիգինալից 2010 թ․ հոկտեմբերի 6-ին. Վերցված է 2018 թ․ օգոստոսի 19-ին.
- ↑ Олимпиады по информатике. Санкт-Петербург, Россия
- ↑ «Олимпиады по информатике. Санкт-Петербург, Россия». neerc.ifmo.ru. Վերցված է 2016 թ․ հուլիսի 27-ին.
- ↑ «SN on ВКОШП - 2015». vkoshp2015.snarknews.info. Արխիվացված է օրիգինալից 2016 թ․ օգոստոսի 8-ին. Վերցված է 2016 թ․ հուլիսի 27-ին.
- ↑ Lakhani KR, Garvin DA, Lonstein E (January 2010). «TopCoder (A): Developing Software through Crowdsourcing». Harvard Business School Case: 610–032.
- ↑ DIamandis, Peter (2013 թ․ մարտի 20). «TopCoder's 5 Steps to Building a Global Workforce Community». The Huffington Post. Վերցված է 2016 թ․ ապրիլի 15-ին.
- ↑ Mitra, Sramana (2018 թ․ հունվարի 2). «Genesis to Acquisition: Mike Morris, CEO of Topcoder». One Million by One Million Blog. Վերցված է 2018 թ․ մարտի 30-ին.
Վիքիպահեստ նախագծում կարող եք այս նյութի վերաբերյալ հավելյալ պատկերազարդում գտնել Սպորտային ծրագրավորում կատեգորիայում։ |