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:
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.
Na naší škole probíhá celoškolní streamování skrze platformu Google Meet. Celoškolní streamování vypadá tak, že se v jednu chvíli na stream skrze školní účet zapojí žáci z více ročníků a učitel začne svůj připravený streaming.
Většinově k osnově streamingů (po didaktické stránce) využíváme online aplikaci Kahoot. Více si o tomto principu můžete přečíst v mém starším článku: https://didatech.cz/?p=1468 Ve zkratce platforma Kahoot dává našemu streamingu jednotnou strukturu. Učitelé si vytvoří vlastní prezentaci na jakékoli téma a tu následně prokládají otázkami z Kahoot, na kterém jsou připojeni žáci, kteří celý přenos sledují online.
Celoškolních streamingů jsem už vytvořil desítky, rád bych zde sdílel ty s tématikou programování.
Konkrétně jsem jako zdroj využil známý web code.org
Nejvíce se mi osvědčili cvičení, kde vytváříte nějakou vlastní hru nebo aktivitu.
V dalším projektu s Microbitem jsme navázali na naše zkušenosti s proměnnou z minulé hodiny. V textu uvidíte 3 různé úlohy, na řešení si žáci museli přijít sami, výsledek vidíte ve formě animace.
Počítadlo 1, Lovci perel. Dva lovci perel mi postupně podají svoje perly. Chci spočítat, kolik mi jich dal první a kolik druhý – obě čísla chci pro kontrolu vidět na displeji. Poté chci spočítat, kolik mi jich přinesli dohromady.
Počítadlo 2, Dlaždičky. Chci spočítat počet dlaždic v kuchyni. Nechci ale počítat a zapisovat každou dlaždičku zvlášť. (nápověda: Nejdřív potřebuji, aby mi Microbit spočítal první horní (vodorovnou) řadu a pak číslo vynásobím svislou řadou. Chci aby mi Microbit ukázal výsledný počet dlaždiček.
Každá úloha obsahovala 3 podbody, první byl doplňovací a další 2 jsem zaškrtával já – učitel, když mi žáci přinesli naprogramovaného Microbita.
Jak se jmenují vaše proměnné: __________________
Dokončete počítadlo
Vložte do počítadla vhodné animace
Příklad řešení společně s animací:
Počítadlo 3, Bonbóny. Potřebuji rozdělit bonbony. Chci do Microbita zadat počet bonbónů a následně počet lidí, kteří si je mají rozdělit. Microbit mi musí spočítat, kolik dostane každý bonbónů.
Počítadlo 4: Volná práce. Vymyslete vlastní počítadlo a jeho účel. Vymyslete k němu vlastní příběh. Využijte rozdílné vstupy (input), nezapomínejte na různé možnosti matematických operací. (sčítání, odčítání, násobení…)
Cílem dnešní hodiny bylo vysvětlit koncept proměnné a sestavit z Microbita funkční počítadlo a krokoměr.
Začali jsme tím, že žáci dostali za úkol hrát mezi sebou “kámen, nůžky, papír” a zaznamenat na papír jméno týmu,počet výher, proher a remíz.
Pak jsme si společně zakroužkovali, které údaje na papíře jsou stálé (konstanta) – jméno týmu a které se mění – proměnná. Shodli jsme se, že v našem zápisu se vyskytují 3 proměnné tj. počet výher, proher a remíz.
Následně jsme si rozdali Microbit a žáci měli za úkol napsat, jak by mohlo vypadat počítadlo vyrobené skrze Microbit. Většina se shodla na tom, že po stisku tlačítka A by se měla započítat výhra, B prohra a A+B remíza. Ukázali jsme si, kde v prostředí Make code najdeme proměnné a pak se všichni pustili do práce. Tvorba proměnných a počítání bodů bylo pro většinu jednoduché, složitější bylo vymyslet, jak udělat, aby nám Microbit výsledné číslo také ukázal na displeji.Jedno možné řešení je zde (pouze pro počet výher):
Ti, kteří dokončí dříve mohou zakomponovat různé animace nebo vyčištění obrazovky po určitém čase. Případně se místo “kámen, nůžky, papír” mohou hrát kostky (kostka), která se dá přímo naprogramovat do Microbiota.
Žákům, kteří si nevěděli rady jsem dal vytištěnou nápovědu (funkční program s proměnnou “výhra”)
Posledním úkolem bylo vytvořit funkční krokoměr. (máme dvouhodinovku) Žákům tento úkol nedělal žádné problémy, navíc dostali k dispozici materiály – kartón, provázek, dřívka,plastová brčka…
V pracovním listu byly zakomponované jednak zamyšlení nad designem, dále odškrtávací boxy (učitel zaškrtne box, pokud vidí, že má žák splněno) a reflexe.
S nástupem nového pololetí jsem usoudil, že kódování s Ozoboty už bylo dost a že se zaměříme na něco více komplexního. Na škole máme totiž k dispozici ještě druhou sadu robotů, jedná se o BBC Micro:bit. (více o těchto robotech zde: https://ucimesroboty.cz/index.php/2019/08/21/moje-cesta-k-robotum/ )
Začali jsme tím, že se žáci robota pokusili popsat. Na tabuli jsem jim napsal chybějící pojmy a oni je přiřazovali k obrázku.
Děti si pak vzaly allinone počítače a otevřely si Makecode editor, a zadaly do něj následující kód:
Na základě pozorování simulace v Make Code měly doplnit do pracovního listu větu:
Zkus napsat, co bude Microbit zobrazovat – doplň větu.
Microbit nejprve zobrazí _______ potom _______ a to přesně po dobu _________. Potom ________________________________________________ a celá animace začne ________.
Poté, co větu doplnily, mohly zkusit přidat další vlastní příkazy z kategorie “basic”.
Další hodinu jsem zaměřil na čtení javascript blocks. Každé dítě dostalo tabulku s popisem devíti “programů”.
K popisu programu jsem připravil jeho grafickou podobu v javascript blocks:
Čtverečky s programy jsem očísloval, rozstříhal a několikrát vytisknul, děti je pak nalepily různě po učebně.
Poté chodily se svou tabulkou s popisem a snažily se ke všem popisům najít správný program.
Děti si v rámci této aktivity ukotvily princip posloupnosti příkazů a rozdíl mezi cyklem “forever” a příkazem “on start.”
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í.
Děti mají za úkol v simulaci donutit robota projet různě tvarované trasy. Sice není k dispozici česká lokalizace, ale s krátkou přípravou do začátku a společným překladem jsme orientaci v prostředí zvládli bez problému. (a jak už jsem říkal, roboti tak jako tak česky nemluví).
Pokud máte k dispozici ozobota i fyzicky, můžete do něj vytvořený kód přeblikat (flashing) a převést tak kód do reálného světa.
2. Run Marco
Run Marco je kompletně přeloženo do češtiny, proto můžete dětem web představit zcela bez přípravy: https://runmarco.allcancode.com/
Úkolem je dostat Marca nebo Sophii skrze stanovenou trasu, časem se začnou postupně objevovat překážky, ale vše na sebe plynule navazuje a programování tak působí intuitivně.
3. Robomise.cz
Jak už napovídá název domény, s aplikací https://robomise.cz/ nepotřebujete ovládat žádný cizí jazyk. Jde o další simulátor, ve kterém se učíme programovat skrze blokové programování (nemusíme příkazy umět psát, pouze je umísťujeme do správného pořadí). Naším úkolem je vždy dostat raketu do koncového modrého pásma.
Výhoda robomise je, že nabízí čím dál tím složitější programátorské koncepty a vy si můžete sami vybírat, na které se zaměříte.
Ze všech zmíněných webů je tento nejpropracovanější a díky populárním licencím, které využívá, je pro děti opravdu atraktivní.
Všechny odkazy, které jsem zmínil jsou do velké míry soběstačné – děti se s nimi zabaví samostatně. Pokud ale my jako učitelé dokážeme uvést žáky do problematiky programování i nějakou aktivitou bez počítače https://code.org/curriculum/unplugged, zdůrazníme jak je důležité pracovat v týmu a dáme dětem role, a pak navíc vše zakončíme smysluplnou reflexí, kde získané dovednosti ukotvíme – dokážeme získat ze zmíněných webů opravdu užitečné nástroje pro školu v 21. století.
Začít s programováním je o hodně snadnější než se může laikovi zdát. Nastupující generace dětí vyrůstá obklopená technologiemi, stále mě překvapuje, jak rychle se v blokovém kódování dokáží velmi mladí žáci orientovat.
1. Nejprve bych však i přes veškeré nadšení pro práci s technikou začal s tzv. unplugged (odpojenou) aktivitou – tedy s vysvětlením algoritmického myšlení a v našem případě hlavně principu sekvencí, bez zapojení počítače (do zdi).
3. Nejprve jsme se s dětmi (rozdělenými do malých skupinek) bavili o tom, co to vlastně je robot a kde všude se s nimi setkáváme. Dětem chvilku trvá, než za robota začnou označovat např. svoje kuchyňské spotřebiče, ale časem se do toho místa dostaneme a pak zkusíme ve skupině vymyslet společné znaky robotů. (např. dají se ovládat, můžeme je nastavit – naprogramovat, jsou na elektřinu…)
4. Poté se stane na malou chvilku sám učitel robotem. Na tabuli promítnu nebo nakreslím následující obrázek:
A děti mají za úkol mě, učitele, hloupého robota, naprogramovat tak, abych vytvořil na nákresu šachovnici. Dbám na to, aby se používaly pouze výrazy z našeho primitivního programovacího jazyka a v bodech tak postupně vytvoříme primitivní algoritmus.
5. Po nějaké době nás začne z vypisování dlouhých příkazů bolet ruka a shodneme se na zjednodušení programovacího jazyka, slova nahradíme šipkami. V tom přichází čas, aby si děti nově nabytou znalost upevnily. Dostávají následující pracovní list.
6. V pracovním listu si vyberou jeden ze vzorů, který se pokusí přepsat do kódu v krocích 1 až 15. Poté horní část papíru přeloží, vymění pracovní list se sousedem a ten se na základě kódu pokusí obrázek překreslit do čtvercového pole na konci stránky. Celý proces opakujeme dvakrát nebo i vícekrát s dalšími vlastními vzory.
7. Další hodinu jsme vše přivedli do praxe. Ve třídě jsme rozestavěli all in one počítače (počítačová učebna nebyla volná a také jsem zjistil, že dětem se obecně v dotykovém prostředí pohybuje lépe, než v klasickém rozložení s myší a klávesnicí, navíc při práci ve skupině je interakce více lidí současně v dotykovém prostředí přirozenější)
8. Můj plán byl vše vyzkoušet skrze hru Run Marco: https://runmarco.allcancode.com/. během aktivity jsme však zjistili, že interface hry nereaguje na přetahování příkazů dotykem. V situaci, kdy máte ve třídě 20 třeťáků a všichni najednou si začnou ve skupinách a čím dál hlasitěji stěžovat, že “jim to nejde”, jsem se zapotil.
9. Naštěstí jsem měl v záloze aktivity z code.org, resp. Hour of code. Děti si tak nadšeně otevřeli Minecraft: https://studio.code.org/s/mc/stage/1/puzzle/1 a začli zcela přirozeně programovat. Vše je v češtině, děti znají Minecraft, učí se programovat, všichni jsme spokojení. Děti pracují v týmech po 3, každý by měl dostat svoji roli a vystřídat se – někdo pozorně sleduje instrukce, další kontroluje správnost kódu, jiný kód zadává (např.) – na strategii se domlouvají všichni a v rolích se střídají. Učitel pak může jen spokojeně obcházet pracující skupiny a pomáhat při řešení stále náročnějších úkolů.
10. A takhle jednoduché to je! Jsme sice na začátku ale z reakcí dětí vnímám, že jdeme správným směrem.
Na škole máme několikrát za rok ateliéry – projektové dny, kdy si učitelé připraví dvoudenní výukový blok a žáci si sami vybírají, čím se chtějí celý čtvrtek a pátek zabývat. (na Microbity se nám shodou okolností přihlásili téměř výhradně žáci čtvrtých tříd, což byl zároveň náš dolní věkový limit)
Od začátku roku jsem ještě pořádně nevyužil BBC microbit a tak jsme se rozhodli (společně s další kolegyní co učí angličtinu Terezou Kopřivovou a dvěma studentkami programu Učitel naživo Anetou Gaborovou a Katkou Přikrylovou), že celých 10 hodin věnujeme právě jim. Donutilo nás to skočit do světa blokového programování a konečně si pořádně zažít práci s Microbity.
Pro společnou přípravu jsme využili sdílené Google dokumenty, jen pro představu, část naší přípravy vypadala třeba takto:
(opět dekuji Štěpánce Baierlové za zaškolení, v přípravě je vidět část její prezentace 🙂
Začali jsme unplugged aktivitou – vysvětlování principů kódování bez počítače. Vybrali jsme aktivitu z webu: https://code.org/curriculum/unplugged – je zde vše připravené, jako učitel stačí pouze následovat podrobné instrukce, ideální pro programovací laiky, kterými jsme (byli) všichni v realizačním týmu 🙂
Konkrétně jsme si vybrali následující aktivitu, která je zaměřená na vysvětlení kódování a sekvencí:
Zde bych chtěl znovu podtrhnou jeden fakt, jehož propagaci jsem zasvětil celý web:
S výukou robotiky může začít opravdový laik, který nikdy neprogramoval, ani nestudoval ICT. Na webu je dostatek dostupných materiálů a školení pro učitele, které vás do světa robotů a algoritmického myšlení snadno uvedou!
Po tom, co jsme prošli několik tutoriálů na https://makecode.microbit.org/ jsme se rozhodli naše žáky zasvětit do 3 oblastí programování Microbita:
Práce s obrazem – tvorba animací
Práce se vstupy (input) – tlačítka, akcelerometr, krokoměr, hrací kostka
Komunikace mezi Microbity – posílání čísel, textu a kódovaných zpráv
Každý žák měl zároveň k dispozici portfolio, ve kterém plnil zadané úkoly a zapisoval různým způsobem svůj progres. Jedna z počátečních stránek vypadala třeba takto:
Pokud by měl kdokoli o portfolio zájem, ozvěte se mi na pracovní mail jan.juricek (zavinac) zsstross.cz a já Vám rád portfolio pro inspiraci pošlu.
Nasdílím ale pár fotek a animací, abychom si všichni mohli znovu připomenout, že programování je možné učit i české děti ve čtvrté třídě skrze učitele neinformatiky, a že to žáky dokonce baví…
Velká výhoda Mikrobitů je, že žáci mohou kódování využívat v reálných situacích. Nejedná se pouze o virtuální program nebo simulaci. My jsme se rozhodli, že vytvoříme vlastní krokoměr (návod zde: https://makecode.microbit.org/projects/step-counter – doporučuji však nepočítat kroky po inputu “on shake”, ale vybrat místo toho zrychlení “3g”, které lépe simuluje pohyb končetiny při chůzi).
V základní variantě krokoměru lze Mikrobit prostě hulvátsky přilepit izolepou na kalhoty.
V pokročilejší variantě, kterou bych doporučil, můžeme vyrobit kartonové “chytré hodinky”
Druhý den děti už dokázaly pracovat s tlačítky a jinými vstupy (input), které Microbit zná. Rozhodli jsme se proto, že je postavíme do role hackerů. Dostali před sebe již naprogramovaný Microbit, který zobrazením různých obrázků reagoval na rozdílné natočení, zatřesení nebo kombinaci tlačítek. Žáci si ho tedy museli doslova pořádně osahat a poté se pokusit kód okopírovat v Makecode editoru.
Na závěr jsme dětem dali volnou roku pro vytvoření vlastního projektu. Výsledné naprogramované Mikrobity jsme s popiskem umístili na chodbu a děti obcházely práce svých spolužáků a rozmísťovaly body projektům, které je zaujaly.
Kdybychom připravovali ateliér znovu, pravděpodobně bychom zařadili více aktivit bez počítače, při kterých by se děti rozpohybovaly, celodenní soustředění a programování bylo pro čtvrťáky náročné. Také bychom se více zaměřili na reflexi, děti už byly k závěru dost vyčerpané, tak jsme je hlavně ocenili, povzbudili a rozdali čokolády, propracovanější reflexe je jeden z našich cílů pro další ateliér.
Děti mají za úkol vystřihnout a sestavit několik krychlí. Jedna krychle obsahuje údaje o čase (např. 23-25 s.), další krychle jsou popsány Ozokódy. Žáci poté mají za úkol si hodit všemi kostkami a následně sestavit dráhu, kterou Ozobot projede za daný čas a která bude obsahovat náhodně vržené kódy.
Můžeme buď využít předpřipravené kostky z odkazu nebo si udělat úplně vlastní a pokud chceme větší výzvu lze zabrousit do světa vícestranných útvarů 😉
K robotice určitě patří manuální zručnost, proto vítám, všechny aktivity, kde žáci pracují s různými materiály. Také si společně v hodině zdůrazníme, proč je důležité být v robotice přesný, pečlivý a trpělivý. Ani samotní
Ozoboti nepříjímají odbyté, chlupaté, moc úzké nebo obtloustlé čáry, jsou dost vybíraví a děti se musí s pečlivostí naučit pracovat.
Samotnou manuální formu práce s Ozoboty vnímám jako velkou přednost zvláště u malých dětí. Stejně jako rozvíjíme spolupráci ve dvojici a společné sdílení, dáváme důraz také na pečlivost a trpělivost, tedy na dovednosti, které byste si asi na první screening s roboty nespojili.