Programmerings-olympiader

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 23. maj 2021; checks kræver 11 redigeringer .

Programmering Olympiade ( Informatik Olympiade ) er en intellektuel konkurrence til løsning af forskellige problemer på en computer , for hvis løsning det er nødvendigt at opfinde og anvende enhver algoritme eller program på et af programmeringssprogene . Som regel får deltagerne et sæt af flere opgaver. Problemet anses for løst, hvis deltagerne var i stand til at lave et program, der fungerer korrekt på de prøver, som juryen har udarbejdet. Testene er ukendte for deltagerne.

Olympiader er individuelle og hold. Hold-olympiader involverer normalt 3 personer, og de er forsynet med 1 computer i hele Olympiadens varighed for at løse problemer. Specialiserede softwareturneringssystemer bruges til at gennemføre sådanne konkurrencer.

Opgaveformat

Sportsprogrammeringsproblemer er unikke ved, at svaret på dem er et program, der optimalt løser problemet på én gang for alle mulige inputdata.

For eksempel, hvis det enkleste matematiske problem lyder som "Tilføj to tal: 4 og 5 " , så vil det enkleste programmeringsproblem lyde som "Skriv et program, der tilføjer to vilkårlige tal." I dette tilfælde vil deltageren blive bedt om at skrive et program, der læser to tal gennem standardinputstrømmen og udsender ét tal - svaret på problemet - til standardoutputstrømmen . Nogle gange tilbyder konkurrencearrangører at læse og udlæse data på en anden måde, for eksempel gennem . A+B er en klassisk udfordring for at lære dette format at kende.

Selvfølgelig skal konkurrencens jury på en eller anden måde sikre sig, at deltagerens program fungerer korrekt for enhver data. For at gøre dette udarbejdes der inden konkurrencen et sæt test , hvorpå deltagernes løsninger vil blive lanceret, og et sæt svar på dem. Hvis juryen og deltageren har de samme svar på alle prøver, vil afgørelsen modtage en fuld score, hvis ikke, en delvis eller nul. Ved de fleste olympiader er kontrollen automatiseret og udføres umiddelbart efter, at deltageren har indsendt løsningen, hvilket giver ham mulighed for hurtigt at informere ham om resultatet og give ham en chance for at forfine programmet.

Ofte kontrolleres løsningen ikke kun for korrekthed, men også for effektivitet. For at gøre dette indfører testsystemet en grænse for mængden af ​​processortid, som det indlæste program kan bruge, og inputdataene i nogle tests er valgt, så den ineffektive løsning kører for længe. Som følge heraf fejler en sådan løsning disse tests og får en ufuldstændig score.

Forfatterne forsøger at vælge inputdata på en sådan måde, at køretiden for en ineffektiv løsning overskrider den fastsatte grænse med mange gange, hvilket eliminerer indflydelsen af ​​forskelle i processorkarakteristika, målefejl, Turbo Boost og andre faktorer på resultatet. Samtidig måles processortiden og ikke den reelle eksekveringstid, så testserverens processorbelastning med andre opgaver bør heller ikke påvirke resultatet.

Tilstandstekster

I en verden af ​​sportsprogrammering er der et bestemt format for problemforhold. Selvom det ikke er officielt standardiseret af nogen, opdeler de facto konkurrencer rundt om i verden betingelserne for problemerne i følgende underafsnit:

OL i USSR og Rusland

Blandt skolebørn

Den første olympiade i programmering blandt skolebørn i Moskva blev afholdt i 1981 (der var kun 4 deltagere), og den første olympiade i USSR (under navnet Olympiade i informatik) blev afholdt blandt skolebørn og fandt sted i 1988 i Sverdlovsk [1] . I fremtiden blev Olympiads in Informatics en del af All-Unionen (og efter Sovjetunionens sammenbrud - All-Russian) fagolympiader for skolebørn.

Traditionelt er olympiader for skolebørn individuelle konkurrencer, der afholdes i henhold til et system på flere niveauer, i flere faser: distrikt, by, regionale, nationale olympiader. Vindere af den helrussiske olympiade får ret til at deltage i internationale olympiader i informatik .

Listede olympiader

Hvert år udarbejder det russiske råd for olympiader for skoleelever (RSOS) en særlig liste over olympiader, som kan omfatte personlige olympiader i sportsprogrammering. Sådanne konkurrencer afholdes altid i to faser: kvalifikation (online) og finale (personligt, men undtagelser var tilladt på grund af COVID-19-pandemien ). Kun myndigheder inden for uddannelses- og videregående uddannelsesinstitutioner har ret til at gennemføre listeolympiader. [2]

Høje resultater vist ved sådanne olympiader kan give nogle privilegier, når de går ind på et universitet , herunder optagelse uden adgangsprøver eller afrunding af USE-resultaterne i datalogi til 100 point (hvis den studerende opnåede mindst 75 point).

Skoleholdskonkurrencer

Hold-olympiader på flere niveauer afholdes også blandt skolebørn, efter reglerne svarende til reglerne for internationale elev-olympiader [3] [4] .

