Pravidla KSP-H

KSP-H je hlavní kategorií Korespondenčního Semináře z Programování spočívající v řešení převážně algoritmizačních úloh. Jedná se sice o soutěž, jejím hlavním posláním je však naučit řešitele algoritmizaci a programování. Od této myšlenky se odvíjí většina pravidel.

Obecná pravidla a průběh ročníku KSP-H

  • KSP-H je určené pro středoškoláky a nadané základoškoláky. Pro jiné zájemce o řešení jsou úlohy v KSP-H také otevřené, detaily jsou sepsané na konci pravidel v sekci Účast pro nestředoškoláky.
  • Ročník KSP-H začíná a končí se školním rokem a skládá se z pěti sérií úloh, z nichž každá je tvořena čtyřmi standardními a jednou seriálovou úlohou.
  • Pro každou sérii je stanoven nejzazší termín na odevzdávání úloh (typicky bývá v noci z neděle na pondělí).
  • Řešení úloh by měli řešitelé vymýšlet sami – tím se naučí výrazně více, než když řešení úloh od někoho opíší.
  • Po termínu odevzdání série organizátoři…
    • zveřejní vzorová řešení,
    • a opraví a obodují odevzdaná řešení a zašlou okomentovaná řešení zpět řešitelům (aby se řešitelé mohli ze svých případných chyb poučit).

Bodování a odměny

  • Každá úloha má stanovený maximální počet bodů podle své obtížnosti.
  • Za celý ročník lze získat 300 bodů (tedy typicky 60 bodů za sérii).
  • Do výsledkové listiny se započítávají všechny body ze standardních úloh a seriálu.
  • Získáním alespoň 50 % bodů se řešitel stává Úspěšným řešitelem a získá osvědčení, které mu může pomoci například s odpuštěním přijímaček na Matfyz.
  • Za bonusové úlohy se získávají speciální odměny a bonusové body, které se nepočítají do standardní výsledkové listiny.
  • Nejlepší řešitelé daného ročníku budou pozváni na podzimní soustředění, první tři z nich budou navíc zvěčněni v síni slávy a dostanou věcné ceny.

Úlohy

  • Standardní úlohy mohou být teoretické nebo praktické, dále existují seriálové úlohy, které skrz celý ročník postupně rozvíjí nějaké zajímavé téma z informatiky.
  • Některé série mohou navíc obsahovat bonusové úlohy, které se nepočítají do výsledkové listiny, ale jsou za ně speciální odměny.
  • Všechny úlohy se odevzdávají elektronicky pomocí webového Odevzdávátka, na stejném místě pak řešitelé naleznou i opravená řešení.

Teoretické úlohy

  • Úkolem řešitelů je zpravidla vymyslet co nejlepší algoritmus, který úlohu vyřeší.
  • Řešitelé vymyšlený algoritmus neprogramují, ale sepíší jeho slovní popis a odevzdají ho přes webové rozhraní (například jako soubor ve formátu PDF). Zdrojový kód mohou řešitelé přiložit, ale nemůže nahradit slovní popis řešení (a ideálně by to neměl být screenshot editoru, ale vložený zdrojový kód).
  • Slovní popis řešení přijímají organizátoři v češtině, slovenštině nebo angličtině.
  • Správné řešení by mělo obsahovat: Jak by mělo řešení vypadat ukazují vzorová řešení KSP-H nebo ukázková úloha MO-P.
  • Organizátoři obodují úlohy zejména podle:
    • efektivity popsaného řešení,
    • důkazu správnosti algoritmu (v případě, že je potřeba),
    • správného odhadu časové a paměťové složitosti a
    • přehlednosti popisu.

