Ohjelmointiolympialaiset

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 23.5.2021 tarkistetusta versiosta . tarkastukset vaativat 11 muokkausta .

Ohjelmointiolympiadi ( Informatics Olympiad ) on älyllinen kilpailu erilaisten ongelmien ratkaisemiseksi tietokoneella , jonka ratkaisemiseksi on keksittävä ja käytettävä mikä tahansa algoritmi tai ohjelma jollakin ohjelmointikielellä . Yleensä osallistujille annetaan joukko useita tehtäviä. Ongelma katsotaan ratkaistuksi, jos osallistujat pystyivät luomaan ohjelman, joka toimii oikein tuomariston laatimissa testeissä. Testit ovat osallistujille tuntemattomia.

Olympialaiset ovat yksilö- ja joukkuekisat. Ryhmäolympialaisiin osallistuu yleensä 3 henkilöä ja heillä on 1 tietokone koko olympialaisten ajaksi ongelmien ratkaisemiseksi. Tällaisten kilpailujen järjestämiseen käytetään erikoistuneita ohjelmistoturnausjärjestelmiä.

Tehtävän muoto

Urheiluohjelmointiongelmat ovat ainutlaatuisia siinä mielessä, että vastaus niihin on ohjelma, joka ratkaisee ongelman optimaalisesti kerralla kaikelle mahdolliselle syöttödatalle.

Jos esimerkiksi yksinkertaisin matemaattinen tehtävä kuulostaa "Lisää kaksi numeroa: 4 ja 5 " , yksinkertaisin ohjelmointitehtävä kuulostaa "Kirjoita ohjelma, joka lisää mitkä tahansa kaksi numeroa." Tässä tapauksessa osallistujan on kirjoitettava ohjelma, joka lukee kaksi numeroa vakiosyöttövirran kautta ja tulostaa yhden numeron - vastauksen ongelmaan - vakiotulostevirtaan . Joskus kilpailun järjestäjät tarjoavat tietojen lukemista ja tulostamista toisella tavalla , esimerkiksi . A+B on klassinen haaste tähän formaattiin tutustumiseen.

Tietysti kilpailun tuomariston on jotenkin varmistettava, että osallistujan ohjelma toimii oikein kaikelle datalle. Tätä varten ennen kilpailua valmistetaan sarja testejä , joissa käynnistetään osallistujien ratkaisut ja joukko vastauksia niihin. Jos tuomariston ja osallistujan vastaukset kaikkiin kokeisiin ovat samat, päätöksestä saa täyden pistemäärän, jos ei, osittaisen tai nollan. Useimmissa olympialaisissa tarkistus on automatisoitu ja se suoritetaan välittömästi sen jälkeen, kun osallistuja on lähettänyt ratkaisun, jolloin hän voi nopeasti ilmoittaa tuloksesta ja antaa hänelle mahdollisuuden tarkentaa ohjelmaa.

Usein ratkaisua tarkistetaan paitsi oikeellisuuden, myös tehokkuuden suhteen. Tätä varten testausjärjestelmä asettaa rajoituksen ladatun ohjelman käyttämälle prosessoriajalle ja joissakin testeissä syöttötiedot valitaan siten, että tehoton ratkaisu kestää liian kauan. Tämän seurauksena tällainen ratkaisu epäonnistuu näissä testeissä ja saa epätäydellisen pistemäärän.

Kirjoittajat yrittävät valita syöttötiedot siten, että tehottoman ratkaisun ajoaika ylittää asetetun rajan moninkertaisesti, mikä eliminoi prosessorin ominaisuuksien erojen, mittausvirheiden, Turbo Boostin ja muiden tekijöiden vaikutuksen tulokseen. Samalla mitataan prosessoriaikaa , ei todellista suoritusaikaa, joten testauspalvelimen prosessorikuormitus muiden tehtävien kanssa ei myöskään saisi vaikuttaa tulokseen.

Kuntotekstit

Urheiluohjelmoinnin maailmassa ongelmatilanteisiin on olemassa tietty muoto. Vaikka kukaan ei ole virallisesti standardoinut sitä, de facto kilpailut ympäri maailmaa jakavat ongelmien ehdot seuraaviin kohtiin:

Olympialaiset Neuvostoliitossa ja Venäjällä

Koululaisten keskuudessa

Ensimmäinen ohjelmointiolympialainen koululaisten keskuudessa Moskovassa pidettiin vuonna 1981 (osallistujia oli vain 4), ja Neuvostoliiton ensimmäinen olympialaiset (nimellä Olympiad in Informatics) pidettiin koululaisten keskuudessa ja pidettiin vuonna 1988 Sverdlovskissa [1] . Tulevaisuudessa tietotekniikan olympialaisista tuli osa koko unionin (ja Neuvostoliiton romahtamisen jälkeen - koko Venäjän) oppiaineolympialaisia ​​koululaisille.

