Programozási olimpiák

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2021. május 23-án felülvizsgált verziótól ; az ellenőrzések 11 szerkesztést igényelnek .

A Programozási Olimpia ( Informatikai Olympia ) egy szellemi verseny különféle feladatok számítógépen történő megoldására, melynek megoldásához bármilyen algoritmust , programot kell kitalálni és alkalmazni valamelyik programozási nyelven . A résztvevők általában több feladatsort kapnak. A probléma akkor tekinthető megoldottnak, ha a résztvevők a zsűri által elkészített teszteken jól működő programot tudtak elkészíteni. A tesztek ismeretlenek a résztvevők számára.

Az olimpiák egyéni és csapatosak. A csapatolimpiákon általában 3 fő vesz részt, és 1 számítógépet biztosítanak számukra az olimpia teljes időtartamára a problémák megoldására. Az ilyen versenyek lebonyolítására speciális szoftveres versenyrendszereket használnak.

Feladat formátuma

A sportprogramozási problémák egyedülállóak abban, hogy a válasz azokra egy olyan program, amely optimálisan, az összes lehetséges bemeneti adatra egyszerre oldja meg a problémát.

Például, ha a legegyszerűbb matematikai feladat így hangzik: "Adjon hozzá két számot: 4 és 5 " , akkor a legegyszerűbb programozási feladat így hangzik: "Írjon egy programot, amely tetszőleges két számot ad hozzá." Ebben az esetben a résztvevőnek olyan programot kell írnia, amely két számot olvas be a szabványos bemeneti adatfolyamon , és egy számot – a probléma megoldását – ad ki a szabványos kimeneti adatfolyamba . Néha a versenyszervezők felajánlják az adatok más módon történő olvasását és kiadását, például a . Az A+B klasszikus kihívás ennek a formátumnak az megismeréséhez.

Természetesen a verseny zsűrijének valahogyan meg kell győződnie arról, hogy a résztvevő programja minden adat esetén megfelelően működjön. Ehhez a verseny előtt egy tesztsorozatot készítenek , amelyen elindulnak a résztvevők megoldásai, és azokra a válaszok. Ha a zsűri és a résztvevő minden tesztre azonos választ ad, a döntés teljes pontszámot kap, ha nem, akkor részleges vagy nulla pontot kap. A legtöbb olimpián az ellenőrzés automatizált, és azonnal elvégzésre kerül, miután a résztvevő benyújtotta a megoldást, így gyorsan tájékoztathatja őt az eredményről, és lehetőséget ad a program finomítására.

A megoldást gyakran nemcsak a helyesség, hanem a hatékonyság szempontjából is ellenőrzik. Ennek érdekében a tesztelő rendszer korlátozza a betöltött program által felhasználható processzoridőt, és egyes teszteknél úgy választja ki a bemeneti adatokat, hogy a nem hatékony megoldás túl sokáig futjon. Ennek eredményeként egy ilyen megoldás nem teljesíti ezeket a teszteket, és hiányos pontszámot kap.

A szerzők igyekeznek úgy kiválasztani a bemeneti adatokat, hogy egy nem hatékony megoldás futási ideje sokszorosan haladja meg a beállított határértéket, ami kiküszöböli a processzorjellemzők eltéréseinek, a mérési hibáknak, a Turbo Boostnak és egyéb tényezőknek az eredményre gyakorolt ​​hatását. Ugyanakkor a processzoridőt mérik , és nem a valós végrehajtási időt, így a tesztelő szerver processzorterhelése más feladatokkal sem befolyásolhatja az eredményt.

Feltétel szövegek

A sportprogramozás világában létezik egy bizonyos formátum a problémás körülményekre. Bár hivatalosan senki sem szabványosította, de facto versenyek világszerte a következő albekezdésekre osztják a problémák feltételeit:

Olimpia a Szovjetunióban és Oroszországban

iskolások között

