
Mnoho ľudí pozná Scratch, detské programovacie prostredie, v ktorom učenie zvyčajne vedie k vytváraniu kreatívnych projektov podľa princípu „od jednoduchých po zložité“. Zároveň je „klasický prístup“ k učeniu programovania (premenné → vetvy → slučky → funkcie → štruktúry → objekty → …) v Scratchi náročný.
Zmena postupnosti učenia sa pojmov (nazvime ich koncepty) štruktúrovaného, objektovo a na udalosti orientovaného programovania, ich schovávanie za farebné škriatkovia a interaktívne animácie však neznamená, že by sa koncepty nemali zdôrazňovať. Najmä ak cieľom nie je ani tak rozvoj tvorivých schopností, ako skôr učenie sa programovania. Snažil som sa túto myšlienku premietnuť do mojej .
Prvá vec, s ktorou sa začínajúci škrabanec stretáva, sú škriatkovia. Hoci v Scratch neexistuje žiadne objektovo orientované programovanie ako také, sprajtov možno považovať za objekty. V tejto fáze študent vidí, že program môže mať veľa objektov, ktorých správanie je riadené skriptami, ktoré sú pre ne externé. Škriatkovia na požiadanie prijímajú príkazy alebo vysielajú informácie o svojom stave, to znamená, že programovanie spočíva v riadení objektov.
Druhá vec, ktorá mladého programátora v Scratchi okamžite napadne, je koncept multithreadingu. Každý sprite môže mať spustených niekoľko skriptov súčasne. Viacerí sprite môžu tiež spúšťať svoje programy súčasne. Okrem toho sa ukazuje, že je ťažšie organizovať postupné vykonávanie.


Už na prvej lekcii sa nevyhneme zoznámeniu sa s cyklami. V opačnom prípade mačka skutočne neutečie. V tejto fáze musí zoznámenie zostať intuitívne a povrchné. Obmedzujeme ho na slučky „opakovať vždy“ a „opakovať... krát“, ktoré sú zrozumiteľnejšie. Podmienená slučka je študovaná v lekcii špeciálne venovanej slučkám. Táto lekcia predpokladá znalosť booleovských výrazov a premenných.
Keďže Scratch je prostredie riadené udalosťami, bloky podmienených príkazov sa dajú ľahšie naučiť pred premennými. Podmienkou môžu byť určité udalosti.

Podľa mňa je táto postupnosť lepšia, keďže na každú lekciu uvádzame minimum pojmov. A nie abstraktné, ale hneď vidíme ich praktické výhody.
Ak najprv študujete premenné, potom je ťažké preukázať ich účel a výhody, pretože podmienený operátor, zadávanie údajov a generovanie náhodných čísel sa predtým neskúmali.
V Scratch, nepočítajúc zoznamy, sa programátor stretáva s tromi typmi údajov: číslami, reťazcami a booleovskými údajmi. V tomto prípade je typ viazaný na hodnotu, nie na premennú. Nie je potrebné prevádzať reťazce na čísla a späť. Reťazce nie sú v úvodzovkách.
Do zaoblených polí možno vložiť blok, ktorý vracia boolovskú hodnotu a má charakteristický uhlový tvar. Opak nie je pravdou: tam, kde sa predpokladá booleovský výraz, nemožno vložiť regulárnu premennú.

Scratch je implementovaný tak, aby sa počas vykonávania nevyskytli žiadne kritické chyby. Zrejme preto, ak sa pokúsite použiť reťazec v aritmetickej operácii, je nahradený nulou (pozri prvú snímku obrazovky).
Programátor by mal vedieť, že možnosti programovacích jazykov rozširujú knižnice. Pri práci v programe Scratch môže študent spájať doplnky, ktoré vedú k objaveniu sa nových príkazov v prostredí.

Funkcie v Scratchi sú implementované v sekcii "Ostatné bloky", kde si na jednej strane vytvoríte vlastný blok, ktorý je možné vložiť do iných skriptov. Na druhej strane musíme zozbierať funkčnosť tohto bloku, teda to, čo bude robiť.

Neexistuje žiadna návratová hodnota funkcie scratch.
Učenie sa programovacích konceptov v prostredí riadenom udalosťami teda zanecháva svoje stopy. V podstate najprv študujeme zložitejšie a abstraktnejšie pojmy a až keď sa ponoríme hlbšie do procesu, prejdeme k prvkom štruktúrovaného programovania. Či je to plus alebo mínus pre prvé zoznámenie, je diskutabilné.
Zdroj: hab.com