Perinteisesti koululaisten olympialaiset ovat yksittäisiä kilpailuja, jotka järjestetään monitasoisen järjestelmän mukaisesti useissa vaiheissa: piirin, kaupungin, alueelliset, kansalliset olympialaiset. Koko Venäjän olympialaisten voittajat saavat oikeuden osallistua kansainvälisiin tietotekniikan olympialaisiin .

Listatut olympialaiset

Venäjän koululaisten olympialaisten neuvosto (RSOS) laatii joka vuosi erityisen olympialaisten luettelon, joka voi sisältää henkilökohtaisia ​​urheiluohjelmoinnin olympialaisia. Tällaiset kilpailut järjestetään aina kahdessa vaiheessa: karsinnat (online) ja finaali (henkilökohtaisesti, mutta poikkeukset sallittiin COVID-19-pandemian vuoksi ). Vain koulutusalan viranomaisilla ja korkeakouluilla on oikeus järjestää listaolympialaisia. [2]

Tällaisissa olympialaisissa näkyvät korkeat tulokset voivat antaa etuoikeuksia yliopistoon pääsyssä, mukaan lukien pääsy ilman pääsykokeita tai tietojenkäsittelytieteen USE-tulosten pyöristäminen 100 pisteeseen (jos opiskelija sai vähintään 75 pistettä).

Koulujen joukkuekilpailut

Monitasoisia joukkueolympialaisia ​​järjestetään myös koululaisten keskuudessa kansainvälisten opiskelijaolympialaisten sääntöjä vastaavien sääntöjen mukaisesti [3] [4] .

Tunnetuin joukkueolympialainen on All-Russian Team Olympiad for Schoollasten in Programming [5] (VKOSHP). Se järjestetään yleensä joulukuun alussa Venäjän eri kaupungeissa: Pietarissa, Barnaulissa ja muiden maiden kaupungeissa. Sinun on päästävä tähän alueesi olympialaisiin, yleensä 10-20 joukkuetta lähtee Moskovasta, hieman vähemmän Pietarista [6] .

Opiskelijat

Tietojenkäsittelytieteen olympialaisia ​​Neuvostoliiton opiskelijoiden keskuudessa koko maassa ei pidetty. Vuodesta 1996 lähtien venäläisten yliopistojen opiskelijat alkoivat osallistua amerikkalaisen ACM -yhdistyksen järjestämiin opiskelijoiden World Team Programming Championship -järjestelmään kuuluviin kilpailuihin .

Harrastajat järjestivät myös erilaisia ​​yliopistojen sisäisiä ja välisiä olympialaisia. Yleensä näitä olympialaisia ​​sponsoroi ohjelmistokehitysyritys, joka on kiinnostunut houkuttelemaan lahjakkaita opiskelijoita työskentelemään heidän kanssaan.

Järjestelmien ja alustojen testaus

Ratkaisujen varmistusprosessi vaatii laskentatehoa, kulutettujen resurssien tarkkaa mittausta, tukea suurelle määrälle kääntäjiä, suoritettavien ohjelmien eristämistä ja monia muita monimutkaisia ​​teknisiä ratkaisuja. Venäjällä ohjelmointikilpailuja varten on kehitetty useita järjestelmiä ja alustoja:

Nimi Osavaltio Sisään kirjoitettu Merkintä
tuomari Tuettu, GPL -lisenssi Xi 2000-luvulla kehitetty avoimen lähdekoodin järjestelmä.

Arkkitehtuurin erityispiirteistä johtuen se ei tue moniytimistä testausta, mikä hidastaa testausta huomattavasti. Sitä käytetään kuitenkin edelleen kilpailussa.

PCMS Tuettu Java Se perustettiin vuonna 2004 ITMO-yliopistossa isännöimään omia olympialaisiaan, ja se kehittyy edelleen seinien sisällä.

Tällä testausjärjestelmällä järjestetään koululaisten koko venäläinen olympialainen .

lajittele minut Tuettu mennä Hanke käynnistettiin 1.10.2021.

Tekijöiden mukaan se on maailman nopein testausjärjestelmä, joka voi nopeuttaa ohjelmien tarkistamisen lisäksi myös kääntämistä. [7] Ainoa hanke Venäjällä, joka kehittyy ilman minkään yliopiston, säätiön tai yrityksen tukea.

Koodivoimat Tuettu Java Perustettu vuonna 2010 Saratovin osavaltion yliopistossa .

