
Mnohí poznajú Scratch – detské programovacie prostredie, ktorého učenie sa zvyčajne sústreďuje na vytváranie kreatívnych projektov na princípe „od jednoduchého k zložitému“. Pri tom „klasický prístup“ k učeniu programovania (premenné → vetvenia → cykly → funkcie → štruktúry → objekty → …) je v Scratch obtiažny.
Avšak zmena poradia učenia pojmov (nazvime ich konceptmi) štruktúrovaného, objektovo- a udalostne-orientovaného programovania, ich skrytie za pestre žiariacimi spritmi a interaktívnou animáciou, neznamená, že by sa na koncepciu nemalo klásť dôraz. Zvlášť, ak je cieľom nie len rozvoj kreatívnych schopností, ale aj učenie sa programovania. Túto myšlienku som sa snažila odrážať vo svojom .
Prvým, s čím sa stretáva začiatočník na Scratchi, sú sprity. Hoci v Scratch nie je striktne vzorovo orientované programovanie, sprity môžeme považovať za objekty. V tejto fáze sa žiak dozvie, že v programe môže byť množstvo objektov, ktorých správanie riadia externé skripty. Sprity dostávajú príkazy alebo na požiadanie odovzdávajú informácie o svojom stave, teda programovanie sa zúži na riadenie objektov.
Druhým, čo sa hneď na hlavu mladému programátorovi skryje v Scratchi, je pojem o viacerých vláknach. Každý sprit môže mať niekoľko skriptov, ktoré sa vykonávajú súčasne. Niekoľko spritov tiež môže súčasne vykonávať svoje programy navzájom. Práca na zabezpečení postupného vykonávania sa ukazuje ako zložitá.


Už na prvej hodine sa nemôžeme vyhnúť oboznámeniu s cyklami. Inak mačka sa nepohne. V tejto fáze musíme nechať oboznámenie intuitívne a povrchné. Obmedzujeme to na cykly „opakovať vždy“ a „opakovať … krát“, ktoré sú ľahšie na pochopenie. Cyklus s podmienkou sa vyučuje v lekcii, ktorá je špeciálne venovaná cyklom. Táto lekcia predpokladá znalosť logických výrazov a premenných.
Keďže Scratch je udalosťami orientované prostredie, bloky podmienkového operátora je výhodnejšie študovať pred premennými. Podmienkami môžu byť rôzne udalosti.

Podľa mňa je takáto postupnosť lepšia, pretože pri každej lekcii zavádzame minimálne pojmov. A nie abstraktných, ale hneď vidíme ich praktický prínos.
Ak sa však najprv učíme premenné, ťažko je demonštrovať ich účel a prínos, pretože predtým neboli preštudované podmienkový príkaz, vstup údajov a generovanie náhodných čísel.
V Scratch, okrem zoznamov, sa programátor stretáva s tromi typmi údajov: číslami, reťazcami a logickým typom. Typ je pritom viazaný na hodnotu, nie na premennú. Prevod reťazcov na čísla a späť nie je potrebný. Reťazce nie sú uzatvárané do úvodzoviek.
Blok, ktorý vracia logickú hodnotu a má charakteristický hranatý tvar, sa dá vložiť do okrúhlych polí. Opačne to neplatí: tam, kde sa predpokladá logický výraz, nie je možné vložiť bežnú premennú.

Scratch je navrhnutý tak, aby počas vykonávania nevznikali kritické chyby. Zrejme preto, ak sa pokúsite použiť reťazec v aritmetickej operácii, je nahradený nulou (pozri prvý screenshot).
Programátor by mal vedieť, že možnosti programovacích jazykov sa rozširujú prostredníctvom knižníc. Pri práci v Scratch môže študent pripojiť doplnky, ktoré vedú k objaveniu nových príkazov v prostredí.

Funkcie v Scratch sú implementované v sekcii „Iné bloky“, kde na jednej strane vytvárate vlastný blok, ktorý môžete vkladať do iných skriptov. Na druhej strane musíte zhromaždiť funkčnosť tohto bloku, teda to, čo bude robiť.

Nie je vykonávaný návrat hodnôt z funkcií v Scratch.
Takto štúdium konceptov programovania v udalostne orientovanom prostredí zanecháva svoj odtlačok. V podstate najprv študujeme zložitejšie a abstraktnejšie pojmy a len prehlbovaním procesu prechádzame k prvkom štrukturálneho programovania. Či je to výhoda alebo nevýhoda pre prvé zoznámenie – je to sporná otázka.
Zdroj: habr.com
