Hlavní navigace

Jak vést děti k programování

9. 11. 2010
Doba čtení: 7 minut

Sdílet

Dorazila vaše ratolest na výuku počítačů ve škole, abyste zjistili, že vaše rodina je lépe vybavena než celá škola? Nejste sami. Co s tím? Svépomoc.

Proč by měly děti programovat?

Vaše předškolní či čerstvě školní ratolest sedí u počítače a hraje si nějakou hru odpovídající jejímu věku. Děti jsou v těch letech zvídavé a chtějí přijít na kloub tomu, jak věci fungují. Takže se otočí od monitoru a zeptá se: Mami, tati, jak ta nakreslená žabička rozumí, že má jít tam, kam jí ukážu? Co je tam vevnitř? Co svému dítěti řeknete?

Právě taková chvíle je ideální k tomu sednout si s dítětem k počítači a ukázat mu základy programování. Proč? Či dokonce jak pravila jedna maminka: „Učit kluka programovat? To tak, vždyť z něj pak bude pošuk, co si ani nenajde holku!“ No, především proto, že „dětské programování“ naučí dítě jedné velmi praktické dovednosti, totiž algoritmickému řešení úloh. Dítě si dokáže nějaký problém rozložit na jednodušší kroky a vypracovat postup, jakým dosáhne požadovaného výsledku – a nemusí k tomu znát celý matematický aparát. (A mimochodem – pokud potkáte programátora pošuka, tak není pošuk proto, že je programátor, ale protože je jenom programátor.) Pokud dítě naučíte algoritmicky řešit úlohy, nemusí být nutně programátor; jen bude mít v životě výhodu, protože bude vědět, že se může nad problémem nejen zamyslet, ale i jak má takové zamyšlení vypadat.

Zapomeňte, že dítě naučí programovat škola na druhém stupni nebo na střední škole. Tam už drží otěže výuky programování učitelé – matematici a programátoři, a podávají ho způsobem, který dělá z programování Děsně Vážnou A Abstraktní Matematickou Věc („…kterou já nikdy nepochopím, a proto jsem šel na herectví,“ jak často dodávají mladé seriálové hvězdičky v rozhovorech pro dámské časopisy). Je to tak – na druhém stupni už je pozdě učit dítě algoritmickému myšlení, ale je vhodná doba naučit ho algoritmy zapisovat v nějakém formálním jazyce.

V téhle souvislosti si vzpomínám na článek, který vyšel někdy v roce 1988 ve Vědě a technice mládeži. Byla v něm pasáž, kterou volně ocituji: Výuku matematiky vzali do rukou matematikové, kteří se snaží dětem matematiku představit jako zábavnou disciplínu, a tak vytahují historku o mladém Gaussovi. Ten se ve škole při hodině matematiky nudil, a tak mu učitel dal za úkol sečíst čísla od 1 do 100. Jaké bylo jeho překvapení, když měl malý Gauss správný výsledek za pár sekund! Žertovné, že? A tady je vzorec, který velký Carl Friedrich použil, naučte se ho! Bohužel už nedodají, jak na ten vzorec Gauss přišel, ani že Gaussův učitel Büttner rozpoznal talent a půjčil hochovi knihu odpovídající jeho schopnostem, zatímco dnes by ho mnozí učitelé spíš nazvali provokatérem a šel by domů s poznámkou „Je drzý…“

Proto až vaše dítko projeví sklon zjišťovat, jak ty hry fungují, neříkejte mu, „to je moc složité,“ ani nezačínejte slovy, „ukážu ti, jak se v Javě napíše program na sčítání čísel…“. Sedněte si, vyberte si vhodný nástroj odpovídající věku a ukažte programování, či spíš algoritmizaci úloh jako zábavnou hru. Co na tom, že sami programovat neumíte, resp. si pamatujete ze školy jen mlhavé základy Pascalu a Karla – stačí spustit vyhledávač, tam určitě něco najdete, a to se ještě uvidí! Kam se na vás hrabe Büttner, to se nedá srovnat!

Ale ouha

Řekněme, že chcete svému dítěti ve věku 5–10 let ukázat nějak zábavně a srozumitelně základy programování. Budete tedy potřebovat vhodný nástroj – jednoduchý a zábavný, takže rozhodně grafický, takový, který dítěti odpustí chyby, nezahltí ho spoustou „nutných“ věcí a bude jednoduše použitelný. V představách o tom, co je jednoduché a co je snadno pochopitelné, se velice ostře liší programátoři od neprogramátorů – viz nedávná velmi inspirující diskuse na toto témačlánku na Zdrojáku (odkud mj. čerpá i tento článek, a já diskutujícím touto cestou děkuji). V představách programátorů je možná pro děti intuitivní zápis „1 to: 10 do: [ :i | Transcript show: 'radek c. '; show: i; cr ].“ protože „je podobný angličtině“, takže to děti „snadno chápou“ – ale my budeme hledat raději něco českého, něco, kde nebude muset dítě psát hranaté závorky a anglická slova a někde velká písmena… Jaké máme možnosti?

Karel

Hvězda druhé poloviny 80. let, jazyk Karel, stále žije a pro určité věkové kategorie je stále nejsnazší cestou k algoritmizaci. Větším dětem bude ale možná robot, chodící po dvorku ode zdi ke zdi a trousící značky, připadat příliš abstraktní či omezený. Pro první kroky je ale ideální: je k dispozici pro všechny možné systémy, jeho základy zvládne i rodič programování neznalý (a může pak dítě vést), je k dispozici i online verze v češtině a je k němu dostupné velké množství výukových materiálů (i když leckdy budou třeba dvacet let staré).