Suosituin urheiluohjelmointialusta. Codeforcesin luoma testlib.h-kirjasto on tehtävien kehittämisen tosiasiallinen standardi. Projekti on lokalisoitu englanniksi ja kehitetty ITMO-yliopiston ja ulkomaisten sponsorien tuella.

Yandex-kilpailu Tuettu Python Yandex projekti . Voidaan käyttää omiin kilpailuihin. Sitä käytetään pääasiassa laskennallisiin olympialaisiin ja paikallisiin harjoituksiin.
Kilpailija Projekti suljettu Delphi / FreePascal Perustettu Kovrovin valtion teknologisessa akatemiassa vuonna 2008. Se oli erillinen palvelin, joka sisälsi noin 130 tehtävää.
Timus Online Tuomari Ylläpidetty, mutta ei kehitetty tuntematon Suuri online-arkisto ongelmista kehitettiin vuonna 2000 Uralin liittovaltion yliopistossa .
acm.sgu.ru Projekti suljettu tuntematon Sivusto Saratovin osavaltion yliopiston opiskelijoiden koulutusta varten .
acmp.ru Tuettu .NETTO Laaja tehtävien arkisto, joka on kehitetty vuodesta 2006 Krasnojarskin pioneeripalatsin tuella . Tämä sivusto isännöi koulujen ja kuntien vaiheita koko Venäjän koululaisten olympialaisten (vain Krasnojarskin alueella).

Valko-Venäjän olympialaiset

koululaisten olympialaiset

Valko-Venäjällä koululaisten ohjelmoinnin (informatiikan) olympialaiset järjestetään useissa vaiheissa.

Ensimmäinen vaihe on koulun sisäinen olympialainen. Suoritetaan tietyn oppilaitoksen opiskelijoiden keskuudessa. Kilpailun tuloksena voittajat pääsevät seuraavaan vaiheeseen. Testausjärjestelmiä (turnausjärjestelmiä) käytetään tällaisten olympialaisten järjestämiseen. Olympian järjestäjät päättävät, mitä järjestelmää käytetään. Esimerkiksi Brestissä käytetään Brain Training -järjestelmää , joissakin laitoksissa eJudge- järjestelmää

Toinen vaihe on kunnallinen olympialainen (joskus sitä kutsutaan kaupunkiolympiaksi). Tällainen olympialainen järjestetään edellisen vaiheen voittajien keskuudessa, joita edustaa jokainen koulu tietyllä kaupungin alueella. Esimerkiksi Brestissä järjestetään kaksi alueellista olympialaista: Moskovan ja Leninskin alueille. Jokaisen piirin voittajat etenevät seuraavaan vaiheeseen. Pakolliset edellytykset olympialaisten osallistumisen jatkamiselle (siirtyminen seuraavaan vaiheeseen) ovat yli 50 % mahdollisista pisteistä (lukuvuonna 2014-2015 tämä sääntö kumottiin).

Kolmas vaihe on alueolympialaiset. Edellisen vaiheen (alueolympian) voittajat osallistuvat täällä. Koko Valko-Venäjä on jaettu 6 alueeseen (Brest, Vitebsk, Mogilev, Grodno, Gomel ja Minsk) sekä Minskin kaupunkiin. Lisäksi valtion koulutuslaitos "Valko-Venäjän valtionyliopiston lyseum" toimii erillisenä tiiminä. Jokaisessa niistä valitaan osallistujat olympiadin seuraavaan vaiheeseen.

Neljäs vaihe on tasavallan olympialaiset (viimeinen vaihe). Alueolympialaisten voittajat kilpailevat parhaan ohjelmoijan tittelistä koululaisten joukossa.

Tasavallan olympiadin parhaat osallistujat (yleensä vain 9-11-luokilta) valitaan kansainvälisen tietotekniikan olympialaisen harjoitusleireille. Harjoitusleirin aikana heistä valitaan lopullinen joukkue.

ACM International Collegiate Programming Contest

Suurin kansainvälinen opiskelijajoukkueohjelmointikilpailu on ACM International Collegiate Programming Contest . Mestaruuden pääsponsoreina ovat muun muassa Microsoft ja IBM . Vuonna 2004 siihen osallistui 3150 joukkuetta 75 maasta.

Venäjän joukkueet ovat toistuvasti voittaneet tämän arvostetun kilpailun [8] [9] [10] [11] [12] . Onnistuneiden suoritusten seurauksena joukkueita kunnioitettiin tapaamisella Venäjän federaation presidentin kanssa [13] [14] [15] . Yksi näiden Venäjän olympialaisten kouluttajista ja järjestäjistä palkittiin Venäjän federaation presidentin ja Venäjän federaation hallituksen koulutusalan palkinnoilla [16] .

Muita merkittäviä kilpailuja

