Zápisky z Robotiky - první hodiny

Pokud si někdo myslí, že učit programovat děti je hračka, tak se šeredně plete. Pokud si ale někdo myslí, že to je peklo, tak by to neměl ani zkoušet, protože je úplně mimo. S jistotou mohu říct jen toto: Být připraven alespoň o 2 hodiny v předu je na hraně :-)

Začal jsem vést kroužek robotiky a programování. Podařilo se mi prokousat celou škálou papírování, dohadování a jiných nezbytností k tomu, aby mi na kroužek přišli děti a já se jim něco pokusil předat. Už mám nějaké zkušenosti z učením počítačů a to jak čerstvých +/- dvacátníků tak i počínajících důchodců, kteří počítač viděli jen na obrázku, v lepším případě u dětí, nebo vnoučat. Řeknu Vám, je v tom trochu rozdíl. Možná ale jiný, než by jeden očekával. Ty děti to zvládnou daleko rychleji. Zbytek je stejný, zlobí a ruší všichni stejně :-)

Dopadlo to nakonec tak, že mám 14 dětí v jedné hodině, 4tá - 6tá třída a pak 6 dětí v druhé hodině 8má třída. Potěšilo mě, že mám dohromady 3 holky, 2 + 1, takže cca každý šestý žák. Ano 14 dětí je docela dost. Pokud si ale někdo myslí, že těch 6 lze ukočírovat lépe než 14, tak jen proto, že ty starší jsou trochu rozumnější, a pubertu mi zatím nedávají tolik sežrat. Jinak je to stejné.

Google blockly

Jako, jo. Tajně doufám, že se k němu vrátíme a zkusíme jím ovládat ten malý plotter s CD mechanik, který stále nemám hotový :D Ale jinak nic moc. Jsou prostě hrozně rychlý. Pro mladší ročníky, možná 2-4tá třída bychom vydrželi několik hodin, ale rozmanitost v chápání se projevuje ve všech věkových skupinách stejně nahodile.

Code.org

Musím se pokárat, to jsem hodně přecenil, resp. mou přípravu hluboce podcenil. První hodina byla oťukávací, dokonce na tom 8máci byly znatelně hůře než mladší skupina. Jenže kdybych si dal větší práci, určitě bych je u teorie udržel o něco déle. Takto měli někteří Minecraft ještě před koncem hodiny a s tím jsem opravdu nepočítal. Na druhou stranu, z chyb se člověk učí a to je dobře.

BBC Micro:bit

Rozhodně dobrá volba. Myslím si, že u BBC Micro:bitu chvíli vydržíme a to zejména z několika důvodů.

  • Za prvé, platforma je opravdu dobře připravená na výuku. A mnoho věcí, vlastně nejspíš všechny základní, si lze odladit ještě na simulátoru, takže skutečný kousek není úplně potřeba a je jen tím živým co mají děti v ruce.

  • Za druhé, základní výbava je opravdu bohatá. Měřit teplotu nic moc, ale hrátky s akcelerometrem už jsou o něčem jiném. A LEDkový "display" minimálně pro začátky opravdu stačí.

  • Za třetí, děti mají v ruce něco reálného, něco co je "poslouchá", něco co dokážou sami oživit a to je pro ně něco opravdu zajímavého.

  • Čím dál více uvažuji o skutečném hýbání světem právě skrze tento malá zázrak.

Jediná nevýhoda je, že veškeré příklady, které jsem našel jsem uznal za nevhodné, nebo nezáživné. Takže přicházím z vlastní iniciativou a úlohami, které je alespoň nějak zaujmou. Výhoda toho je, že je to snad baví, alespoň to tak vypadá, a zábavnou formou je doslova nutím překonávat problémy, které musí vyřešit. Občas to proložím i nějakou nudnou teorií, kterou si následně snad trochu vyzkouší v praxi.

Pro mě zatím nejdůležitější je, že se musím připravit na několik hodin do předu. Prostě mám rozpracovaných, nebo alespoň předpřipravených několik úloh, na které mohu sáhnout, abych zabavil ty rychlejší. Resp. abych mohl v rámci hodiny danou úlohu rozšířit o nějaký bonus.

První úlohy

Aby tento článek byl konečně trochu zajímavý, přikládám první úlohy, které zafungovali, a na kterých se děti snad i něco učí.

9 odstínů červené

První kód je vlastně hrozně jednoduchý, nicméně sestavit ho vyžaduje poměrně dost soustředění, aby bylo jasné co se děje. Celou věc také "ničí" BBC Micro:bit, který dovoluje dělit nulou. To společně se zaokrouhlením je prozatím obrovský benefit, který oddaluje nějaké "hloupé" matematické problémy na později.

Princip je jednoduchý, vyplnit LED display různými barvami tak, aby bylo zřejmé, že má display řádky i sloupce a že existují smyčky, které se dají použít.

for (let x = 0; x <= 4; x++) {
  for (let y = 0; y <= 4; y++) {
      led.plotBrightness(x, y, 255 / (x + (y + 1)))
  }
}

Kód samozřejmě píšeme v blokovém jazyku, zde je jeho JavaScriptovská interpretace. U článku je ale přiložen i hex soubor, který lze do aplikace https://makecode.microbit.org/ nahrát.

Zde je výsledek:

9 odstínů červené

microbit-9_odstinu.png - 9 odstínů červené

Kříž

Vypsat hodnoty na display je fajn, zajímavá je teplota, kterou každý naměří vlastní, ale ta vizualizace je nic moc. Jiná vizualizace je ale mnohem zajímavější, a zaměřovací kříž pohybující se dle akcelerometru měl slovy jednoho z žáků, zásadní dopad na důležitost celého kroužku ;-)

Jde o vyčtení dvou hodnot, které byly nejprve vyneseny rovnou na display, následně pak uloženy do proměnných, které byly znovu použity.

let y = 0
let x = 0
basic.forever(() => {
  basic.clearScreen()
  x = (input.acceleration(Dimension.X) + 1023) / 410
  y = (input.acceleration(Dimension.Y) + 1023) / 410
  led.plot(x, y)
  led.plotBrightness(x + 1, y, 64)
  led.plotBrightness(x - 1, y, 64)
  led.plotBrightness(x, y + 1, 64)
  led.plotBrightness(x, y - 1, 64)
})

Jak jsem psal, úlohy se snažím cílit na efekt, a dle ohlasu žáků, se toto opravdu povedlo. Kód v hex podobě ke stažení zde.

pohybující se zaměřovací kříž

microbit_kriz.png - pohybující se zaměřovací kříž

Na příští hodiny mám připravené další úlohy, které ty hotové nějak rozšiřují. Ty popíšu v dalším článku i se sklizeným úspěchem. V každém případě u žáků jsem vzbudil takový zájem, že se připravuje hromadná objednávka, aby měli děti vlastní BBC micro:bit doma.

Autor:

Diskuze

Váš komentář:

© 2023 Ondřej Tůma McBig. Ondřej Tůma | Based on: Morias | Twitter: mcbig_cz | RSS: články, twitter