K dispozícii je aj stručný leták na vytlačenie.
Algoritmické myslenie a blokové programovanie
Algoritmické myslenie sa dá vo precvičovať rôznymi spôsobmi. Základné cvičenie slúži na zoznámenie sa s jednotlivými konceptami (postupnosti príkazov, cykly, podmienky, premenné), ďalšie cvičenia sa zameriavajú na interaktívne čítanie kódu alebo na algoritmické schopnosti bez programovania. Ťažiskom obsahu je blokové programovanie.
Nasledujúca tabuľka ponúka základný prehľad cvičení s ich stručným popisom a prehľad bežných prípadov použitia. Kolónka „typický čas“ udáva čas riešenia jedného zadania. Pri cvičeniach Rozhodovačka, Presúvanie a Označovanie žiaci riešia vždy celý súbor položiek podobného typu, splnenie celého súboru väčšinou trvá aspoň 3 minúty. Pri každom type cvičenia sú k dispozícii desiatky alebo i stovky zadaní.
Základné cvičenia – precvičovanie jednotlivých konceptov
Nasledujúce cvičenia zoznamujú s jednotlivými konceptami v rámci algoritmického myslenia. Môžu slúžiť ako predstavenie, rozcvička pred vlastnou tvorbou programov, tiež môžu ujasniť miskoncepcie. K dispozícii sú hlavne tieto typy cvičení:
- Rozhodovačka – Obsahuje väčšie množstvo stručných položiek, používateľ vyberá z dvoch možností tú správnu.
- Presúvanie – V rámci neho používateľ umiestňuje do plátna chýbajúce časti (napr. časť kódu alebo výsledku programu).
- Označovanie – Používateľ vyberá na plátne oblasti spĺňajúce podmienku (súvisiacu napr. s tým, ako bude program prebiehať).
V prípade vyššie uvedených cvičení sú často k dispozícii rôzne motívy: jeden konkrétny koncept sa dá precvičiť ako základnou cestou (znázornené bloky s číslami, písmenami alebo obrázkami), tak napr. na motíve cesty vlaku, kúziel alebo deaktivácie bomby.
Rôzne motívy ľahkých Rozhodovačiek na tému poradie príkazov.
Niektoré jednotlivé koncepty je možné prechádzať aj pomocou cvičení Pexeso alebo Krok za krokom.
Príprava na blokové programovanie
Šípkovaná
Šípkovaná je jednoduchá logická úloha, ktorá však precvičuje programátorský spôsob myslenia a môže poslúžiť ako dobrá rozcvička pred blokovým programovaním. Podobne ako v Robotanikovi aj tu sa program tvorí pomocou šípok, v tomto prípade sa však šípky umiestňujú priamo do herného plánu. Vďaka tomu je význam príkazov a tvorba programu veľmi intuitívna. Hra je použiteľná aj pre deti, ktoré ešte ani nevedia čítať. Obsahuje však i náročnejšie prvky (súbežnosť, zmena stavovej informácie), takže ponúka zaujímavé úlohy aj pre starších riešiteľov.
Kód kocky
Pred samotnou tvorbou alebo úpravou kódu v rámci blokového programovania je užitočné dokázať kód čítať. V cvičení Kód kocky hráč ovláda postavu v hernej mriežke podľa vopred pripravených inštrukcií. Cvičenie sa dotýka prakticky všetkých dostupných konceptov: od základného poradia príkazov až po premenné alebo funkcie (bez parametrov aj s nimi). K dispozícii sú aj súbory s programom písaným v Pythone.
Blokové programovanie
Pri výučbe základov programovania a algoritmického myslenia sa dnes bežne používa blokové programovanie. Ide väčšinou o predstupeň pred programovaním v bežných textových programovacích jazykoch (napr. Python). Môže byť tiež použité na precvičenie algoritmického myslenia bez toho, aby nasledoval prechod na textový programovací jazyk. Blokové programovanie sa využíva predovšetkým v spojení s mikrosvetmi: jednoduché prostredie (pravidelná mriežka, 2D plátno), v ktorom sa pohybuje agent ovládaný programom (robot, korytnačka, maliar…).
v rámci blokového programovania využíva štandardné znázornenie a ovládanie (typicky za pomoci prostredia Blockly), je teda kompatibilné s aktivitami v iných prostrediach. Blokové programovanie vo má nasledujúce špecifiká a silné stránky:
- Úlohy s jednoznačným zadaním, ktoré sú automaticky opravované – žiaci tak majú konkrétny cieľ a jasnú spätnú väzbu, či ho dosiahli.
- Niekoľko vzájomne sa dopĺňajúcich foriem precvičovania a mikrosvetov, vďaka čomu si žiaci môžu každú tému precvičiť rôznymi spôsobmi.
- Veľmi rozsiahla zbierka príkladov (stovky zadaní).
- Dôraz na prácu s obťažnosťou, systematický prístup k stupňovaniu obťažnosti pomocou postupného odoberania pomocných prvkov – žiaci prechádzajú od jednoduchého výberu z dvoch možností cez drobné úpravy programov až k úplne samostatnej tvorbe.
Korytnačia grafika
Korytnačia grafika umožňuje pomocou napísaného programu vykresľovať elegantné obrázky. Tie kreslí virtuálna korytnačka ovládaná jednoduchými príkazmi na pohyb (posun vpred, otočenie). Tvorba programu je interaktívna, žiaci si môžu svoje programy priebežne skúšať a ladiť.
Korytnačia grafika má prirodzený presah do geometrie, predovšetkým do práce s uhlami. Základný princíp korytnačej grafiky je veľmi intuitívny a názorný. Cvičenie tak môže poslúžiť ako dobrá pomôcka aj pre žiakov, ktorí uhly ešte dôkladne neovládajú – v korytnačej grafike sa dá do veľkej miery použiť k práci s uhlami prístup „pokus-omyl“, ktorým si žiaci postupne budujú intuíciu.
Maľovanie
V rámci Maľovania sa maliar pohybuje po plátne a robí „pečiatky“ (základné tvary ako štvorec, kruh, obdĺžnik a niekoľko obrázkov postáv). Cvičenie je podobné korytnačej grafike. Rozdiel je v tom, že sa maliar pohybuje po plátne v štyroch smeroch, bez použitia uhlov. Cvičenie kladie dôraz na správne poradie akcií – vďaka prekrývaní útvarov je možné zo základných tvarov vytvárať zložitejšie obrazce.
Aj v prípade tejto úlohy je prirodzený presah do geometrie, tentokrát predovšetkým k téme súradníc a vlastností základných útvarov.
Plošinovka
Cvičenie Plošinovka vychádza z klasického žánru počítačových hier s rovnakým názvom, v ktorom sa postava pohybuje pomocou skokov vo svete vertikálne usporiadaných plošín. Má za úlohu vyhýbať sa prekážkam, zbierať mince a dôjsť k východu. V našom variante je postava ovládaná programom. Postava sa automaticky posúva vpred, cvičenie je zamerané na využitie podmienok.
Staviteľ
Základ úlohy Staviteľ tvorí „postava na mriežke“, čo je jedna z často využívaných tém na precvičovanie blokového programovania. Úlohou je napísať program pre staviteľa, ktorý sa pohybuje po krajine, zbiera materiál a stavia stavby. Úloha je zameraná predovšetkým na precvičenie opakovania, podmienok a ich vzájomného kombinovania (cyklus „opakuj kým“, použitie podmienok v rámci cyklu).
Robotanik
Robotanik využíva zjednodušenú verziu používateľského prostredia, v ktorom sa program tvorí ako sekvencia šípok. Pomocou podfarbenia je možné vyjadriť podmienky. Hlavný dôraz je v prípade tejto úlohy na rozklad programu na jednotlivé funkcie. Funkcie sa môžu vzájomne volať, čím sa dajú simulovať cykly a realizovať aj zložitá funkcionalita pomocou rekurzie.
Základný princíp cvičenia je v rôznych podobách hojne využívaný. Známa je napríklad hra LightBot, ďalšie variácie je možné nájsť napr. v rámci Hour of Code. Spracovanie na kladie dôraz na dostatočne bohatú zbierku príkladov odstupňovanú podľa obťažnosti. V úvodných zadaniach sa tvoria jednoduché sekvencie krokov, ktoré sú zvládnuteľné aj pre mladších žiakov. Posledné úlohy potom predstavujú náročný oriešok aj pre talentovaných programátorov.
Koncepty algoritmického myslenia
Základné poňatie výučby je vhodné organizovať podľa konceptov algoritmického myslenia a k nim vyberať jednotlivé cvičenia. Žiadne cvičenie nie je úplne „univerzálne“, rôzne formy sa vzájomne dopĺňajú a je výhodné ich kombinovať. Nasledujúca tabuľka udáva zjednodušene základný prehľad, na čo sú jednotlivé cvičenia vhodné.
Význam a poradie príkazov
Úplné základy tvorby programov predstavujú elementárne príkazy a ich radenie. Tu dobre poslúži ako rozcvička Šípkovaná a Rozhodovačka. Dôležitým aspektom na precvičenie je význam poradia akcií, ten pekne ilustruje hlavne Maľovanie.
Opakovanie, cykly
Opakovanie a cykly tvoria ťažisko precvičovania pomocou blokového programovania. Cykly je možné pomocou blokov veľmi ľahko a prirodzene vyjadriť. Súčasne ide o tému, ktorá už nie je úplne jednoduchá a má teda zmysel ju s žiakmi dôkladne precvičovať. Typické problematické partie:
- Rozoznávanie a zápis vzorov – aby sme využili cyklus, musíme nájsť vzor, ktorý sa pravidelne opakuje, a dokázať ho zapísať.
- Zápis a interpretácia opakovania – predovšetkým aspekt „čo je súčasť cyklu, čo patrí mimo cyklus“.
- Vnorené cykly – hlavne v korytnačej grafike je možné pomocou vnorených cyklov vytvárať elegantné obrazce, základné použitie vnorených cyklov je tu intuitívne, ale ich dôkladné ovládnutie vyžaduje tréning.
Rozhodovačka sa zameriava na ujasnenie častých miskoncepcií, napr. ohľadom úrovní zanorenia.
Podmienky
Na podmienky je špeciálne orientované cvičenie Plošinovka. Z ďalších interaktívnych úloh sa podmienky vyskytujú v RoboAréne, Robotanikovi a Šípkovanej. Základné precvičenie potom ponúka Rozhodovačka a Presúvanie.
Premenné
Vďaka základným cvičeniam s výberom možností je k dispozícii precvičovanie slúžiace na ujasnenie základného mentálneho modelu premenných. V prípade interaktívnych úloh sa použitie premenných nachádza na hrane toho, čo je rozumné spracovávať formou blokového programovania – zložitejšia manipulácia s premennými je formou blokov mierne nepraktická. V našich príkladoch sa sústreďujeme na základné použitie premenných pomocou niekoľkých elementárnych príkazov (nastaviť hodnotu, zvýšiť hodnotu). V spojení s kreslením sa aj pomocou týchto základných príkazov dajú tvoriť zaujímavé obrázky.
Funkcie, rozklad na podproblémy
Podobne ako v prípade premenných aj pri téme funkcie nie je blokové programovanie na spracovanie úplne ideálne – tvorba a editácia programov s funkciami pomocou blokov je občas neprehľadná. Preto sa pri tejto téme sústreďujeme predovšetkým na to, aby žiaci pracovali s predpripravenými materiálmi.
- Rozhodovačka – Uvažovanie o pripravených funkciách, dopĺňanie častí kódu.
- Maľovanie – Predpripravené funkcie z blokov, ktoré žiaci ďalej upravujú alebo využívajú vo svojich programoch (nemusia riešiť samotnú definíciu funkcie pomocou blokov).
- Korytnačia grafika – Silný aspekt „rozklad na podproblémy“, ktorý je však typicky zapisovaný pomocou vnorených cyklov (bez funkcií).
- Robotanik – Cvičenie je založené na využití funkcií; tie sú síce dosť jednoduché, cvičenie však dobre precvičuje princíp „rozklad na podproblémy“.
Ladenie programov
Ladenie programov a testovanie sú precvičované samovoľne pri použití ľubovoľného z interaktívnych cvičení: žiaci pri tvorbe programov takmer vždy potrebujú hľadať jednotlivé chyby a opravovať ich. Na cielenejšie precvičenie týchto schopností máme pripravené súbory zadaní, ktoré sú špecificky cielené na ladenie. V týchto úlohách dostanú žiaci ako súčasť zadania aj program, ktorý zadanú úlohu takmer rieši. V programe sú však jednotlivé drobné chyby, ktoré je nutné nájsť a opraviť.
Veľa žiakov k ladeniu pristupuje metódou „pokus-omyl“ (to sa vlastne týka nielen žiakov, v programátorskej terminológii sa toto správanie označuje ako shotgun debugging). Je teda vhodné aktívne viesť žiakov k aspoň trochu systematickému postupu, napr. k využitiu krokovania a k explicitnému pomenovaniu zdrojov chýb.
Odporúčania podľa veku
Nasledujúca tabuľka udáva orientačný prehľad vhodnosti jednotlivých cvičení podľa ročníkov štúdia. Blokové programovanie je ideálne predovšetkým pre 2. stupeň ZŠ. Pre žiakov na 1. stupni môžeme odporučiť hlavne cvičenie Šípkovaná; aj pri ďalších cvičeniach sú však úvodné súbory väčšinou dobre riešiteľné pre mladších žiakov.
Blokové programovanie je vhodné aj pre žiakov stredných škôl, poslúži napríklad ako dobrá rozcvička pred programovaním v Pythone alebo pred riešením otvorených úloh s robotmi. Všetky cvičenia navyše obsahujú aj ťažšie zadania, pri ktorých sa musí zamyslieť aj skúsený programátor. Ani stredoškolskí žiaci sa rozhodne pri riešení nebudú nudiť.
Nadväznosti
Obsah predmetu informatika na je vhodný na úvodné zoznámenie sa s algoritmickým myslením a blokovým programovaním. K dispozícii je dostatok veľmi jednoduchých úloh, ktoré sú určené úplným začiatočníkom. Aj pri zložitejších konceptoch sú k dispozícii úlohy s jasným cieľom, ktorý je súčasne pre žiakov dosiahnuteľný. Takto si môžu žiaci vybudovať dobré základy, na ktoré je potom možné nadviazať ďalšími aktivitami, ktoré dajú žiakom priestor riešiť otvorenejšie a kreatívnejšie projekty.
Vymýšľanie vlastného zadania samotnými žiakmi je zaujímavé a užitočné: vlastné projekty môžu byť motivujúce, žiaci pri nich trénujú ďalšie užitočné schopnosti (napr. formulovanie zadania, organizovanie práce, vyhodnocovanie postupu). Vlastné otvorené zadania ale prinášajú aj riziká: pri programátorských úlohách nie je ľahké nájsť zadaniam adekvátne obťažnosti. Ak si žiaci sami vymyslia úlohu, ľahko sa stane, že bude príliš ambiciózna a nepodarí sa im ju naplniť, čo môže viesť k demotivácii. K otvoreným projektom je teda dobré prechádzať pomaly. Príprava na úlohách s jasným zadaním žiakom pomôže získať odhad toho, čo je v dosahu ich schopností.
Scratch
Medzi najznámejšie prostredia na blokové programovanie patrí Scratch (a jeho zjednodušená verzia ScratchJr použiteľná aj s malými deťmi). Scratch ponúka veľmi širokú škálu príkazov a prostredí. Jeho silnou stránkou je predovšetkým tvorba interaktívnych animácií, príbehov a jednoduchých hier.
Robotika
Blokové programovanie sa dá využiť aj na programovanie fyzických robotov. Po koncepčnej stránke je programovanie veľmi podobné programovaniu virtuálnych agentov v mikrosvetoch (ako je použité v cvičeniach vo ) a neprináša žiadne zásadné nové prvky. Interakcia s fyzickými robotmi je však pre veľa žiakov motivujúca a slúži ako dobrý doplnok cvičení s virtuálnymi robotmi.
Ozobot
Micro:bit