Az első programozási olimpiát az iskolások körében 1981-ben rendezték Moszkvában (mindössze 4 résztvevő volt), a Szovjetunióban pedig az első olimpiát (informatikai olimpiát néven) az iskolások körében rendezték meg, és 1988-ban Sverdlovszkban tartották [1] . A jövőben az informatikai olimpiák az All-Union (és a Szovjetunió összeomlása után - az összoroszországi) tantárgyi olimpiák részévé váltak az iskolások számára.

Az iskolások olimpiája hagyományosan egyéni versenyek, többszintű rendszer szerint, több szakaszban: kerületi, városi, regionális, országos olimpiák. Az Összoroszországi Olimpia győztesei jogot kapnak a nemzetközi informatikai olimpiákon való részvételre .

Felsorolt ​​olimpiák

Az Orosz Iskolai Diákolimpiák Tanácsa (RSOS) minden évben külön listát állít össze az olimpiákról, amely tartalmazhat személyes olimpiákat a sportprogramozásban. Az ilyen versenyek mindig két szakaszban zajlanak: selejtező (online) és döntő (személyesen, de a COVID-19 világjárvány miatt kivételek megengedettek ). Listaolimpiát csak az oktatás területén illetékes hatóságok és felsőoktatási intézmények jogosultak lebonyolítani. [2]

Az ilyen olimpiákon elért magas eredmények bizonyos kiváltságokat adhatnak az egyetemre való belépéskor , beleértve a felvételi vizsga nélküli felvételt vagy az informatika USE eredményeinek 100 pontra való kerekítését (ha a hallgató legalább 75 pontot szerzett).

Iskolai csapatversenyek

Többszintű csapatolimpiát is rendeznek az iskolások körében, a nemzetközi diákolimpiák szabályaihoz hasonló szabályok szerint [3] [4] .

A leghíresebb csapatolimpia az All-Oroszország Csapatolimpia iskolásoknak programozásban [5] (VKOSHP). Általában december elején tartják Oroszország különböző városaiban: Szentpéterváron, Barnaulban és más országok városaiban. Erre az olimpiára a régiójában kell kvalifikálnia, Moszkvából általában 10-20 csapat megy, Szentpétervárról valamivel kevesebb [6] .

Diákok

Nem tartottak számítástechnikai olimpiát a Szovjetunió diákjai között az egész országban. 1996-tól kezdődően az orosz egyetemek hallgatói részt vettek az amerikai ACM szövetség által a hallgatók közötti csapatprogramozási világbajnokság rendszerébe tartozó versenyeken .

A lelkesek különféle egyetemeken belüli és egyetemek közötti olimpiákat is szerveztek. Általában ezeket az olimpiákat egy szoftverfejlesztő cég szponzorálja, amely érdekelt abban, hogy tehetséges diákokat vonzzon velük dolgozni.

Rendszerek és platformok tesztelése

A megoldások ellenőrzésének folyamata számítási teljesítményt, az elhasznált erőforrások pontos mérését, nagyszámú fordítóprogram támogatását, a végrehajtható programok elkülönítését és sok más összetett technikai megoldást igényel. Oroszországban számos rendszert és platformot fejlesztettek ki a programozási versenyekre:

Név Állapot Beírva jegyzet
bíró Támogatott, GPL licenccel Xi A 2000-es években kifejlesztett nyílt forráskódú rendszer.

Az architektúra sajátosságai miatt nem támogatja a többmagos tesztelést, ami nagymértékben lassítja a tesztelést. A versenyben azonban továbbra is használják.

PCMS Támogatott Jáva 2004 -ben jött létre az ITMO Egyetemen saját olimpiáinak megrendezésére, és folyamatosan fejlődik a falai között.

Ezen a tesztelési rendszeren rendezik meg az iskolások össz-oroszországi olimpiáját .

rendezz engem Támogatott megy A projekt 2021. október 1-jén indult.

A készítők szerint ez a világ leggyorsabb tesztelési rendszere, amely nem csak a programok ellenőrzését, hanem a fordítását is felgyorsíthatja. [7] Az egyetlen projekt Oroszországban, amely egyetem, alapítvány vagy vállalat támogatása nélkül fejlődik ki.

Codeforces Támogatott Jáva 2010-ben jött létre a Szaratovi Állami Egyetemen .