Monet urheiluohjelmoinnin kilpailut eivät liity suoraan koulutusjärjestelmään, eli niihin osallistuu myös ammattiohjelmoijia. Suosittu urheiluohjelmointikilpailu maailmassa on TopCoder -resurssi , jossa järjestetään säännöllisesti kierroksia (SRM), joiden tulokset muodostavat osallistujien arvosanan, sekä vuosittainen TopCoder Open . venäläinen resurssi Codeforces pitää myös säännöllisiä kierroksia [16] joiden tulosten perusteella muodostetaan oma luokitus. Vuoden 2021 lopussa Sort Me -alusta saavutti suosion Venäjällä , ja se isännöi Sort Me Roundia [17] kuukausittain muokattujen ACM-sääntöjen [18] mukaisesti .

Suuret IT-yritykset järjestävät säännöllisesti ja yleensä yksittäisiä ohjelmointikilpailuja, kuten Google Code Jam , Facebook Hacker Cup , Russian Code Cup .

Muistiinpanot

  1. Olympiad - Olympian historia (linkki ei ole käytettävissä) . Haettu 9. syyskuuta 2011. Arkistoitu alkuperäisestä 10. elokuuta 2011. 
  2. Koululaisten olympialaisten järjestämismenettely . venäläinen sanomalehti . Haettu 25. tammikuuta 2022. Arkistoitu alkuperäisestä 25. tammikuuta 2022.
  3. Uralin alueellinen ohjelmointiolympialainen (linkki ei saavutettavissa) . Klassisen koulutuksen keskus UrFU B. N. Jeltsin (USU). Haettu 9. marraskuuta 2011. Arkistoitu alkuperäisestä 6. lokakuuta 2010. 
  4. Informatiikan olympialaiset. Pietari, Venäjä . Haettu 9. marraskuuta 2011. Arkistoitu alkuperäisestä 17. marraskuuta 2011.
  5. Informatiikan olympialaiset. Pietari, Venäjä . neerc.ifmo.ru. Haettu 27. heinäkuuta 2016. Arkistoitu alkuperäisestä 24. elokuuta 2016.
  6. SN on VKOSHP - 2015  (eng.) . vkoshp2015.snarknews.info. Haettu 27. heinäkuuta 2016. Arkistoitu alkuperäisestä 8. elokuuta 2016.
  7. Lajittele minut . sähke . Haettu 9. toukokuuta 2022. Arkistoitu alkuperäisestä 9. toukokuuta 2022.
  8. SnarkNews . Haettu 18. maaliskuuta 2022. Arkistoitu alkuperäisestä 14. huhtikuuta 2021.
  9. ITMO:n maailmanmestarit REN TV:n uutisissa :: :: Video RuTubessa  (linkki ei saavutettavissa)
  10. Pietariin avattiin ohjelmointiakatemia - Natalja Shergina - "Maailmanmestarit saivat klusterin" - Rossiyskaya Gazeta - Avattiin Pohjoispääkaupungissa ... . Haettu 2. toukokuuta 2020. Arkistoitu alkuperäisestä 1. joulukuuta 2017.
  11. ITMO-opiskelijoista tuli ohjelmoinnin maailmanmestareita . Haettu 9. syyskuuta 2011. Arkistoitu alkuperäisestä 3. marraskuuta 2010.
  12. Dmitri Medvedev tapasi ohjelmoinnin maailmanmestaruuden voittajat - Channel One
  13. Tänään presidentti tapasi opiskelijat - ohjelmoinnin maailmanmestaruuskilpailun voittajat - Channel One
  14. Venäjän presidentti Dmitri Medvedev jatkaa perinnettä tapaamaan venäläisiä opiskelijoita, ohjelmoinnin maailmanmestaruuskilpailun voittajia yliopistojen yhdistettyjen joukkueiden kesken. - RIA Novosti .... Haettu 9. marraskuuta 2011. Arkistoitu alkuperäisestä 18. tammikuuta 2012.
  15. Ohjelmoinnin planeetan mestaruuden - Channel One - voittajat toivat Venäjälle kolme kultamitalia . Haettu 9. marraskuuta 2011. Arkistoitu alkuperäisestä 8. elokuuta 2013.
  16. ↑ 1 2 Stankevich Andrey Sergeevich  (pääsemätön linkki)
  17. sort-me.org - Resurssi - CLIST . clist.by . Haettu 25. tammikuuta 2022. Arkistoitu alkuperäisestä 25. tammikuuta 2022.
  18. Lajittele minut, lajittele minut. Sort Me Round säännöt . Teletype (24. lokakuuta 2021). Haettu 25. tammikuuta 2022. Arkistoitu alkuperäisestä 25. tammikuuta 2022.

Linkit