
Veliko ljudi pozna Scratch, otroško programsko okolje, v katerem se učenje običajno zmanjša na ustvarjanje kreativnih projektov po načelu »od preprostega k zapletenemu«. Hkrati je "klasični pristop" k učenju programiranja (spremenljivke → veje → zanke → funkcije → strukture → objekti → …) v Scratchu težak.
Vendar spreminjanje zaporedja učenja konceptov (recimo jim koncepti) strukturiranega, objektno in dogodkovno orientiranega programiranja, skrivanje le-teh za pisanimi spriti in interaktivnimi animacijami, ne pomeni, da konceptov ne bi smeli poudariti. Še posebej, če cilj ni toliko razvoj ustvarjalnih sposobnosti kot učenje programiranja. To idejo sem poskušal odražati v svojem .
Prva stvar, s katero se sreča začetni praskač, so sprite. Čeprav v Scratchu ni objektno usmerjenega programiranja samega po sebi, lahko sprite štejemo za objekte. Na tej stopnji učenec vidi, da ima lahko program veliko objektov, katerih vedenje nadzirajo zunanji skripti. Sprite prejemajo ukaze ali posredujejo informacije o svojem stanju na zahtevo, to pomeni, da se programiranje zmanjša na upravljanje objektov.
Druga stvar, ki mladega programerja takoj zadene v Scratchu, je koncept večnitnosti. Vsak sprite ima lahko več skriptov, ki se izvajajo hkrati. Več sprite lahko izvaja svoje programe hkrati. Poleg tega se izkaže, da je težje organizirati zaporedno izvajanje.


Že pri prvi lekciji se ne moremo izogniti spoznavanju ciklov. V nasprotnem primeru mačka res ne bo pobegnila. Na tej stopnji mora biti spoznavanje intuitivno in površno. Omejili smo ga na zanke "vedno ponovi" in "ponovi ... krat", ki jih je lažje razumeti. Pogojno zanko preučujemo v lekciji, ki je posebej namenjena zankam. Ta lekcija predvideva poznavanje logičnih izrazov in spremenljivk.
Ker je Scratch okolje, ki temelji na dogodkih, se je blokov pogojnih stavkov lažje naučiti pred spremenljivkami. Pogoj so lahko določeni dogodki.

Po mojem mnenju je to zaporedje boljše, saj za vsako lekcijo uvedemo najmanj pojmov. Pa ne abstraktnih, ampak takoj vidimo njihove praktične koristi.
Če najprej preučujete spremenljivke, potem je njihov namen in koristi težko dokazati, saj pogojni operator, vnos podatkov in generiranje naključnih števil še niso bili preučeni.
V Scratchu se programer, razen seznamov, sreča s tremi vrstami podatkov: številkami, nizi in logičnimi vrednostmi. V tem primeru je tip vezan na vrednost, ne na spremenljivko. Nizov ni treba pretvarjati v številke in nazaj. Nizi niso v narekovajih.
Blok, ki vrne logično vrednost in ima značilno oglato obliko, lahko vstavite v zaobljena polja. Obratno ne drži: kjer je predpostavljen logični izraz, redne spremenljivke ni mogoče vstaviti.

Scratch je implementiran tako, da med izvajanjem ne pride do kritičnih napak. Očitno je to razlog, zakaj se niz, če poskusite uporabiti v aritmetični operaciji, nadomesti z ničlo (glejte prvi posnetek zaslona).
Programer mora vedeti, da so zmogljivosti programskih jezikov razširjene s knjižnicami. Pri delu v Scratchu lahko študent povezuje dodatke, ki vodijo do pojava novih ukazov v okolju.

Funkcije v Scratchu so implementirane v razdelku "Drugi bloki", kjer na eni strani ustvarite svoj blok, ki ga lahko vstavite v druge skripte. Po drugi strani pa moramo zbrati funkcionalnost tega bloka, torej kaj bo naredil.

Funkcija nič ne vrne vrednosti.
Tako učenje konceptov programiranja v okolju, ki ga vodijo dogodki, pusti svoj pečat. V bistvu najprej proučimo kompleksnejše in abstraktnejše koncepte in šele ko se poglobimo v proces, preidemo na elemente strukturiranega programiranja. Ali je to plus ali minus za prvo poznanstvo, je sporna točka.
Vir: www.habr.com