A legnépszerűbb sportprogramozási platform. A Codeforces által létrehozott testlib.h könyvtár a feladatfejlesztés de facto szabványa. A projektet angol nyelvre honosították, és az ITMO Egyetem és külföldi szponzorok támogatásával fejlesztették ki.

Yandex verseny Támogatott Piton Yandex projekt . Saját versenyekre is használható. Főleg számlálóolimpiákra és helyi edzésekre használják.
Versenyző Projekt lezárva Delphi / FreePascal A Kovrov Állami Technológiai Akadémián hozták létre 2008-ban. Ez egy önálló szerver volt, amely körülbelül 130 feladatot tartalmazott.
Timus Online bíró Karbantartott, de nem fejlesztett ismeretlen 2000-ben az Uráli Szövetségi Egyetemen egy nagy online archívumot fejlesztettek ki a problémákról .
acm.sgu.ru Projekt lezárva ismeretlen Webhely a Szaratovi Állami Egyetem hallgatóinak képzésére .
acmp.ru Támogatott .HÁLÓ A feladatok nagy archívuma, amelyet 2006 óta fejlesztettek ki a Krasznojarszk Úttörőpalota támogatásával . Ez az oldal ad otthont az összoroszországi iskolásolimpia iskolai és önkormányzati szakaszainak (csak a Krasznojarszk Területre).

Olimpia Fehéroroszországban

olimpia iskolások között

Fehéroroszországban a programozás (informatika) olimpiáját az iskolások körében több szakaszban tartják.

Az első szakasz egy iskolán belüli olimpia. Egy adott oktatási intézmény diákjai körében zajlik. A verseny eredményeként a győztesek a következő szakaszba kerülnek. Az ilyen olimpiák lebonyolítására tesztelési rendszereket (tornarendszereket) használnak. Hogy melyik rendszert alkalmazzuk, azt az olimpia szervezői döntik el. Például Brestben a Brain Training rendszert , egyes intézményekben az eJudge rendszert használják

A második szakasz a városi olimpia (néha városinak is nevezik). Egy ilyen olimpiát az előző szakasz győztesei között tartanak, akiket a város egy bizonyos területén minden iskola képvisel. Például Bresztben két regionális olimpiát tartanak: a moszkvai és a Leninszkij körzetben. Az egyes kerületek győztesei továbbjutnak a következő szakaszba. Az olimpián való részvétel (a következő szakaszba való átmenet) kötelező feltétele az elérhető pontok több mint 50%-a (a 2014-2015-ös tanévben ez a szabály megszűnt).

A harmadik szakasz a regionális olimpia. Itt vesznek részt az előző szakasz (területi olimpia) győztesei. Egész Fehéroroszország 6 régióra oszlik (Breszt, Vitebszk, Mogilev, Grodno, Gomel és Minszk), valamint Minszk városa. Ezenkívül a „Belarusz Állami Egyetem Líceuma” állami oktatási intézmény külön csapatként működik. Mindegyikben kiválasztják a résztvevőket az olimpia következő szakaszára.

A negyedik szakasz a köztársasági olimpia (záró szakasz). A regionális olimpiák győztesei versengenek a legjobb programozó címért az iskolások között.

A Köztársasági Olimpia legjobb résztvevőit (általában csak 9-11 évfolyamosok) választják ki a Nemzetközi Informatikai Olimpiára edzőtáborokba. Az edzőtábor során közülük választják ki a végleges csapatot.

ACM Nemzetközi Főiskolai Programozási Verseny

A legnagyobb nemzetközi diákcsapat-programozási verseny az ACM International Collegiate Programming Contest . A bajnokság főszponzorai olyan cégek, mint a Microsoft és az IBM . 2004- ben 75 ország 3150 csapata vett részt rajta.

Az oroszországi csapatok többször nyertek ennek a rangos versenynek [8] [9] [10] [11] [12] . A sikeres szereplések eredményeként a csapatokat az Orosz Föderáció elnökével való találkozóval honorálták [13] [14] [15] . Az oroszországi olimpiák egyik oktatója és szervezője az Orosz Föderáció elnökének és az Orosz Föderáció kormányának oktatási díját kapta [16] .