Den mest berømte hold-olympiade er den all-russiske hold-olympiade for skolebørn i programmering [5] (VKOSHP). Det afholdes normalt i begyndelsen af ​​december i forskellige byer i Rusland: St. Petersborg, Barnaul og byer i andre lande. Du skal kvalificere dig til denne olympiade i din region, normalt tager 10-20 hold fra Moskva, lidt færre fra St. Petersborg [6] .

Studerende

Olympiader i datalogi blandt studerende i USSR i hele landet blev ikke afholdt. Fra 1996 begyndte studerende fra russiske universiteter at deltage i konkurrencer inkluderet i systemet for World Team Programming Championship blandt studerende , afholdt af den amerikanske sammenslutning ACM .

Entusiaster organiserede også forskellige intra- og interuniversitets-olympiader. Normalt er disse olympiader sponsoreret af et softwareudviklingsfirma, der er interesseret i at tiltrække talentfulde studerende til at arbejde med dem.

Test af systemer og platforme

Processen med at verificere løsninger kræver computerkraft, nøjagtig måling af forbrugte ressourcer, support til et stort antal compilere, isolering af eksekverbare programmer og mange andre komplekse tekniske løsninger. I Rusland er der udviklet flere systemer og platforme til programmeringskonkurrencer:

Navn Stat Skrevet i Bemærk
udstøde Understøttet, licenseret under GPL Xi Et open source-system udviklet i 2000'erne.

På grund af arkitekturens ejendommeligheder understøtter den ikke multi-core test, hvilket i høj grad bremser testning. Det bruges dog stadig i konkurrence.

PCMS Understøttet Java Oprettet i 2004 på ITMO University for at være vært for sine egne olympiader, fortsætter den med at udvikle sig inden for sine mure.

På dette testsystem afholdes den all-russiske skolebørnsolympiade .

sortere mig Understøttet Projektet blev lanceret den 1. oktober 2021.

Ifølge skaberne er det verdens hurtigste testsystem, der kan fremskynde ikke kun kontrol, men også kompilering af programmer. [7] Det eneste projekt i Rusland, der udvikler sig uden støtte fra noget universitet, fond eller virksomhed.

Kodekræfter Understøttet Java Oprettet i 2010 ved Saratov State University .

Den mest populære sportsprogrammeringsplatform. Testlib.h-biblioteket skabt af Codeforces er de facto-standarden for opgaveudvikling. Projektet er lokaliseret til engelsk og udviklet med støtte fra ITMO University og udenlandske sponsorer.

Yandex konkurrence Understøttet Python Yandex projekt . Kan bruges til dine egne konkurrencer. Det bruges hovedsageligt til optællingsolympiader og lokale træninger.
Konkurrent Projekt lukket Delphi / FreePascal Oprettet på Kovrov State Technological Academy i 2008. Det var en selvstændig server, der indeholdt omkring 130 opgaver.
Timus online dommer Vedligeholdt men ikke udviklet ukendt Et stort online arkiv med problemer udviklet i 2000 på Ural Federal University .
acm.sgu.ru Projekt lukket ukendt Websted for uddannelse af studerende fra Saratov State University .
acmp.ru Understøttet .NET Et stort arkiv af opgaver, udviklet siden 2006 med støtte fra Krasnoyarsk Pioneer Palace . Dette websted er vært for skole- og kommunale etaper af den all-russiske olympiade for skolebørn (kun for Krasnoyarsk-territoriet).

OL i Hviderusland

Olympiade blandt skolebørn

I Hviderusland afholdes olympiade i programmering (i informatik) blandt skolebørn i flere faser.

Den første etape er en intern skoleolympiade. Udført blandt studerende fra en bestemt uddannelsesinstitution. Som et resultat af konkurrencen går vinderne til næste etape. Testsystemer (turneringssystemer) bruges til at gennemføre sådanne olympiader. Hvilket system der skal bruges, bestemmes af arrangørerne af Olympiaden. I Brest bruges for eksempel Brain Training -systemet , i nogle institutioner eJudge -systemet

Den anden etape er den kommunale olympiade (nogle gange kaldes den urban). En sådan olympiade afholdes blandt vinderne af den foregående fase, repræsenteret af hver skole i et bestemt område af byen. For eksempel afholdes to regionale olympiader i Brest: for Moskva- og Leninsky-distrikterne. Vinderne fra hvert distrikt går videre til næste fase. Obligatoriske betingelser for fortsat deltagelse i olympiaden (overgang til næste fase) er at score mere end 50% af de mulige point (i det akademiske år 2014-2015 blev denne regel annulleret).

Tredje etape er den regionale olympiade. Vinderne af den forrige etape (regional olympiade) deltager her. Hele Hviderusland er opdelt i 6 regioner (Brest, Vitebsk, Mogilev, Grodno, Gomel og Minsk), samt byen Minsk. Derudover fungerer den statslige uddannelsesinstitution "Lyceum of the Belarusian State University" som et separat team. I hver af dem udvælges deltagere til næste etape af olympiaden.

