Kurz Programování na Nuselské bude probíhat od 15. září 2022
a volně navazuje na kurz začátečníci. Je určen pro děti druhých
až čtvrtých tříd libovolné základní školy s tím, že děti druhých
tříd musí mít absolvovaný kurz začátečníci, šikovní jedinci z
řad třetích či čtvrtých tříd mohou přijít i bez předchozího
vzdělání.
Cílem tohoto kurzu je pokračování v rozvoji systematického
myšlení, hlubší poznávání světa informační techniky
a osvojení si základů elektrotechniky.
Kurz bude probíhat 1x týdně, každý čtvrtek od 15:15 do 16:05
v počítačové učebně.
V kurzu budeme využívat robůtky Cubetto,
Beebot i Ozobot.
Později si představíme platformu Micro:bit
a s ní zabředneme trochu blíže k elektrotechnice. Kromě těchto
se budeme věnovat i práci na PC, kde se budeme učit programovat
pomocí vybraných kurzů na code.org,
prostředí scratch a dalších.
To vše proložíme tvůrčími aktivitami s papírem, kostkami a jinými
rekvizitami.
Cílem kurzu není vzdělat hotového programátora, ale rozvíjet logické
myšlení, algoritmizaci a jiné vlastnosti, které se dětem budou hodit
při studiu jakéhokoliv oboru.
(if: $podmínka)[Vše v těchto závorkách se zobrazí pouze pokud je podmínka splněna]\
(else:)[Vše v těchto závorkách se zobrazí pouze pokud podmínka splněna není]
Zakončení práce s Twinery. Pro pokračování doma využijte Návod na twinery
návody na internetu, nebo výše poskytnuté ukázky. Případné otázky rád zodpovím v hodinách a návod případně
aktualizuji.
6. hodina
Konfigurace vlastního počítače z komponent
Vyzkoušeli jsme si “naskládat do košíku” komponenty na funkční počítač a porovnat cenu/výkon
Děti mohly použít jakýkoliv internetový obchod, např: czc, alza a softcom
Hlavní komponenty: procesor, základní deska, grafická karta, operační paměť, pevný disk, bedna a zdroj
Cílem hodiny bylo vyzkoušení orientace v e-shopu, vytvoření kompletního PC které teoreticky může fungovat, balancování výkonu a ceny jednotlivých komponent
Seřazení žáků dle výšky bez poheldu na celé pole (žák stojí zády a ptá se na 2 pozice, dozví se pouze který z žáků na těchto pozicích je větší)
Předvedení základních třídících algoritmů a jejich diagramů pdf, odg
Seznámení s pojmem největší společný dělitel, příště si vyzkoušíme jeho hledání pomocí Euklidova algoritmu pdf, odg a ukážeme si rozdíl mezi algoritmem, programem a strojovým kódem pdf, odt
Do budoucna doporučuji schovat si odkaz na pěknou literaturu zde
časováním a násobičem procesorové frekvence - procesor běží násobně rychleji než periferie, zeptá se na data a následně si počítá, co chce, až jsou data k dispozici, načte si je
dvoukanálovým řadičem RAM (dual-channel) - pokud jsou k dispozici 2 kompatibilní paměti, procesor se střídavě dotazuje jedné a druhé, čímž přibližně zdvojnásobí rychlost odezvy (pokud potřebuje data uložená v obou pamětích)
přetaktováním (overclocking)
Test 2.66GHz procesoru při 2.8GHz a následně se zvýšeným napětím na 3.0GHz
Frekvence procesoru ovlivňuje frekvenci periferií (800MHz RAM se zvedlo na 880MHz)
Přetaktování zvyšuje odpadní teplo a může vést k nenávratnému poškození počítače!
Nestihli jsme si pustit videa o extrémním přetaktováním, ukážeme si (části) příště video zdea jiné tu
Předělání hry z předchozích hodin na hru “přecházení silnice”, čímž jsme si shrnuli učivo a zároveň si ukázali, jak malý je rozdíl mezi poměrně odlišnými hrami.
Vymyslete si 3-5 věcí, které byste rádi zrealizovali do 5 let (dlouhodobý plán)
Rozložte si tyto plány na jednoduché kroky, které vedou směrem k dosažení těchto cílů (krátkodobé plány)
Vyzkoušejte “mikromeditaci” před učením (soustřeďte se pouze na jeden smysl, např. zrak, sluch, čich, dotek…); zpočátku 2 - 5 minut, až se naučíte, stačí 10 - 20s
Pro záznam myšlenek vyzkoušejte paměťovou mapu (mindmapu) inspirace
Pro výuku něco == něco využijte kartičky či software na výuku pomocí kartiček (doporučuji Anki či na androidu Ankidroid)
Pro výuku cizých jazyků vyzkoušejte videa s titulky, učte se slovní spojení místo jednotlivých slovíček
Pro ovládání robotické ruky jsme přidali Waweshark joystick. Zde bylo zapotřebí definovat komunikační protokol. Využili jsme funkce odešli hodnotu NAME číslo VALUE a spustit kód když je přijata hodnota (jméno číslo) NAME VALUE, pojmenovali jsme si jednotlivé osy A, B, C a definovali hodnotu jako číslo od 0 do 1023. Přijímací strana následně upravuje tyto hodnoty (0 až 1023) buďto na rychlost otáčení motoru (-100 až 100), nebo na polohu serva (0 až 359) pomocí bločku mapuj HODNOTU z intervalu od NIZKA do VYSOKA do intervalu od NIZKA do VYSOKA
0 se namapuje na -100, resp. 0
512 se namapuje na 0, resp. 180
1023 se namapuje na 100, resp. 359
26. hodina
Umělé inteligence
UI není inteligentní bytost, jedná se o nástroj jako je lopata. Při vhodném použití výrazně usnadní práci, ale člověk musí vědět, co od ní chce (nemusí už ale nezbytně vědět, co přesně, na druhou stranu musí výsledky dobře zkontrolovat)
Přirovnání k dynamitu - Alfred Nobel jej vynalezl jako spolehlivou a bezpečnou důlní trhavinu, nicméně okamžitě byl využit pro vojenské účely, což jej zdrtilo. Jako omluvu zřídil fond, který uděluje Nobelovu cenu.
Podobně novější UI modely jsou úžasné nástroje, které dokáží velmi pomoci, ale na druhé straně velmi snadno i uškodit. Trošku jsme toto téma s dětmi probrali, aby si byly vědomi možných následků i benefitů.
Praktická zkušenost - děti se připojili k ChatGPT, vyzkoušeli si, co umí, že se také umí plést ale že dovede generovat perzonifikované texty i programy (např. pohádky na míru, ukázky programů pro microbit, …)
Řešili jsme jak transformovat 2-osy joysticku x=<0; 1023> y=<0; 1023> na rychlost otáčení motorů autíčka L=<-100; 100> P=<-100; 100>. Nakreslili jsme si x, y do osy a vyzkoušeli pouze řešení v ose x (L=x, P=x) a y (L=y, P=-y), poté jsme výsledek spojili (L=x+y, P=x-y) a vysvětlili si, jaké potíže nám způsobí “nasycení”, čili stav kdy jedeme rychle a zároveň zatáčíme (L=150, P=50). Můžeme buď omezit maximální rychlost (L=0.5x+0.5y, P=0.5x-0.5y) a získat konzistentní ovládání, nebo zachovat maximální rychlost a smířit se s nekonzistentním zatáčením při vyšších rychlostech (případně zvolit složitější algoritmy pro plynulejší přechod)
Dokončili jsme vozidlo sledující čáru, autíčko na ovládání a, pomocí senzoru vzdálenosti, upravili jsme jeřáb na jednoduchý hudební nástroj.
29. hodina
Předávání instrukcí - malování obrázků
Děti se pokusily předat co nejpřesněji instrukce partnerům bez možnosti zpětné vazby. Toto cvičení nám ukazuje, kolik věcí si domýšlí lidský mozek, když nemá přesná data, případně nestíhá data zpracovat. Také nám ukazuje, kolik dat se ztratí při transformaci myšlenky na slova u prvního žáka, při přenosu zvuku, při zpracování slov u žáka druhého a nakonec při transformaci myšlenky na papír. Co říkám není to, co myslím a co slyším, nemusí být to, co druhý říká.
Počítač, narozdíl od člověka, nemá možnost si data domyslet, pokud jej k tomu nikdo nenaprogramuje, proto je důležité trénovat přesný popis (například orientace papíru, rozměry kreslených objektů, přesné umístění…)
Toho lze docílit například rozdělením plochy na malé čtverečky a uložení konkrétní hodnoty barvy (rasterový obrázek). Alternativní možností je uložit každý tah (čáru) jako vektor a rekonstruovat obraz (vektorový obrázek). Každý způsob má své výhody.
30. hodina
Bezpečí na internetu
Jako úvod jsme diskutovali nad tématem, kdo vlastně platí vytvářený obsah na internetu.
Následně jsme využili komix Contra Chrome jako odrazový můstek k tématu soukromí, sběru dat a cílené reklamy
Někteří stihli ještě lehký úvod do Deep Fake videí
Myšlenka dne: Nelze se vyhnout sběru dat, je potřeba jej přijmout ale dobře volit co sdílíme, co potřebujeme a co si můžeme odpustit. Je důležité přemýšlet u toho, co děláme, co vidíme. Také je důležité si uvědomit, že na internetu je ke každé informaci mnoho zdrojů pravdivých i mnoho nepravdivých a tudíž pořekadlo “Na každém šprochu pravdy trochu” na internetu nemusí platit.
31. hodina
Optimalizace, úzké hrdlo, konstrukce a návaznost výrobních linek
Využili jsme hry Shapezio k názorné ukázce, jak stavět optimální konstrukce, co to je úzké hrdlo, jak se projevuje a jak spočítat optimální poměr jednotlivých komponent.
Minetest je hra inspirovaná Minecraftem ale kompletně open-source s velkým množstvím rozšířeních a k dispozici zdarma. Základní hra nabídne několik druhů bločků a nic moc navíc, proto doporučuji kliknout dole v menu “+” (Instalovat hry z ContentDB) a přidat rozšíření jako třeba “MineClone 2”, jež je dost podobné Minecraftu. Nebo pouze přidat “Mobs Redo”, jež přidává do hry tvory/zvířata (pokud nechcete nebezpečné tvory, je možné použít přidat “only_peaceful_mobs = true” do konfiguračního souboru “minetest.conf”, čímž se nepřidají nestvůry, ale pouze hodná zvířata). Hra samozřejmě umožňuje více hráčů buď lokálně, nebo po síti (podobně jak v Minecraftu).
My jsme využili tuto hru k nastínění agilní metodologie řízení projektů. Děti dostali za úkol vytvořit vesnici dle zadaných požadavků. Pro zjednodušení a zrychlení dostaly úkoly sprintu připravené. Následně si braly jednoduché úkoly a na konci sprintu (po setmění) jsme zhodnotili a naplánovali další.