Programování Karetní hry bez počítače (unplugged)

Z code.org jsem si tentokrát vybral další unplugged aktivitu (aktivitu bez počítače): https://curriculum.code.org/csf-19/coursed/10/ Jedná se o Conditionals with cards neboli podmínky s kartami.

Tvůrci aktivity si uvědomili, že podmínky If (true) a if – else se dají velmi dobře vysvětlit na pravidlech jednoduché karetní hry. Podmínky v těchto hrách jsou totiž jejich pravidla, která musejí všichni dodržovat a jsou jasně daná, nemají moc variací. Každé dítě asi ví že když hodí na kostce 6, tak hází znovu. Autoři aktivity na code org by z pravidla vytvořili kód: 

if (hodím 6)

házím znovu

Stejně tak se dá formulovat nějaké pravidlo z karetní hry Prší:

if (soupeř vyloží 7)

líznu si 2 karty

Na toto pravidlo se dá jednoduše navázat a rozšířit podmínku vlastní zkušeností žáků ze hry:

if (soupeř vyloží 7)

if (mám vlastní 7)

přebiju soupeřovu 7

else

líznu si  2 karty

Takto můžeme do kódu přepsat další zkušenosti ze života žáků. V mé hodině se vyskytnul např. kód:

if (vstoupím do budovy)

nasadím roušku

Na code.org navazuje vlastní karetní hra, ve které si hráči postupně tahají karty a zapisují, kolik bodů za každou kartu dostanou. Zde je pracovní list i s výsledky: https://docs.google.com/document/d/1SsfkUoEg316vjBSxrRNLN4q4V2-yYW8HAK4m9snLtac/edit 

Kód jsem se pokusil přeložit do češtiny následujícím způsobem:

Karty lze vybrat libovolně, ty v pracovním listu z code.org jsou dobře vybrané a navozují zajímavé herní situace. 

K aktivitě jsem vytvořil i vlastní Kahoot: https://create.kahoot.it/share/if-else-karty/e8b2ef97-dc47-4268-a194-4ede6717e0ec 

Jako pokračování bych si představoval, že žáci dostanou za úkol napsat program vlastní karetní hry, další hodinu přinesu do hodiny karty a některé vytvořené hry si společně zahrajeme.

Programování skrze papírové kelímky

Naše další aktivita bez počítače uvedla děti do principu programování skrze stavění papírových kelímků. Podrobný popis v angličtině a můj přímý inspiracni zdroj naleznete zde: https://curriculum.code.org/csf-1718/courseb/6/

V hodině jsme použili mazací tabulky, mapu pro rozestavění kelímků a kelimky samotné, do každé dvojice jich stačilo 5.

Začali jsme úvodem do aktivity, kdy jsme se bavili o různých robotech, kteří něco stavějí. Dostali jsme se k robotickym ramenům a 3d tiskárnám a řekli jsme si, že práci takového podobného robota si dnes vyzkoušíme.

Poté jsem před děti postavil malou pyramida z kelímku a představil programovací jazyk, který budeme používat.

Náš programovací jazyk měl následující podobu:

Šipku nahoru (zvedne kelímek)

Šipku dolů (položí kelímek)

Šipku doprava (posune kelímek o jednu pozici doprava)

Šipku, která tvořila kruh, symbolizující otočení kelímku 

Celou aktivitu museli žáci rozkrokovat tak, aby ji robot mohl provést pouze na základě námi zvolených příkazů. 

Například jednoduchá pyramida ze tři kelímku vypadala v našem kódu takto:

Kelímky jsme na své pozice dávali na základě “mapy”, kterou měli všichni u sebe:

Asi už tušíte kam to celé směřuje. S mladšími dětmi jsme společně vyzkoušeli několik příkladů, ve kterých jsem figuroval jako robotické rameno. Starší děti začaly už sami vytvářet nejrůznější tvary, ke kterým poté napsaly program a spolužák ze dvojice kód četl a na jeho základě sestavoval daný kelimkový útvar.

Jak by bylo možné aktivitu rozvinout?

Na příkladu programovacího jazyka kelímků děti trénovaly převážně rozkouskování (segmentaci) problémů na menší úseky a práci v sekvencích. 

Mohli bychom však zařadit také další programátorské koncepty jako smyčky (loop) nebo primitivní funkce.

Při druhé hodině se třeťáky, jsme se už dostali k vlastní tvorbě a ke smyčkám (loops). Představili jsme si, k čemu smyčky slouží a děti je pak měli zařadit do svého stávajícího kódu.

Celá aktivita je komplexnější, než se na první pohled může zdát, myslím že by měla smysl pro všechny věkové skupiny studentů, kteří vstupují do světa programování.