Karel

Scratch

Scratch je programovací nástroj, vyvinutý v MIT, který ze všeho nejvíc připomíná kostky Lega. Různé konstrukce mají různé tvary tak, že do sebe zapadají – např. tam, kde má být podmínka, lze vložit jen to, co je šestiúhelník – a šestiúhelníkový tvar mají logické výrazy a podmínky. Ano, přesně u tohoto nástroje se inspirovali v Google při psaní App Inventoru. Scratch je k dispozici pro Windows, Linux i MacOS, instalace je bezproblémová a vše funguje v češtině. Po spuštění je na obrazovce jasně oddělené „hrací pole“, „skladiště kostek s příkazy“ a místo, kde je pomocí myši skládáte k sobě.

Scratch - programovací nástroj pro děti

Práce je poměrně intuitivní, ale hlavně zábavná (i pro dospělého, což může autor potvrdit z vlastní zkušenosti). K dispozici je řada ukázkových příkladů, které lze otevřít, hrát si s nimi a – slovy jednoho z tatínků, po dvou minutách být odstrčen dítětem se slovy „tati, pusť mě k tomu!“.

Velmi pěkné je na Scratchi i to, že hotové dílo můžete jednoduše umístit na web, takže se dítko může pochlubit kamarádům nebo může poslat odkaz babičce (ukazovat „hele, babi, co jsem udělal!“, je u dětí nedílná součást tvorby). Mimochodem: hele, čtenáři, co jsem udělal (live ukázka kódu z předchozího screenshotu).

Baltazar, Baltík, Baltie…

Výčet programátorských nástrojů pro děti by nebyl úplný bez Baltíka. Bohumír Soukup, jeho autor a zakladatel SGP Systems (SGP je zkratka pro Soukup's Graphic Preprocessor, což byl předchůdce Baltazara), jej vyvíjí a neúnavně propaguje již od začátku 90. let. Podařilo se mu dostat Baltíka do škol a připravit pro něj didaktické materiály, které lze použít při výuce programování. Přístup je velmi podobný Scratchi (sám pan Soukup uvádí, že Scratch byl Baltíkem inspirován), ale jeho zpracování (včetně webu) je méně atraktivní, jako by ustrnulo před těmi deseti, patnácti lety:

Baltík

Jako jediný ze zmíněných nástrojů je Baltík placený (s licenční politikou zaměřenou především na školy). A ačkoli je grafický a programuje se skládáním prvků k sobě, je o něco těžší a méně intuitivní. Nemalou měrou k tomu přispívá i jazyk popisků. Ten je totiž v ostrém kontrastu s kouzelníkovou hravostí a připomíná ze všeho nejvíc jazyk učebnice programování, kterou sepsal programátor. To je asi největší výhrada, kterou lze vůči Baltazarovi/Bal­tíkovi/Baltie­mu mít: působí příliš jako školní pomůcka, k níž musí dítě dostat nejprve teoretickou průpravu od učitele; pro takové to domácí programování s potomkem je těžko představitelný. Orientace na školy je patrná i z webu. Výhodou je, že BaltX představuje řadu produktů, které na sebe navazují, a od hrátek s čarodějem v té nejnižší verzi se v té nejvyšší dostanete i k C#. Škoda jen, že připomíná spíš školu než hru.

A co o tom povídat?

Tohle je asi největší překážka „domácího programování hrou“. Je velmi obtížné nalézt vhodný učební text – ne pro dítě, ale pro rodiče! Text, který by rodičům řekl, jak s dítětem pracovat, jak ho vést, na co ho upozornit a kde se naopak stáhnout a nechat dítě si hrát. Kuchařka zajímavých příkladů a úloh, kde by se rodič dozvěděl, na čem se dítě může zaseknout a jak je správně navést k řešení. Chybí zkrátka materiál, který nesepsal programátor, matematik ani „komise odborníků z MŠ“, materiál otestovaný na rodičích i dětech.

Dnešní děti se počítače nebojí, nemají strach, že „v tom něco rozbijí“, a třeba se Scratchem si budou hrát stejně intuitivně a bez zábran jako s kostkami. To je velké plus, které lze využít. I když z vašeho dítěte nebude programátor, vhodně podané základy algoritmizace se mu budou v životě určitě hodit. Dítě nebude mít pocit, že se „něco učí“, bude se učit přirozeně, hrou. Stačí jen vzbudit zájem, dát nástroj a vhodně motivovat.

BRAND24

Chtělo by to mít stránku, kde stránku, kde by si rodič mohl s dítětem rovnou, bez nějakých instalací a licencí, „hrát na programování“. Kde by k tomu měl připravené ukázky a sbírku inspirativních nápadů. S ovládáním jednoduchým, zábavným, s textem jasným i pro malé dítě, ale neinfantilním. S možností výsledek práce uložit, sdílet s ostatními a koukat se, co udělali ostatní a jak… Technika na to je připravená – kdo se toho ujme?

(Je samosebou možné, že autor pouze špatně hledal a nenašel tu stránku, co přeci všichni rodiče s dětmi dávno znají… Pokud ji znáte, podělte se o ni v diskusi!)

Byl pro vás článek přínosný?

Autor článku

Sleduje, popularizuje a učí moderní webové technologie (HTML5 a podobné). Popularizuje nové nástroje a elektroniku, provozuje weby, sleduje dění na internetu, píše o něm a komentuje ho.

Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).