Programujeme pomocí Scratche – začátky
Rád bych se podělil o zkušenost s výukou realizovanou pomocí nástroje Scratch u žáků 6. třídy. Jedná se o úplné základy výuky algoritmizace a programování a o tomto tématu jistě najdete na Internetu spoustu jiných a lepších článků. Píšu tento článek jen jako poznámky pro sebe a jako lehkou inspiraci pro ostatní, kteří by podobné téma chtěli také zkusit.
Žáci již měli malou zkušenost s aplikace Scratch Jr. v loňském roce. Jednu hodinu jsme pak věnovali motivaci, proč se vlastně učíme programovat a zkoušeli jsme prostředí Scratch (scratch.mit.edu) na počítači. V rámci motivace jsem žákům pouštěl videa, kde stroj vyřezává obal na mobil, 3D tiskárna tiskne dům atp. Bavili jsme se o tom, jak tyto stroje asi pracují. Pak jsem měl připraveného Sphero robotka BB-8, který jezdil podle předem naprogramované trasy po třídě. Opět jsme se bavili o tom, že robot musí být nějak naprogramovaný. Moje BB-8 jezdila po obdélníkové trase a pak dokolečka. Ještě jsem ho nechal narazit do zdi a tím jsem vysvětlil, že se programy nejdříve testují „virtuálně“, a pak se terpve programuje doopravdy. Tak jsme přešli ke Scratchi. Vyzkoušeli jsme si právě čtverec a kolečko – žáci se tak naučili orientovat se v prostředí a základní konstrukce.
Hlavním „projektem“ ale bylo naprogramování hry Chytání míčku. Velmi jednoduchý koncept. Z horní části obrazovky padá z náhodné pozice míček, dole ho Scratch chytá. Tuto hru jsem vybral proto, že v té nejjednodušší verzi ji zvládne naprogramovat každý a pro pokročilé se dá spousta věcí přidávat. Zkusím rozepsat jednotlivé kroky:
- Padání míčku je první úkol. Vysvětlili jsme si pojem souřadice X a Y a vyzkoušeli pohyb pomocí změny souřadnic. Zkusili jsme si zadat několik příkazů „změn Y o …“ a pak jsem nechal žáky pracovat samotně. Naprostá většina přišla na cyklus (opakování), trochu jsem některé navedl na cyklus s podmínkou. Společně jsme zkoušeli měnit hodnotu Y a sledovali rychlost padání.
- Dalším úkolem bylo zajistit náhodné umístění míčku v rámci osy X. Žáky jsem navedl na pojem „náhodně“ a nechal je hledat. Opět bez problémů zvládli. Tady se ale stávalo, že když nastavili X takové, že se míček dotkl bočního okraje, přestal i padat, protože podmínka v cyklu byla „opakuj dokud se nedotýká okraje“. (tady končila první hodina práce na projektu)
- Dále bylo nutné vyřešit pohyb Scratche, který má míčky dole chytat. Žáci většinou přišli na spuštění události „Po stisku klávesy …“ a používali pohyb pomocí kroků a natáčení. Tím byl ale pohyb trhaný a při pohybu vlevo byl Scratch vzhůru nohama. Takže jsme si společně zopakovali princip změny souřadnic a vyzkoušeli pohyb pomocí „změň X o …“. Stále byl ale pohyb zpožděný a nedokonalý.
- Aby byl pohyb plynulejší, bylo nutné přepracovat program pro Scratche do jednoho bloku „Opakuj“, v rámci kterého bude umístěno několik podmínek „když … pak“. Vysvětloval jsem to žákům tak, že po stisku „Start“ je Scratch nachystaný reagovat na různé události. Třeba na stisk nějaké klávesy, na srážku s míčkem, atp. Tato část byla pro žáky nejméně pochopitelná, ale i tak ji po slovním vysvětlení zvládla více než polovina žáků úplně sama.
- Posledním krokem byla reakce na chycení míčku. Šlo jen o to přidat do bloku Scratche reakci na dotyk s míčkem. Využili jsme k tomu nástroj Zprávy. Opět jsem žákům jen slovně vysvětlil, jak by to celé mělo fungovat a dál jsem je nechal pracovat samotné. Na konci druhé hodiny jsme tak měli základ hry, kdy se Scratch plynule pohyboval doleva a doprava, míček padal z náhodné pozice dolů až k okraji. Když ho Scratch chytil, nedopadl až dolů k okraji ale začal padat znovu z náhodné pozice.
- Třetí hodina byla ve znamení proměnných. Bylo nutné vymyslet počítání bodů – tedy přičtení při chycení a odečtení při spadnutí míčku. Tato část již byla pro šesťáky poměrně náročná. Je totiž nutné nastavit nějakou počáteční hodnotu, ať nejdou body do mínusu. Pak upravit nekonečný cyklus na cyklus s podmínkou, aby hra skončila atp. Tato hodina už neměla úplně jasné schéma. Rychlejším žákům jsem dával nápady na další rozšíření hry – zvyšování obtížnosti, přidání „jedovatého“ míčku, kombinace životů a bodů atp. Ostatním jsem pomáhal doladit jejich hry, někteří pak soutěžili mezi sebou.
Závěr? Zvládli jsme to. Každý z žáků měl nakonec funkční hru. Někdo jen úplně jednoduchou a s pomocí, ale někteří zvládli i varianty obtížnosti, úvodní obrazovku s tlačítkem START a na konci tmavou obrazovku s nápisem Game Over. Výhodou je právě to, že se tato hra dá jednoduše rozšiřovat. Pokud žáci zvládnou proměnnou, můžou upravit rychlost padání v závislosti na bodech. Když umí posílat zprávy, můžou měnit scény. Může padat více míčků, každý za jiné body. Hra se může změnit na let kosmické lodi. Nápadů ale jistě sami najdete dost.