You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

626 lines
22 KiB

{
"tasks": [
{
"id": "26-Z1-1",
"type": "open-data",
"comment": "Kevin a magnety - triviální, lineární průchod pole",
"requires": [
"label-1d-pole",
"data"
],
"title": "Kevin a magnety",
"position": [
-165.5925064086914,
75.26382446289062
],
"taskReference": "26-Z1-1"
},
{
"id": "26-Z1-2",
"type": "open-data",
"comment": "Piškvorky - detekce vítězství v piškvorkách, procházení 2D pole v různych směrech",
"requires": [
"26-Z4-3"
],
"position": [
-538.6227111816406,
223.0074005126953
],
"taskReference": "26-Z1-2",
"title": "Piškvorky"
},
{
"id": "26-Z1-3",
"type": "open-data",
"comment": "Zamilovaný dopis - triviální, procházení stringů po znacích a kontrola podmínek",
"requires": [
"26-Z1-1",
"label-retezce"
],
"position": [
-143.04217529296875,
406.042236328125
],
"taskReference": "26-Z1-3",
"title": "Zamilovaný dopis"
},
{
"id": "26-Z1-4",
"type": "open-data",
"comment": "Hroch v jezeře - BFS či jiné prohledávání, počítání velikosti komponent v 2D poli, ",
"requires": [
"26-Z4-3",
"label-grafy"
],
"position": [
-811.6162109375,
282.03977966308594
],
"taskReference": "26-Z1-4",
"title": "Hroch v jezeře"
},
{
"id": "26-Z2-1",
"type": "open-data",
"comment": "Had z domina - triviální, linerání průchod pole a počítání, na kolika místech platí podmínka, vyžaduje práci se dvojicemi",
"requires": [
"26-Z1-1",
"label-1d-pole"
],
"position": [
-70.56319046020508,
120.35980987548828
],
"taskReference": "26-Z2-1",
"title": "Had z domina"
},
{
"id": "26-Z2-2",
"type": "open-data",
"comment": "SADO - triviální, procházení celých čísel v intervalu a kontrola podmínky",
"requires": [],
"position": [
1167.1616821289062,
208.39923095703125
],
"taskReference": "26-Z2-2",
"title": "SADO"
},
{
"id": "26-Z2-3",
"type": "open-data",
"comment": "Šifrovaná zpráva - práce s řetězci, hledání mapování mezi písmenky (substitučka) a validace, že jinde substitučka funguje",
"requires": [
"26-Z1-3",
"label-retezce"
],
"position": [
-218.5698013305664,
452.1306457519531
],
"taskReference": "26-Z2-3",
"title": "Šifrovaná zpráva"
},
{
"id": "26-Z2-4",
"type": "open-data",
"comment": "Životně důležitá úloha - dostanu pole čísel, potřebuju v něm najít pravidelně se opakující výskyty hodnot, relativně složitá práce s poli, dvojcemi apod.",
"requires": [
"26-Z2-1"
],
"title": "Životně důležitá úloha",
"position": [
-44.170326232910156,
178.35317993164062
],
"taskReference": "26-Z2-4"
},
{
"id": "26-Z3-1",
"type": "open-data",
"comment": "Zámky labyrintu - hromada ifů, vhodné možná na code review, hledání čísla z trojice takového, že je trojice aritmetrická posloupnost",
"requires": [],
"position": [
1205.6161193847656,
327.53318786621094
],
"taskReference": "26-Z3-1",
"title": "Zámky labyrintu"
},
{
"id": "26-Z3-2",
"type": "open-data",
"comment": "Čarodějova šifra - šifrování mřížkou, práce se stringy, rotace matice, vhodné na code review?, docela hard",
"requires": [
"26-Z4-3",
"29-Z3-2"
],
"position": [
-431.3240966796875,
546.5056457519531
],
"taskReference": "26-Z3-2",
"title": "Čarodějova šifra"
},
{
"id": "26-Z3-3",
"type": "open-data",
"comment": "Hádanka - triky s dělitelností devíti a rozkladem čísel, docela hard teorie",
"requires": [],
"position": [
1244.6161193847656,
406.53318786621094
],
"taskReference": "26-Z3-3",
"title": "Hádanka"
},
{
"id": "26-Z3-4",
"type": "open-data",
"comment": "Tvar labyrintu - nejdelší cesta ve stromě, graf",
"requires": [
"label-grafy-pracovni-poznamka"
],
"position": [
-890.9130859375,
501.766845703125
],
"taskReference": "26-Z3-4",
"title": "Tvar labyrintu"
},
{
"id": "26-Z4-1",
"type": "open-data",
"comment": "Vražedná čísla- WTF, teorie čísel, hard as fuck, divný",
"requires": [],
"position": [
1087.2091645675546,
270.43162285670724
],
"taskReference": "26-Z4-1",
"title": "Vražedná čísla"
},
{
"id": "26-Z4-2",
"type": "open-data",
"comment": "Sbírání vajíček - hledení mediánu, musí se to ale vymyslet, nejkratší cesta při chození tam a zpět",
"requires": [],
"position": [
1004.9775306332087,
310.44566129452164
],
"taskReference": "26-Z4-2",
"title": "Sbírání vajíček"
},
{
"id": "26-Z4-3",
"type": "open-data",
"comment": "Hra Othello - link na 26-Z1-2, procházení 2D pole po různých směrech",
"requires": [
"26-Z1-1",
"label-2d-pole"
],
"title": "Hra Othello",
"position": [
-480.6444091796875,
179.95367431640625
],
"taskReference": "26-Z4-3"
},
{
"id": "26-Z4-4",
"type": "open-data",
"comment": "Hlídači v labyrintu - policajti hlídající na grafu, konkrétně na stromě, rekurze, technicky asi až DP",
"requires": [
"label-grafy-pracovni-poznamka"
],
"position": [
-675.1974487304688,
442.068115234375
],
"taskReference": "26-Z4-4",
"title": "Hlídači v labyrintu"
},
{
"id": "27-Z2-1",
"type": "open-data",
"comment": "Závorky z cereálií - 2 průchody pole, závorky",
"requires": [
"26-Z1-1",
"label-1d-pole"
],
"position": [
-235.95565795898438,
131.96937561035156
],
"taskReference": "27-Z2-1",
"title": "Závorky z cereálií"
},
{
"id": "29-Z1-1",
"type": "open-data",
"comment": "Kevinova želva — triviální, průchod po 2D souřadnicích",
"requires": [
"label-zelvy"
],
"title": "Kevinova želva",
"position": [
153.23114013671875,
435.23114013671875
],
"taskReference": "29-Z1-1"
},
{
"id": "29-Z1-3",
"type": "open-data",
"comment": "Petrova statistika — ne úplně triviální, tvorba histogramu z pole",
"requires": [
"27-Z2-1"
],
"title": "Petrova statistika",
"position": [
-239.7012176513672,
191.6642303466797
],
"taskReference": "29-Z1-3"
},
{
"id": "29-Z1-4",
"type": "open-data",
"comment": "Zuzčin výlet — DFS (topologické pořadí)",
"requires": [
"label-grafy-pracovni-poznamka"
],
"position": [
-1084.8828125,
465.46002197265625
],
"taskReference": "29-Z1-4",
"title": "Zuzčin výlet"
},
{
"id": "29-Z2-1",
"type": "open-data",
"comment": "Krocení zlé želvy — triviální, průchod po 2D souřadnicích, přímo navazuje na 29-Z1-1",
"requires": [
"29-Z1-1"
],
"position": [
263.0097351074219,
491.6130676269531
],
"taskReference": "29-Z2-1",
"title": "Krocení zlé želvy"
},
{
"id": "29-Z3-1",
"type": "open-data",
"comment": "Želva na dvorku — spíš triviální, netriviální udělat efektivně (ale asi to není třeba pro úspěch), volně navazuje na 29-Z2-1 a 29-Z1-1, průchod po 2D souřadnicích, invalidní příkazy (směrem do překážky) ignorujeme",
"requires": [
"26-Z4-3"
],
"position": [
-394.7185363769531,
232.44407653808594
],
"taskReference": "29-Z3-1",
"title": "Želva na dvorku"
},
{
"id": "29-Z3-2",
"type": "open-data",
"comment": "Písemka z angličtiny — voser implementovat, easy dřevorubecký řešení, optimálně trie, což na Z IMHO hard",
"requires": [
"26-Z2-3",
"label-retezce"
],
"position": [
-321.57469177246094,
498.2836608886719
],
"taskReference": "29-Z3-2",
"title": "Písemka z angličtiny"
},
{
"id": "29-Z3-3",
"type": "open-data",
"comment": "Šestková čísla — mega voser implementovat, spíš matematická úloha, převod dešitkových čísel do hacknutých římských",
"requires": [],
"position": [
1229.6161193847656,
274.53318786621094
],
"taskReference": "29-Z3-3",
"title": "Šestková čísla"
},
{
"id": "29-Z4-3",
"type": "open-data",
"comment": "Želva v akváriu — malej voser, triviální, přímo navazuje na 29-Z2-1 a 29-Z1-1, průchod po 3D souřadnicích",
"requires": [
"29-Z1-1",
"29-Z2-1"
],
"position": [
119,
511
],
"taskReference": "29-Z4-3",
"title": "Želva v akváriu"
},
{
"id": "31-Z1-1",
"type": "open-data",
"requires": [],
"comment": "úloha s odčítáním času",
"title": "Zuzka a poník",
"position": [
1255.5751953125,
131.96621704101562
],
"taskReference": "31-Z1-1"
},
{
"id": "31-Z1-2",
"type": "open-data",
"comment": "BFS (šachovnice, custom figurka, nejkratší cesta) ",
"requires": [
"label-grafy-pracovni-poznamka"
],
"position": [
-763.1971435546875,
493.9221496582031
],
"taskReference": "31-Z1-2",
"title": "Ukradený jezdec"
},
{
"id": "31-Z1-4",
"type": "open-data",
"comment": "2D pole (až na poslední vstup), hešování (piškvorky) - navazuje na 26-Z1-2",
"requires": [
"26-Z1-2"
],
"title": "Piškvorky naslepo",
"position": [
-578.6199951171875,
278.00364685058594
],
"taskReference": "31-Z1-4"
},
{
"id": "31-Z3-2",
"type": "open-data",
"comment": "DFS (hledání cesty v grafu po písmenech)",
"requires": [
"label-grafy-pracovni-poznamka"
],
"position": [
-1028.935791015625,
523.2289428710938
],
"taskReference": "31-Z3-2",
"title": "Zámek obrazovky"
},
{
"id": "31-Z3-3",
"type": "open-data",
"comment": "barvení bipartitního grafu (hledání partit), na vstupu hrany",
"requires": [
"26-Z1-4",
"label-grafy"
],
"position": [
-899.0215454101562,
314.04736328125
],
"taskReference": "31-Z3-3",
"title": "Stáda hrochů"
},
{
"id": "data",
"type": "text",
"comment": "...",
"requires": [
"jak-resit-ulohy"
],
"title": "Data a algoritmy",
"htmlContent": "<h2>Datové struktury</h2><p>V programech potřebujeme nějak reprezentovat data o reálném světě. Paměť počítače je ale jen dlouhá sekvence bytů (malých čísel). Abychom mohli reprezentovat něco komplikovanějšího, skládáme si v paměti <strong>datové struktury.</strong> Technicky je to akorát hromada čísel, kterým přikládáme speciální význam. Pro potřeby programátora je ale často podstatnější ten samotný speciální význam, než hodnota čísel, kterými je zapsán.</p><p>Úlohy, které najdeš dále, se všechny zabývají nějakou datovou strukturou. Jsou uspořádány s rostoucí obtížností a pro pochopení složitějších datových struktur je často potřeba mít vštípené detaily struktury předchozí.</p><h2>Algoritmy</h2><p>Datové struktury jsou nám samotné k ničemu. K jejich smysluplnému využití potřebujeme nějaký důvod. Datovou strukturou jenom reprezentujeme nějaký stav světa. Proto v úlohách najdeš krom datových struktur také využití různých algoritmů - ověřených postupů, jak řešit nějaké druhy problémů.</p>",
"position": [
-29,
2
]
},
{
"id": "jak-resit-ulohy",
"type": "text",
"requires": [
"start"
],
"comment": "kecy o tom, jak se může řešit taková úloha",
"title": "Jak řešit úlohy?",
"htmlContent": "",
"position": [
43,
-98
]
},
{
"id": "label-1d-pole",
"type": "label",
"comment": "...",
"requires": [],
"title": "Pole",
"rotationAngle": 337,
"position": [
-184.5875244140625,
31.301490783691406
]
},
{
"id": "label-2d-pole",
"type": "label",
"comment": "...",
"requires": [],
"title": "2D pole",
"rotationAngle": 340,
"position": [
-498.642578125,
140.9576416015625
]
},
{
"id": "label-grafy",
"type": "label",
"comment": "...",
"requires": [],
"title": "Grafy",
"rotationAngle": 342,
"position": [
-879.3245239257812,
253.7253875732422
]
},
{
"id": "label-grafy-pracovni-poznamka",
"type": "text",
"comment": "Chtělo by to grafy celé nějak přeuspořádat. Je to přeci jen dost široké téma.",
"requires": [
"31-Z3-3"
],
"title": "Grafy, ale neuspořádané",
"htmlContent": "<p>undefined</p>",
"position": [
-916.2467041015625,
398.9772033691406
]
},
{
"id": "label-retezce",
"type": "label",
"comment": "...",
"requires": [],
"title": "Textové řetězce",
"rotationAngle": 326,
"position": [
-256.3359832763672,
405.51519775390625
]
},
{
"id": "label-uvod",
"type": "label",
"comment": "...",
"requires": [],
"title": "Úvod",
"position": [
42,
-243
]
},
{
"id": "label-zelvy",
"type": "label",
"comment": "...",
"requires": [],
"title": "Želvy",
"rotationAngle": 43,
"position": [
205,
407
]
},
{
"id": "placeholder-kurz-programovani",
"type": "text",
"comment": "...",
"requires": [
"programovani"
],
"title": "Placeholder pro základní kurz programování",
"htmlContent": "<p>Tady by měl začítat kurz programování. Chceme ze stávajícího kurzu vybrat úlohy a dát je sem. Postupně by asi také bylo fajn to celé rozvinou do větších detailů.</p>",
"position": [
464.3114318847656,
68.15572357177734
]
},
{
"id": "programovani",
"type": "text",
"comment": "...",
"requires": [
"jak-resit-ulohy"
],
"title": "Programování",
"htmlContent": "<p>Počítače nemluví lidskou řečí. Aspoň zatím. Pokud jim chceme vysvětlit nějaký komplikovanější problém, potřebujeme mluvit správnou řečí - nějakým <strong>programovacím jazykem.</strong></p><h2>Jaký programovací jazyk použít?</h2><p>Programovacích jazyků je více a každý se hodí na něco jiného. S roustoucími zkušenostmi se pravděpodobně naučíš přecházet mezi několika programovacími jazyky podle toho, jaký problém zrovna řešíš.</p><p>Pro řešení úloh Ti doporučujeme <strong>Python 3</strong>. Pokud se ho chceš naučit, můžeš zkusit projít kurzem, který jsme pro Tebe připravili.</p>",
"position": [
144,
2
]
},
{
"id": "start",
"type": "text",
"requires": [
"label-uvod"
],
"comment": "úvodní kecy o tom, jak to celé funguje",
"title": "Start",
"htmlContent": "<p>Aktuálně je celý projekt v <strong>BETA režimu</strong>. Pokud najdeš libovolnou chybu nebo pokud Tě napadá, že by se dalo cokoliv vylepšit (a ideálně jak), dej prosím vědět Vaškovi a Standovi. Díky!</p><h2>Vítej v našem novém kurzu!</h2><p>Pokud tě napadá, jak by se tento <strong>projekt mohl jmenovat</strong>, dej nám vědět!</p><h3>Co zde (časem) najdeš?</h3><ul><li>Základní kurz programování (dříve byl samostatně)</li><li>Roztříděné úlohy ze starších ročníků a sérií</li><li>Staré seriály</li><li>…a další úlohy, které jsme odněkud vyhrabali nebo nově vyrobili</li></ul><h3>Co budu mít z toho, že budu úlohy zde řešit?</h3><p>Něco se můžeš naučit a z toho můžeš mít dobrý pocit. Nic jiného teď neslibujeme. Splnit zde úlohu je to samé jako splnit ji ve cvičišti. Navíc ono k úlohám jsou většinou přístupná vzorová řešení, takže soutěžit zde nedává moc smysl.</p><p>Ohledně vzorových řešení – je čistě na Tobě, zda budeš úlohy řešit poctivě, nebo jestli si budeš číst řešení před tím, než vymyslíš něco vlastního. Zabránit Ti v tom nedokážeme a ani nechceme. Pokud se chceš něco naučit, nebo si něco procvičit, tak doporučujeme vzorová řešení otevírat až po vlastním řešení, případně když se zasekneš. Získáš tak z kurzu nejvíce.</p>",
"position": [
38,
-176
]
}
],
"clusters": {
"Triviální výpočet": [
"31-Z1-1"
],
"Triviální průchod 1D pole": [
"26-Z1-1"
],
"Triviální průchody 2D pole": [
"26-Z1-2",
"26-Z4-3",
"29-Z3-1",
"31-Z1-4"
],
"Želvy": [
"29-Z1-1",
"29-Z2-1",
"29-Z4-3"
],
"Komplexnější práce s poli": [
"26-Z2-4",
"29-Z1-3"
],
"Práce s čísly": [
"26-Z2-2",
"26-Z3-3",
"26-Z4-1"
],
"Práce s řetězci": [
"26-Z1-3",
"26-Z2-3",
"26-Z3-2",
"29-Z3-2"
],
"Grafy": [
"26-Z1-4",
"26-Z3-4",
"26-Z4-4",
"29-Z1-4",
"31-Z1-2",
"31-Z3-2",
"31-Z3-3"
],
"Voser": [
"26-Z3-1",
"29-Z3-3"
],
"Nápad": [
"26-Z4-2"
]
}
}