Praktické (open-data) úlohy

  • Praktická úloha spočívá v napsání programu, který vyřeší daný úkol.
  • Program může být napsán v libovolném programovacím jazyku, řešitelé si ho spouští u sebe na svých počítačích.
  • Pro otestování slouží několik testovacích vstupů, které si řešitel vygeneruje v Odevzdávátku, svým programem spočítá pro každý vstup výstup a tyto výstupy odevzdá v Odevzdávátku.
    • Na vyřešení vstupu je omezený čas, po jeho vypršení je nutné si vygenerovat nový vstup (počet vygenerování nového vstupu je neomezený).
    • Odevzdávátko výstup okamžitě vyhodnotí a zobrazí výsledek.
    • Při neúspěchu lze celý postup opakovat.
  • Vstupních souborů je typicky několik, liší se náročností na zpracování.
    • Za každý správně vyřešený vstupní soubor lze získat nějaký počet bodů (podle jeho obtížnosti), k získání všech bodů za úlohu je potřeba správně vyřešit všechny vstupní soubory.
    • I pomalejší počítač by měl zvládnout vyřešit nejnáročnější vstupní soubor s dostatečnou časovou rezervou – pokud program nestíhá doběhnout, je pravděpodobně nutné zlepšit algoritmus, výměna počítače za rychlejší typicky nepomůže.

Seriál

  • Seriálové úlohy vycházejí v každé sérii a navazují na sebe (je možné zapojit se do řešení seriálu i později v průběhu ročníku, ale může být nutné nastudovat jeho předchozí díly).
    • Pro zjednodušení nastudování předcházejících sérií řešitelům umožňujeme odevzdávat seriálové úlohy i po jejich termínu až do konce ročníku.
    • Za takovéto řešení řešitel získá polovinu bodů.
    • Každý řešitel ale může takto odevzdat řešení jen jednou a to pouze v případě, že danou úlohu neodevzdal v řádném termínu.
    • Z důvodu předešlých pravidel vzorová řešení seriálu organizátoři zveřejňují pouze řešitelům, který danou úlohu řešili. Veřejně budou zveřejněny až po konci ročníku.
  • Seriálová úloha v jedné sérii se skládá z textu popisujícího danou problematiku a několika tematických podúloh.
  • Podúlohy mohou být všelijakého typu, typicky se však v rámci jedné série odevzdávají zabalené do jednoho souboru typu ZIP. Pokud není určeno jinak, tak pro seriál platí stejná pravidla jako pro teoretické úlohy (odevzdává se popis algoritmu, …), u některých podúloh může být vyžadováno i odevzdání zdrojového kódu.

Bonusové úlohy

  • Spolu s některými sériemi budou organizátoři zveřejňovat bonusové (takzvané X-kové) úlohy.
  • Tyto úlohy jsou (stejně jako standardní úlohy) buď teoretické nebo praktické, ale typicky jsou těžší.
  • Body za řešení těchto úloh se počítají mimo standardní bodování.
  • Za každou bonusovou úlohu vyřešenou alespoň za polovinu bodů dostane řešitel speciální odměnu.

Účast pro nestředoškoláky

  • Zájemci o řešení KSP-H, kteří již nestudují na střední ani základní škole, jsou také vítáni, nevyplňují ale přihlášku do ročníku a nebudou zobrazeni ve výsledkové listině.
  • Tito zájemci mohou řešit libovolně praktické úlohy, které jsou dostupné skrz Cvičiště.
    • Ve Cvičišti jsou dostupné všechny praktické úlohy ze všech ročníků KSP-H a KSP-Z (včetně aktuálních sérií).
    • Pro přístup ke Cvičišti postačuje registrace na webu, není potřeba vyplňovat žádnou přihlášku.
  • Na opravování teoretických úloh nestředoškoláků bohužel nemají organizátoři kapacitu (je ale možné si s organizátory individuálně dojednat výjimku).

Použití úloh KSP-H ve výuce

  • Použití starších úloh KSP-H při výuce informatiky plně podporujeme, vzdělávání je hlavním cílem KSP.
  • Pokud se ale studenti dozví řešení aktuálních úloh během vyučování, nesmí danou úlohu odevzdat (nebylo by to fair-play vůči těm, kteří vymysleli sami).
  • Je možné řešení úloh KSP-H ocenit bonusově, ale nemělo by být bráno jako primární hodnocení studenta.