Den fjerde etape er den republikanske olympiade (sidste etape). Vinderne af regionale olympiader konkurrerer om titlen som den bedste programmør blandt skolebørn.

De bedste deltagere i den republikanske olympiade (normalt kun fra 9-11 klassetrin) udvælges til træningslejre til den internationale olympiade i informatik. Under træningslejren udvælges det endelige hold blandt dem.

ACM International Collegiate Programming Contest

Den største internationale programmeringskonkurrence for studerende er ACM International Collegiate Programming Contest . De generelle sponsorer af mesterskabet er virksomheder som Microsoft og IBM . I 2004 deltog 3150 hold fra 75 lande i det.

Hold fra Rusland er gentagne gange blevet vindere af denne prestigefyldte konkurrence [8] [9] [10] [11] [12] . Som et resultat af succesrige præstationer blev holdene hædret med et møde med præsidenten for Den Russiske Føderation [13] [14] [15] . En af trænerne og arrangørerne af disse olympiader i Rusland blev tildelt priserne fra præsidenten for Den Russiske Føderation og Den Russiske Føderations regering på uddannelsesområdet [16] .

Andre bemærkelsesværdige konkurrencer

Mange konkurrencer inden for sportsprogrammering er ikke direkte relateret til uddannelsessystemet, det vil sige, at professionelle programmører også deltager i dem. En populær sportsprogrammeringskonkurrence i verden er TopCoder- ressourcen , som regelmæssigt afholder runder (SRM), hvis resultater danner bedømmelsen af ​​deltagere, såvel som den årlige TopCoder Open . Den russiske ressource Codeforces afholder også regelmæssige runder [16] baseret på resultaterne, som dens egen rating er dannet af. I slutningen af ​​2021 vandt Sort Me-platformen popularitet i Rusland , hvor Sort Me Round [17] var vært på månedlig basis i henhold til de ændrede ACM-regler [18] .

Store it-virksomheder afholder regelmæssige og sædvanligvis individuelle programmeringskonkurrencer, såsom Google Code Jam , Facebook Hacker Cup , Russian Code Cup .

Noter

  1. Olympiade - Olympiadens historie (utilgængeligt link) . Hentet 9. september 2011. Arkiveret fra originalen 10. august 2011. 
  2. Proceduren for afholdelse af olympiader for skolebørn . russisk avis . Hentet 25. januar 2022. Arkiveret fra originalen 25. januar 2022.
  3. Ural Regional Programmering Olympiade (utilgængeligt link) . Center for Klassisk Uddannelse UrFU B. N. Jeltsin (USU). Hentet 9. november 2011. Arkiveret fra originalen 6. oktober 2010. 
  4. Olympiader i informatik. St. Petersborg, Rusland . Hentet 9. november 2011. Arkiveret fra originalen 17. november 2011.
  5. Olympiader i informatik. St. Petersborg, Rusland . neerc.ifmo.ru. Hentet 27. juli 2016. Arkiveret fra originalen 24. august 2016.
  6. SN på VKOSHP - 2015  (eng.) . vkoshp2015.snarknews.info. Hentet 27. juli 2016. Arkiveret fra originalen 8. august 2016.
  7. Sorter mig . telegram . Hentet 9. maj 2022. Arkiveret fra originalen 9. maj 2022.
  8. SnarkNews . Hentet 18. marts 2022. Arkiveret fra originalen 14. april 2021.
  9. Verdensmestre fra ITMO i REN TV-nyheder :: :: Video på RuTube  (utilgængeligt link)
  10. Et programmeringsakademi åbnede i St. Petersborg - Natalya Shergina - "Verdensmestre fik en klynge" - Rossiyskaya Gazeta - Åbnede i den nordlige hovedstad ... . Hentet 2. maj 2020. Arkiveret fra originalen 1. december 2017.
  11. ITMO-studerende blev verdensmestre i programmering . Hentet 9. september 2011. Arkiveret fra originalen 3. november 2010.
  12. Dmitry Medvedev mødtes med vinderne af verdensmesterskabet i programmering - Channel One
  13. I dag mødtes præsidenten med studerende - vindere af verdensmesterskabet i programmering - Channel One
  14. Den russiske præsident Dmitrij Medvedev vil fortsætte traditionen med møder med russiske studerende-vindere af verdensmesterskabet i programmering blandt kombinerede hold af universiteter. - RIA Novosti .... Hentet 9. november 2011. Arkiveret fra originalen 18. januar 2012.
  15. Tre guldmedaljer blev bragt til Den Russiske Føderation af vinderne af det planetariske mesterskab i programmering - Channel One . Hentet 9. november 2011. Arkiveret fra originalen 8. august 2013.
  16. ↑ 1 2 Stankevich Andrey Sergeevich  (utilgængeligt link)
  17. sort-me.org - Ressource - CLIST . clist.af . Hentet 25. januar 2022. Arkiveret fra originalen 25. januar 2022.
  18. Sort Me, Sort Me. Sort Me Round regler . Teletype (24. oktober 2021). Hentet 25. januar 2022. Arkiveret fra originalen 25. januar 2022.

Links