
Mnozí znají Scratch – dětské programovací prostředí, jehož učení obvykle spočívá ve vytváření kreativních projektů podle principu „od jednoduchého k složitému“. Přitom tradiční přístup k učení programování (proměnné → rozhodování → cykly → funkce → struktury → objekty → …) je ve Scratch obtížný.
Změna pořadí, v jakém se učí koncepty (nazvěme je koncepty) strukturovaného, objektově a událostmi řízeného programování, a jejich skrytí za barevnými sprite a interaktivní animací, však neznamená, že by na těchto konceptech neměl být kladen důraz. Zvlášť pokud je cílem ne toliko rozvoj kreativních dovedností, ale skutečně naučit programování. Tuto myšlenku jsem se pokusila vyjádřit ve svém .
Prvním, s čím se setkává začínající skratcher, jsou sprity. I když ve Scratch jako takovém objektově orientované programování neexistuje, sprity lze považovat za objekty. V této fázi se učenec setkává s tím, že v programu může být mnoho objektů, jejichž chování řídí skripty externí k nim. Sprity přijímají příkazy nebo na požádání předávají informace o svém stavu, takže programování spočívá v řízení objektů.
Druhá věc, která na mladého programátora ve Scratch okamžitě „spadne“, je pojem o vícerozměrnosti. Každý sprite může mít několik skriptů, které se vykonávají současně. Také několik spritů může vykonávat své programy současně jeden s druhým. Přitom je obtížnější organizovat sekvenční vykonávání.


Už na první lekci se nemůžeme vyhnout seznámení s cykly. Jinak kočka moc daleko neuteče. V této fázi musí být seznámení intuitivní a povrchní. Omezujeme ho na cykly „opakovat pořád“ a „opakovat … krát“, které jsou pro porozumění snazší. Cyklus s podmínkou se studuje v lekci, která je speciálně věnována cyklům. Tato lekce předpokládá znalosti logických výrazů a proměnných.
Jelikož je Scratch událostně orientované prostředí, je pohodlnější se učit bloky podmínkových příkazů před proměnnými. Podmínkami mohou být různá událost.

Podle mého názoru je takové uspořádání lepší, protože v každé lekci zavádíme minimální počet pojmů. A to přitom ne abstraktních, ale hned vidíme jejich praktický přínos.
Pokud bychom však nejprve studovali proměnné, bylo by těžké ukázat jejich účel a přínos, protože by nebyl prozkoumán podmínkový operátor, vstup dat a generování náhodných čísel.
Ve Scratchi, kromě seznamů, se programátor setkává se třemi typy dat: čísly, řetězci a logickým typem. Přičemž typ je vázán na hodnotu, nikoli na proměnnou. Není nutné převádět řetězce na čísla a naopak. Řetězce se nedávají do uvozovek.
Blok, který vrací logickou hodnotu a má pro něj charakteristický hranatý tvar, lze vložit do zaoblených polí. Naopak to neplatí: tam, kde se očekává logický výraz, nelze vložit obyčejnou proměnnou.

Scratch je navržen tak, aby během provádění nevznikaly kritické chyby. Patrně proto, když se pokusíte použít řetězec v aritmetické operaci, je nahrazen nulou (viz první screenshot).
Programátor by měl vědět, že možnosti programovacích jazyků jsou rozšiřovány pomocí knihoven. Prací ve Scratchi může žák připojit doplňky, které vedou k vytvoření nových příkazů v prostředí.

Funkce ve Scratchi jsou realizovány v sekci „Další bloky“, kde s jedné strany vytvoříte svůj vlastní blok, který lze vložit do jiných skriptů. Z druhé strany musíte sestavit funkcionalitu tohoto bloku, tedy to, co bude dělat.

Neexistuje vracení hodnoty z funkce Scratch.
Takže studium konceptů programování v událostmi orientovaném prostředí má své odlišnosti. V podstatě se nejprve učíme složitější a abstraktní pojmy a teprve během procesu přecházíme k prvkům strukturálního programování. Je to plus nebo minus pro první seznámení – to je sporná otázka.
Zdroj: habr.com