További nevezetes versenyek

Sok sportprogramozási verseny nem kapcsolódik közvetlenül az oktatási rendszerhez, vagyis profi programozók is részt vesznek ezeken. A világon népszerű sportprogramozási verseny a TopCoder erőforrás , amely rendszeresen rendez köröket (SRM), amelyek eredményei alkotják a résztvevők értékelését, valamint az éves TopCoder Opent . Codeforces orosz forrás is rendszeresen tart köröket [16] alapján alakul ki a saját értékelése. 2021 végén a Sort Me platform népszerűségre tett szert Oroszországban , a módosított ACM-szabályok szerint [18] havi rendszerességgel adott otthont a Sort Me Roundnak [17 ] .

A nagy informatikai cégek rendszeres és általában egyéni programozási versenyeket tartanak, mint például a Google Code Jam , Facebook Hacker Cup , Russian Code Cup .

Jegyzetek

  1. Olimpia - Az olimpia története (elérhetetlen link) . Letöltve: 2011. szeptember 9. Archiválva az eredetiből: 2011. augusztus 10. 
  2. Az iskolások olimpiájának lebonyolítási rendje . orosz újság . Letöltve: 2022. január 25. Az eredetiből archiválva : 2022. január 25.
  3. Uráli Regionális Programozási Olimpia (elérhetetlen link) . UrFU Klasszikus Oktatási Központ B. N. Jelcin (USU). Letöltve: 2011. november 9. Az eredetiből archiválva : 2010. október 6.. 
  4. Informatikai olimpiák. Szentpétervár, Oroszország . Letöltve: 2011. november 9. Az eredetiből archiválva : 2011. november 17..
  5. Informatikai olimpiák. Szentpétervár, Oroszország . neerc.ifmo.ru. Letöltve: 2016. július 27. Az eredetiből archiválva : 2016. augusztus 24..
  6. SN a VKOSHP - 2015-ön  (eng.) . vkoshp2015.snarknews.info. Letöltve: 2016. július 27. Az eredetiből archiválva : 2016. augusztus 8..
  7. Sort Me . távirat . Letöltve: 2022. május 9. Az eredetiből archiválva : 2022. május 9..
  8. SnarkNews . Letöltve: 2022. március 18. Az eredetiből archiválva : 2021. április 14.
  9. Világbajnokok az ITMO-tól a REN TV híreiben :: :: Videó a RuTube-on  (elérhetetlen link)
  10. Programozó akadémia nyílt Szentpéterváron - Natalya Shergina - „A világbajnokok klasztert kaptak” - Rossiyskaya Gazeta - Megnyílt az északi fővárosban ... . Letöltve: 2020. május 2. Az eredetiből archiválva : 2017. december 1.
  11. Az ITMO hallgatói világbajnokok lettek a programozásban . Letöltve: 2011. szeptember 9. Az eredetiből archiválva : 2010. november 3..
  12. Dmitrij Medvegyev találkozott a Channel One programozási világbajnokság győzteseivel
  13. Az elnök ma találkozott diákokkal - a programozói világbajnokság győzteseivel - Channel One
  14. Dmitrij Medvegyev orosz elnök folytatja azt a hagyományt, hogy az egyetemek egyesített csapatai között találkozzon orosz diákokkal, a programozási világbajnokság győzteseivel. - RIA Novosti .... Letöltve: 2011. november 9. Az eredetiből archiválva : 2012. január 18..
  15. Három aranyérmet hoztak az Orosz Föderációnak a programozás bolygóbajnokságának – Channel One – győztesei . Letöltve: 2011. november 9. Az eredetiből archiválva : 2013. augusztus 8..
  16. ↑ 1 2 Stankevics Andrej Szergejevics  (elérhetetlen link)
  17. sort-me.org - Erőforrás - CLIST . clist.by . Letöltve: 2022. január 25. Az eredetiből archiválva : 2022. január 25.
  18. Sort Me, Sort Me. Sort Me Round szabályok . Teletype (2021. október 24.). Letöltve: 2022. január 25. Az eredetiből archiválva : 2022. január 25.

Linkek