
Mulți cunosc Scratch – un mediu de programare pentru copii, a cărui învățare se concentrează de obicei pe crearea proiectelor creative, începând de la „simplu la complex”. Totuși, abordarea „clasică” a învățării programării (variabile → ramificări → bucle → funcții → structuri → obiecte → …) este dificil de aplicat în Scratch.
Cu toate acestea, schimbarea ordinii de învățare a conceptelor (să le numim concepte) din programarea structurală, orientată pe obiecte și evenimente, și ascunderea lor în spatele unor sprite atrăgătoare și animații interactive nu înseamnă că nu ar trebui să punem accent pe concepte. În special, dacă scopul nu este atât dezvoltarea abilităților creative, cât mai ales învățarea programării. Această idee am încercat să o reflect în .
Primul lucru cu care se confruntă un începător în Scratch sunt sprite-urile. Deși în Scratch nu există un programare orientată pe obiecte propriu-zisă, sprite-urile pot fi considerate obiecte. În această etapă, elevul vede că în program pot exista multiple obiecte ale căror comportamente sunt controlate de scripturi externe. Sprite-urile primesc comenzi sau, la cerere, transmit informații despre starea lor, ceea ce face ca programarea să se reducă la gestionarea obiectelor.
Al doilea concept ce îi este prezentat imediat tânărului programator în Scratch este cel al multithreading-ului. Fiecare sprite poate avea câteva scripturi care rulează simultan. De asemenea, mai multe sprite-uri pot executa simultan programele lor unii cu alții. Totuși, devine mai complicat să organizăm execuția secvențială.


Deja în prima lecție nu putem evita familiarizarea cu buclele. Altfel, pisica nu se va mișca prea mult. În această etapă, familiarizarea trebuie să rămână intuitivă și superficială. O limităm la buclele „repetați mereu” și „repetați ... ori”, care sunt mai ușor de înțeles. Bula cu condiție este studiată într-o lecție dedicată special buclelor. Această lecție presupune cunoașterea expresiilor logice și a variabilelor.
Deoarece Scratch este un mediu orientat pe evenimente, blocurile operatorului condițional sunt mai ușor de studiat înainte de variabile. Evenimentele anume pot acționa ca condiții.

Din punctul meu de vedere, o astfel de succesiune este mai bună, deoarece pentru fiecare lecție introducem un număr minim de noțiuni. Și nu noțiuni abstracte, ci vedem imediat utilitatea lor practică.
Dacă începem cu variabilele, atunci este dificil să demonstrăm scopul și utilitatea acestora, deoarece înainte nu au fost învățate operatorul condițional, introducerea datelor și generarea numerelor aleatorii.
În Scratch, cu excepția listelor, programatorul întâlnește trei tipuri de date: numere, șiruri de caractere și tip boolean. În plus, tipul este legat de valoare, nu de variabilă. Nu este necesar să convertim șirurile în numere și invers. Șirurile nu se încadrează între ghilimele.
Blocul care returnează o valoare booleană și are o formă caracteristică colțuroasă poate fi inserat în câmpuri rotunde. Inversul nu este adevărat: acolo unde se presupune o expresie booleană, nu se poate insera o variabilă obișnuită.

Scratch este conceput pentru a nu genera erori critice în timpul execuției. Se pare că din această cauză, dacă se încearcă utilizarea unui șir în operații aritmetice, acesta este înlocuit cu zero (vezi prima captură de ecran).
Programatorul trebuie să știe că funcționalitățile limbajelor de programare sunt extinse prin biblioteci. Lucrând în Scratch, elevul poate conecta suplimente care conduc la apariția de comenzi noi în mediu.

Funcțiile în Scratch sunt implementate în secțiunea „Blocuri suplimentare”, unde pe de o parte creezi un bloc propriu care poate fi inserat în alte scripturi. Pe de altă parte, trebuie să aduni funcționalitatea acestui bloc, adică ceea ce va face.

Nu există o returnare a valorilor dintr-o funcție Scratch.
Astfel, studiul conceptelor de programare într-un mediu orientat pe evenimente își lasă amprenta. Practic, mai întâi studiem concepte mai complexe și abstracte și, pe măsură ce ne adâncim în proces, trecem la elementele programării structurale. Dacă este un avantaj sau un dezavantaj pentru prima întâlnire – este o întrebare controversată.
Sursa: habr.com
