Korešpondenčný seminár z programovania (KSP) je individuálna súťaž programátorov organizovaná skupinou študentov FMFI UK. Je určená pre žiačky a žiakov stredných a základných škôl, ktorí sa chcú zlepšovať v programovaní.
Pre najlepších riešiteľov každoročne organizujeme dve týždenné sústredenia, na ktorých majú jedinečnú možnosť spoznať nových kamarátov, naučiť sa niečo viac o programovaní a zažiť kopec zábavy.
Ako KSP prebieha?
Každý ročník KSP sa skladá z dvoch nezávislých častí - zimnej a letnej. Každá časť má dve kolá, každé kolo obsahuje 8 súťažných úloh. Najlepších riešiteľov zimnej časti pozývame na jarné sústredenie; najlepších riešiteľov letnej časti pozývame na jesenné.
Za každú úlohu sa dá získať 0 až 20 bodov. Úlohy sú v rámci kola zoradené podľa obtiažnosti (toto zoradenie je, samozrejme, subjektívne). Začínajúci riešitelia môžu riešiť všetkých 8 úloh, skúsenejší riešitelia postupne strácajú možnosť súťažne riešiť najľahšie úlohy. Do výsledkov súťaže sa každému započítava 5 najlepšie vyriešených úloh z každého kola. To, kto môže riešiť ktoré úlohy, je určené systémom levelov. Dosiahnuteľné levely sú 1 až 4, riešiteľ s levelom $L$ môže riešiť úlohy s číslom $L$ až 8.
Riešenia súťažných úloh sa odovzdávajú cez formulár priamo pod zadaním do termínu, ktorý je vopred určený. Ku každej úlohe (ak nie je povedané ináč) sa odovzdáva slovný popis a program, ktorý zadanú úlohu rieši. Program bude okamžite po odovzdaní otestovaný a na stránke úlohy sa zjavia výsledky testovania. Slovné popisy opravia vedúci (organizátori) až po konci kola a každému pridelia body. Rozdelenie 20 bodov za úlohu medzi popis a program je vopred napísané v zadaní. Zvyčajne bude za popis pridelených 12 bodov a za program 8 bodov. Popis aj program sa dajú odovzdávať viackrát, avšak počíta sa len posledný popis a posledný program odovzdaný pred určeným termínom kola.
O tom, čo by malo obsahovať vaše riešenie, si môžete prečítať na stránke Ako riešiť.
Doprogramovávanie
Po uplynutí riadneho termínu kola nastáva fáza doprogramovávania. Tá trvá zvyčajne dva týždne a tiež má zverejnený termín, v ktorom končí. Počas tejto fázy sa slovné popisy už odovzdávať nedajú. Stále sa však dajú získať body za naprogramovanie správneho riešenia. Naviac sú počas tejto fázy zverejnené vzorové riešenia, ktoré vám majú pomôcť úlohu vyriešiť a úspešne naprogramovať.
Počas fázy doprogramovávania sa vaše skóre nemôže zhoršiť. Môže sa iba vylepšiť a to až o polovicu bodov, ktoré sa vám nepodarilo získať do uplynutia riadneho termínu. Presnejšie to funguje nasledovne:
Zoberieme posledný submit (t.j. odovzdaný program) riešiteľa pred uplynutím riadneho termínu. Povedzme, že zaň získal $X$ bodov. Potom zoberieme posledný submit zaslaný pred uplynutím doprogramovávacej fázy, nech zaň získal $Y$ bodov. Bodový zisk za programovaciu časť tejto úlohy bude potom $X + \max(0, (Y-X)/2)$, čo je to isté ako $\max(X, (X+Y)/2)$.
Ak napríklad Julka počas riadneho termínu získala za program 5 bodov a počas doprogramovávacej fázy odovzdala program, ktorý získal až 10 bodov, celkovo za program získa 7.5 bodu.
Levely
Každý riešiteľ KSP má priradený level - číslo z rozmedzia 1 až 4. Tento level ovplyvňuje to, ktoré úlohy sa riešiteľovi započítavajú do výsledného poradia. Presnejšie, riešiteľovi na leveli $L$ sa do výsledného poradia započítava 5 najlepšie vyriešených úloh spomedzi úloh $L$ až 8.
Každý žiak, ktorý začne riešiť KSP, začína na leveli 1. Level riešiteľa sa nikdy neznižuje, v priebehu jednej časti sa level nemení, a na začiatku každej časti sa môže zvýšiť dvoma spôsobmi:
-
Ak sa riešiteľ počas predošlej časti zúčastnil sústredenia, na ktoré bol pozvaný ako riešiteľ s levelom $L$, zvýši sa mu level na $L+1$. Keďže sústredenie pre každú časť sa koná vždy až v priebehu nasledujúcej časti, tento druh postupu sa neprejaví hneď po úspešnej časti.
-
Ak sa riešiteľ v predošlej časti umiestnil v prvej päťke vo výsledkovej listine levelu $L$ a získal v nej aspoň 150 bodov, stúpne mu level na $L+1$.
Výnimkou je level 4, z ktorého sa už vyššie postúpiť nedá.
Príklady výpočtu levelov
Pre lepšie pochopenie fungovania levelov uvádzame nasledovné dva príklady.
Zuzka je šikovná prváčka. Keďže KSP predtým neriešila, začala s levelom 1 a hneď v zimnej časti sa jej podarilo umiestniť v prvej päťke riešiteľov levelu 1 a získala viac ako 150 bodov. Keď teda začala letná časť, Zuzka mala už level 2. Zuzka išla dokonca aj na jarné sústredenie. Na sústredenie bola ale pozvaná z časti, v ktorej mala ešte len level 1 a preto sa jej level už viac nezvýšil.
V letnej časti sa jej darilo trocha menej. Bola síce úspešná, no neumiestnila sa v prvej pätici. Keď teda ako druháčka začala riešiť zimnú časť, bola stále na leveli 2. Počas zimnej časti sa zúčastnila jesenného sústredenia (na ktoré bola pozvaná z letnej časti, ktorú riešila s levelom 2). Zimnú časť teda dokončila na leveli 2, pričom sa jej opäť nepodarilo dostať do prvej pätice. Keď však prišla nasledujúca letná časť, Zuzka mala už level 3 - na jeseň sa totiž zúčastnila sústredenia, kam išla s levelom 2, a preto sa jej level zvýšil.
Príklad Zuzky by mal dostatočne ilustrovať fungovanie nového systému levelov. Naviac, level sa bude počítať automaticky a bude si ho možné pozrieť na stránke so zadaniami. V prípade nejasností, alebo iných otázok je nás však možné kontaktovať na ksp-info ~ ksp ~ sk.
Čo je povolené a čo nie
Pri riešení úloh nie je povolené rozprávať sa o ich riešení s inými ľuďmi a samotné programovanie a spisovanie popisov je tiež nutné robiť samostatne. Je povolené hľadať si informácie na internete. Nie je povolené aktívne sa pýtať otázky týkajúce sa riešenia úloh na rôznych fórach ani klásť otázky jazykovým modelom (napr. ChatGPT), či inak zisťovať riešenie zadanej úlohy za pomoci tretej strany. Pri porušení týchto pravidiel môžu byť riešiteľom strhnuté body. Ak sa situácia s podozrením na podvádzanie zopakuje viackrát, môže byť riešiteľ nepozvaný na sústredenia.
Tieto pravidlá sú tak nastavené preto, lebo cieľom je naučiť riešiteľov súťažnému programovaniu a informatike a veríme, že takýto spôsob riešenia je pre riešiteľov najviac prínosný.
Odmeny a pozývanie na sústredenie
Úspešný riešiteľ je každý riešiteľ, ktorý v priebehu časti získal aspoň 100 bodov.
Výhercom časti sa stáva riešiteľ, ktorý sa v ľubovoľnej výsledkovke levelu umiestnil na jednom z prvých dvoch miest a zároveň v tomto leveli získal aspoň 150 bodov. Každý výherca potom od nás získa pekné vecné ceny :)
Na sústredenie pozývame spravidla 36 účastníkov. Z každého levelu sa pozývajú úspešní riešitelia, ktorí skončili na jednom z prvých 5 miest. Zvyšní účastníci sa doplnia riešiteľmi, ktorí dosiahli aspoň 80 bodov podľa poradia v celkovej výsledkovke.
Ak riešiteľ rieši aj seminár Prask, v danom polroku sa môže zúčastniť len jedného zo sústredení KSP a Prasku.
Organizátori si v neočakávanom prípade vyhradzujú právo zmeniť platnosť vyššie popísaných pravidiel podľa ich najlepšieho uváženia. (Napríklad ak sa na rovnakom mieste výsledkovej listiny umiestni veľké množstvo riešiteľov.)
Prijatie na FMFI UK bez prijímačiek
Ak účastník získa v niektorej časti (zimnej, letnej) a ľubovoľnej kategórii KSP aspoň 65 % celkového počtu bodov, a hlási sa na študijný program, ktorého profilovým predmetov je informatika, bude prijatý.
Ba čo viac, ak dosiahne excelentné výsledky a dostane za to Dekanský list, v prípade, že príde študovať na FMFI UK, čaká naňho motivačné štipendium vo výške približne 300 eur.
Čas poslednej úpravy: 29. august 2024 21:55