Regler
Nytt för 2024/2025: användning av AI
Med hänsyn till utvecklingen av AI, så är generativ AI helt bannad under tävlingar.
Exempel på saker som inte är okej:
- Använda ChatGPT eller Llama online
- Sätta upp en chatbot lokalt
- Använda GitHub Copilot
Exempel på saker som är okej:
- Kodkompletteringsverktyg som fyller i variabelnamn eller funktioner med tab. Det vill säga, de föreslår inte mer än ett "ord" åt gången.
- Andra "ointelligenta" funktioner i kodredigerare, så exempelvis att skriva for och trycka tab skapar en for loop.
- Använda forum som Stack Overflow för att läsa gammalt innehåll (inte ställa frågor!!). Även om innehåll där potentiellt kan vara genererat av AI är det okej eftersom det skapades innan tävlingen började.
Om du har en fråga vare sig något särskilt är tillåtet eller inte, kontakta årets huvuddomare på joshua.andersson@kodsport.se.
Allmänt
- En deltagare i Programmeringsolympiaden säsongen 20AB-20CD måste under hösten år 20AB (alltså i början av tävlingssäsongen) vara antingen
- gymnasie- eller grundskoleelev i svensk skola, eller
- gymnasie- eller grundskoleelev i annat land och svensk medborgare
- Under alla tävlingar arrangerade av Programmeringsolympiaden är det tillåtet att använda egen, tidigare skriven kod, andras, tidigare skriven, kod samt söka på Internet och i skrivet material.
- Det är under en tävling aldrig tillåtet att kommunicera med andra än domarna angående uppgifterna. Det är t.ex. inte tillåtet att posta en fråga i ett forum om något som är relevant för ett problem (men det är okej att använda sig av existerande svar till samma fråga om den hittas under sökning på Internet).
- Tävlingsresultatet är inte slutgiltigt förrän det har bekräftats av tävlingskommittén.
- För alla tävlingar kan eventuella överklaganden lämnas in inom 24 timmar från det att tävlingskommittén publicerar tävlingens testfall och meddelat deltagarna detta. Tävlingskommittén tar ställning till varje överklagande, och bekräftar inte resultatet innan alla överklaganden behandlats. Tävlingskommitténs beslut om överklagande kan ej överklagas.
Skolkvalet
- Skolkvalet sker på en gymnasie- eller högstadieskola där en ansvarig lärare har anmält sig att arrangera tävlingen.
- Tid och datum för skolkvalet bestäms av den ansvariga läraren, bland något av de datum som tävlingskommittén bestämmer.
- Deltagare i skolkvalet anmäler sig direkt till den ansvariga läraren. En deltagare behöver inte delta på sin egen skola, men en skola har inget tvång att ta emot deltagare från andra skolor.
- Skolkvalets längd är 4 timmar i sträck. Tiden fortsätter alltså ticka ner även om deltagaren tar paus.
- Deltagare får använda vilken dator de själva vill, programmera i vilket språk som helst och använda vilken kompilator som helst.
- In- och utdata sker genom ett interaktivt gränssnitt med den användare som rättar. Gränssnittet kan exempelvis vara textbaserat i terminalen, genom inläsning och utskrift till filer, grafiskt eller genom ifyllande och utläsande av celler i ett kalkylblad.
- Rättningen sker manuellt av en ansvarig lärare efter tävlingen.
Onlinekvalet
- Onlinekvalet sker på Programmeringsolympiadens rättningssystem för programmeringsuppgifter, Kattis.
- Tävlingen pågår under en tid specifierad av tävlingskommittén.
- Anmälan till tävlingen sker direkt i rättningssystemet.
- Hela onlinekvalets längd kan utnyttjas av deltagare.
- Enbart de programmeringsspråk och kompilatorer som Kattis stödjer kan användas under onlinekvalet.
Finalen
- Till finalen kvalificeras alla deltagare som i skolkvalet får minst lika många poäng som skolkvalsgränsen, och alla deltagare som i onlinekvalet får minst lika många poäng som onlinekvalsgränsen. Dessa gränser specifieras av tävlingskommittén efter de båda kvaltävlingarnas slut.
- Vinnaren i finaltävlingen utses till svensk gymnasiemästare i programmering. Vid delad förstaplats är titeln delad.
- Finalen sker på plats annonserad av tävlingskommittén.
- Finalen använder Programmeringsolympiadens rättningssystem för programmeringsuppgifter, Kattis.
- Tävlingen är 5 timmar lång.
- Enbart de programmeringsspråk och kompilatorer som Kattis stödjer kan användas under finalen.
- Deltagande i finalen måste ske på plats för att räknas med i de officiella resultaten. Under särskilda omständigheter kan tävlingskommittén besluta att ett deltagande på distans får räknas med för landslagsuttagningen.
KATT-tävlingarna
- KATT-tävlingarna sker på ett rättningssystem (inte nödvändigtvis Kattis) uppsatt av tävlingskommittén.
- Tävlingen pågår under en tid specificerad av tävlingskommittén.
- Anmälan till tävlingen sker direkt i rättningssystemet.
- Enbart de programmeringsspråk som stöds i det närmast kommande IOI är garanterade att kunna användas under KATT. För närvarande är detta C++.
Teoribladet
Teoribladet består i regel av 4 problem. Momentet går ut på att skriftligt beskriva algoritmer som löser problemen. Tävlingen pågår i 2 veckor. Vid sen inlämning gäller följande avdrag. Anta att du efter rättning hade fått X poäng.- Om du lämnar in 1h sent får du X*0.95 poäng
- Om du lämnar in 12h sent får du X*0.7 poäng
- Om du lämnar in 24h sent får du X*0.5 poäng
- Om du lämnar in senare får du 0 poäng
Landslagsuttagning
Uttagningen består av flera delmoment som vägs ihop. Vägningen sker på följande vis: varje moment har en vikt V. Om högsta poängen på ett moment är M och du får P poäng, så blir det viktade resultat P/M*V. Exempelvis, om du får 240/600 poäng på finalen, och finalen har vikt 100, så får du 40 uttagningspoäng. Delmomenten och dess vikter under 2024 var följande. Notera att dessa kan komma att ändras från år till år.- Finalen (100)
- Lägertävlingen (100)
- Teoriblad (50)
- KATT (100)
- Nordiska Programmeringsolympiaden (100)
- Långtävling (100)