Moderní výuka

Nejen o technologiích ve vzdělávání

AplikaceNávody

Výuka programování – Scratch

Učivo RVP pro gymnázia obsahuje i část věnovanou algoritmizaci, konkrétně „algoritmizace úloh – algoritmus, zápis algoritmu, úvod do programování“. Protože klasické kreslení vývojových diagramů a jejich následný přepis do nějakého programovacího jazyka žáky příliš nebaví, hledal jsem něco zajímavějšího..

Již dříve jsem používal vizuální nástroje jako LOGO, Karel či Baltík, ale dlouho jsem u nich nezůstal. Protože vyučuji žáky na střední škole, brzy jsem narazil na nějaký chybějící prvek, bez kterého nebyla výuky úplná – například problém práce s proměnnou či konstrukce složitějších logických výrazů. Využití těchto vizuálních nástrojů bylo úžasné pro vlastní vysvětlení základní látky a pojmů týkajících se algortmizace, ale pro tvorbu nějakého většího projektu už ne.
Když jsem narazil na nástroj Scratch, bral jsem ho jako jeden z dalších nástrojů, který je hezký na hraní pro malé děti, pro výuku na základní škole nebo možná na ukázku základních algoritmických konstrukcí, ale víc už ne. Postupem času jsem v něm však objevil docela zajímavý nástroj, který zvládne víc než bych čekal. Začal jsem ho nárazově používat v různých částech výuky – no a letos jsem si ho vybral jako hlavní nástroj pro výuku základů algoritmizace pro své žáky.

Předem – jaký je můj cíl ve výuce. Základy algoritmizace máme na gymnáziu zařazeny do druhého ročníku předmětu Informatika a výpočetní technika s dotací 2 hodiny týdně. Cílem je naučit žáky rozložit větší problém na menší, pochopit pojem algoritmus a provést jeho návrh, znát základní algoritmické konstrukce (sekvence, podmínka, cyklus), použít proměnnou a seznámit se základními problémy časové a paměťové náročnosti. Žák pak musí umět algoritmus zapsat (například vývojovým diagramem) a jednodušší algoritmy přepsat do nějakého nástroje.

Co tedy dělám v hodině? Následující sadu příkladů jsem použil letos. Stále na nich ještě pracujeme, takže je možné že se něco změní.

Příklad 1 – Scratch počtářem
Nechej kocoura postupně vyjmenovat násobky čísla 5.
Tento příklad vlastně slouží hlavně k „osahání“ nástroje Scratch. Žáci se naučí vytvořit proměnnou a použijí cyklus s určeným počtem opakování.

Příklad 2 – Scratch stavitel
Nechej kocoura postavit pyramidu z kostek se základnou 5.
Tento příklad lze využít hned na několik aktivit. Pokud žáci začnou ihned „programovat“, narazí na problém vnoření více cyklů. Přichází tak ideální čas k rozboru algoritmu a jeho zápisu například pomocí vývojového diagramu. Dá se vysvětlit princip programových bloků (vykreslení jedné cihličky, vykreslení jedné řady z cihliček, …) a jejich následného skládání. Zároveň je tak vhodný čas na zavedení pojmu proměnná a jeho použití jako parametr cyklu.

Příklad 3 – Poletucha
Nechej koucoura náhodně poletovat po ploše a počítej jeho nárazy o stěnu. Při každém nárazu koucour řekne „AU“. Po stém nárazu své poletování ukončí a řekne „A DOST!“.
U tohoto příkladu narazíme na potřebu vygenerovat náhodné číslo, což však nástroj také umí. Navíc přidáváme klasickou podmínku pro vypsání reakce na náraz. Pro počítání nárazů opět využijeme proměnnou a celý blok běží v cyklu s podmínkou. Opět je vhodné provést rozbor algoritmu například vývojovým diagramem – probrat rozdíl mezi konstrukcí podmínka a konstrukcí cyklus s podmínkou.

Příklad 4 – Lovec
Vytvoř skripty pro pohyb kocourem pomocí kurzorových šipek. Pak náhodně vygeneruj myšku a počítej, kolik jich kocour „uloví“.

Výuka pomocí programování her se mi osvědčila již dříve. Žáky tato tematika baví a není pro ně problém vymýšlet si vlastní úkoly. V zadaném tématu lze přidat časový limit, pohyb lovené myšky, možnost vytvoření „otrávené“ myšky kterou nesmíte chytit, atp.
Zároveň se dostáváme k tvorbě skriptů, které běží současně pro více objektů na jedné scéně a naznačíme tak i další možné přístupy k programování. Obvykle pak podobné téma slouží jako seminární práce pro žáky.

Další hodiny jsou pak již procvičováním, opakováním, žáci dostanou úkoly domů a v hodinách jen řešíme problémy na které narazili. Máme vytvořenou sdílenou složku na dropboxu, do které ukládáme vytvořené úkoly.

Další příklady k procvičení:

Nechej Scratche běhat od levého k pravému okraji tak dlouho, dokud se ho nedotkneš myší.

Nechej Scratche vyjmenovat prvních 10 násobků čísla 5.

Postav řadu z 8 kostek střídavě z modré a červené barvy.

Vytvoř algoritmus pro gravitační skákání klávesou „mezerník“. Gravitační skákání znamená, že čím výše Scratch je, tím pomaleji se pohybuje. Výšku skoku nastav na 50.

Vytvoř 2 náhodně se pohybující míčky a počítej jejich srážky. Jejich pohyb ukonči tehdy, když nastane 10 srážek.

Tyto úkoly také přináší nějaké nové prvky. U gravitačního skákání je to přidání matematického výrazu, u střídání barev pojem informační proměnná atp.

Scratch je multiplatormní, v současné době existují dvě hlavní verze – 1.4, která se instaluje jako klasický program ve verzích pro Windows, Mac a linuxové systémy založené na Debianu (ke stažení zde). Aktuálně je vyvíjena verze 2, která běží ve webovém prohlížeči s podporou Flash. V beta verzi se dá stáhnout i offline a provozovat v prostředí Adobe Air. Pro iPad zatím aplikace není, dle autorů probíhá její vývoj.

 

Poznámka

Tento článek v žádném případě není učebním textem pro studenty. Byl napsán jen jako krátká inspirativní zpráva o tom, jak lze využít zajímavý nástroj pro výuku. Za stěžejní část považuji zejména popis konkrétních příkladů. Proto je také úvod článku silně zjednodušen a rozhodně se nejedná o teoretický úvod k problematice algoritmizace a programování. Pojem algoritmus je zde chápán v kontextu úvodu do programování.

Libor Klubal

Učitel se zkušenostmi ze základní, středního a vysokého školství. Je učitelem matematiky a informatiku na Základní škole Velké Hoštice a působí jako odborný asistent na Pedagogické fakultě Ostravské univerzity. Od roku 2013 je držitelem titulu ADE (Apple Distinguished Educator) a také certifikace lektora společnosti Apple pro školství.

2 komentáře: „Výuka programování – Scratch

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *