Invatare Atomica

Evaluare Finala: Modulul Scratch

Progres lectie:
0%
🎯

Obiectivul lectiei

Demonstreaza tot ce ai invatat despre programare in Scratch - de la algoritmi secventiali la crearea de jocuri complete

Dupa aceasta lectie vei putea:

  • Sa identifici interfata Scratch
  • Sa identifici categorii de blocuri
  • Sa demonstrezi algoritmi secventiali
  • Sa folosesti animatii
  • Sa folosesti structura alternativa

Incearca singur!

🎯 Test Practic: 3 Provocari

Inainte de testul teoretic, demonstreaza-ti abilitatile practice! Rezolva aceste 3 provocari in Scratch pentru a-ti incalzi "muschii" de programare.

1

Animatie: Sprite Dansator

Creaza un sprite (poate fi pisica default) care "danseaza" - se misca stanga-dreapta si schimba intre costume pentru a parea ca danseaza.

CERINTE OBLIGATORII:
  • Sprite-ul se misca stanga-dreapta (se invarte sau schimba pozitia x)
  • Foloseste blocul "urmatorul costum" pentru animatie
  • Animatia ruleaza la infinit (bucla forever)
  • Include o asteptare (wait) pentru a controla viteza
Indiciu - Structura de baza
Cand se da click pe 🚩
  la infinit
    urmatorul costum
    schimba x cu (10)
    daca <(pozitie x) > (200)> atunci
      schimba x cu (-400)
    asteapta (0.2) secunde
2

Logica: Verificator de Paritate

Creaza un program care intreaba un numar, apoi spune daca numarul este PAR sau IMPAR folosind structura alternativa.

CERINTE OBLIGATORII:
  • Foloseste "intreaba si asteapta" pentru input
  • Foloseste "daca-atunci-altfel" pentru decizie
  • Verifica paritatea cu operatorul modulo: (numar mod 2) = 0
  • Afiseaza mesaj clar: "PAR" sau "IMPAR"
Indiciu - Formula paritatii
/* Un numar e PAR daca impartit la 2 da rest 0 */
/* Operatorul "mod" calculeaza restul impartirii */

Cand se da click pe 🚩
  intreaba [Introdu un numar:] si asteapta
  daca <((raspuns) mod (2)) = (0)> atunci
    spune [PAR!] pentru (2) secunde
  altfel
    spune [IMPAR!] pentru (2) secunde
3

Joc Mini: Colector de Puncte

Creaza un joc simplu: sprite-ul principal se controleaza cu tastele sageti, exista un obiect (ex: steluta) care apare random, si un scor care creste cand atingi obiectul.

CERINTE OBLIGATORII:
  • Sprite jucator controlat cu sagetile (sus/jos/stanga/dreapta)
  • Sprite obiect care apare in pozitii aleatoare cand e atins
  • Variabila "scor" care porneste de la 0 si creste cu 1
  • Detectare coliziune: daca sprite-ul jucator atinge obiectul
Indiciu - Cod pentru obiect
/* Sprite OBIECT (steluta) */
Cand se da click pe 🚩
  seteaza (scor) la (0)
  la infinit
    daca <atingi (Jucator)?> atunci
      schimba (scor) cu (1)
      mergi la x: (alege aleator -200 la 200) y: (alege aleator -150 la 150)
      porneste sunetul (pop)
🔗 Deschide Scratch pentru a rezolva provocarile
💡 Sfat Important

Nu trebuie sa rezolvi perfect toate provocarile pentru a continua! Scopul este sa exersezi si sa-ti verifici cunostintele. Daca te blochezi peste 10 minute la o provocare, treci mai departe si revino dupa ce termini testul teoretic. Uneori, raspunsurile vin cand nu mai fortezi!

1

1. Interfata Scratch

🎨
Interfata Scratch - Cele 3 Zone
Scratch este un mediu grafic interactiv de programare vizuala, accesibil la scratch.mit.edu. Interfata sa are 3 zone principale care lucreaza impreuna:
  • Paleta de blocuri (stanga) - categoriile de instructiuni disponibile
  • Zona de cod (centru) - locul unde construiesti scripturile prin drag & drop
  • Scena (dreapta) - ecranul unde rulezi si vizualizezi programul
🎭 Analogie din viata ta:

Interfata Scratch e ca un atelier de teatru. Paleta de blocuri e "recuzita" (accesorii disponibile), zona de cod e "scenariul" pe care il scrii, iar scena e "scena teatrului" unde actorii (sprite-urile) joaca. Le ai pe toate in acelasi loc!

Elementele principale din interfata
🖥️ Zone cheie pe care trebuie sa le stii

Steagul verde (deasupra scenei) = porneste programul

Butonul rosu Stop (deasupra scenei) = opreste programul

Tab-ul Costume (sus-centru) = pentru a vedea si edita costumele sprite-ului selectat

Tab-ul Sunete (sus-centru) = pentru a adauga/edita sunete

Zona sprite-uri (jos-dreapta) = lista tuturor personajelor din proiect

Butonul fundal (jos-dreapta, langa sprite-uri) = pentru a adauga fundaluri

Confuzii frecvente

Scena vs Zona de cod: Scena e unde RULEZI programul. Zona de cod e unde IL CONSTRUIESTI. Blocurile din zona de cod nu sunt vizibile pe scena!

Sprite vs Backdrop: Sprite-urile sunt personajele mobile (au cod propriu). Backdrop-ul este fundalul fix din spatele lor.

2

2. Categorii de Blocuri

🧩
Categorii de Blocuri - Culorile conteaza!
In Scratch, fiecare categorie de blocuri are o culoare proprie. Culoarea iti spune imediat ce tip de instructiune e. Categoriile principale din programa clasei a V-a sunt:
  • Motion (Miscare) - albastru: mergi, roteste, gliseaza, seteaza pozitia
  • Looks (Aspect) - mov/violet: spune, costum, arata/ascunde, fundal
  • Events (Evenimente) - galben: cand se da click, cand se apasa tasta
  • Control - portocaliu: asteapta, daca-atunci, daca-atunci-altfel, repeta
  • Sensing (Detectare) - albastru-deschis: atingi?, tasta apasata?, intreaba
  • Operators (Operatori) - verde: +, -, *, /, mod, si, sau, nu
  • Variables (Variabile) - portocaliu-inchis: seteaza variabila, schimba cu
🌈 Analogie din viata ta:

E ca la farmacie, unde medicamentele sunt grupate pe categorii si culori. In Scratch, culoarea blocului iti spune instant ce face: albastrul = miscare, portocaliul = logica/control, galbenul = evenimente. Dupa putin antrenament, gasesti orice bloc in sub 3 secunde!

Program care foloseste 4 categorii diferite
cand se da click pe 🚩 arata mergi la x: (0) y: (0) asteapta (1) secunde spune [Sunt gata!] pentru (2) secunde

Observa culorile: galben (event), violet (looks), albastru (motion), portocaliu (control). Fiecare culoare = o categorie diferita!

✨ Trucul culorilor

Cand nu gasesti un bloc, gandeste-te la culoarea lui: vrei sa misti ceva? → albastru. Vrei sa astepti sau sa faci o conditie? → portocaliu. Vrei sa arati ceva? → violet.

3

3. Algoritmi Secventiali

📝
Algoritmi Secventiali - Pas cu pas
Algoritm secvential (structura liniara) = un sir de instructiuni care se executa una dupa alta, in ordinea in care sunt scrise, de sus in jos. Nu exista ramificatii sau repetari - fiecare pas se face exact o singura data.

Conform programei cls. V (OMEN 3393/2017), aceasta este prima structura de control invatata: competenta V-2.3 si V-3.2.
🍳 Analogie din viata ta:

E ca o reteta de bucatarie: "1. Pune apa la fiert. 2. Adauga paste. 3. Asteapta 10 minute. 4. Scurge apa. 5. Pune sos." Faci pasii in ACEASTA ORDINE si nu sari peste niciunul. Daca faci pasii in alta ordine, rezultatul e gresit!

Algoritm secvential complet: Pisica se prezinta
cand se da click pe 🚩 arata mergi la x: (0) y: (0) treci la costumul (costume1) spune [Buna! Ma numesc Scratch!] pentru (2) secunde asteapta (0.5) secunde urmatorul costum spune [Sunt un program Scratch!] pentru (2) secunde mergi (50) pasi spune [Pa!] pentru (1) secunde ascunde

Fiecare instructiune se executa exact o data, in ordine. Nimic nu se repeta automat, nimic nu se sare. Asta e structura secventiala!

🔑 Reguli cheie pentru algoritmi secventiali

1. Ordinea blocurilor CONTEAZA - rezultate diferite pentru ordini diferite

2. Fiecare bloc se executa complet inainte de urmatorul

3. "say X for N seconds" tine programul pe loc N secunde, apoi continua

4. "say X" (fara "for N seconds") afiseaza imediat si continua, fara pauza

4

4. Animatii

🎬
Animatii - Iluzia miscarii
Animatia in Scratch = schimbarea rapida a costumelor unui sprite, combinata cu miscare si pauze, pentru a crea iluzia de miscare fluida. Blocurile cheie:
  • urmatorul costum - schimba la urmatorul costum (ciclic)
  • mergi (N) pasi - deplaseaza sprite-ul
  • gliseaza in (N) secunde la x: y: - miscare lina spre o pozitie
  • asteapta (N) secunde - controleaza viteza animatiei
🎥 Analogie din viata ta:

Un film la cinema ruleaza 24 de imagini (cadre) pe secunda. Fiecare imagine e usor diferita de cea precedenta. Cand le vezi atat de rapid, creierul tau le "lipeste" intr-o miscare fluida. In Scratch faci exact acelasi lucru cu costumele sprite-ului: schimbi costumul la fiecare 0.1-0.2 secunde si personajul "se misca"!

Animatie de mers: 3 pasi secventiali
cand se da click pe 🚩 arata mergi la x: (-150) y: (-50) urmatorul costum mergi (30) pasi asteapta (0.2) secunde urmatorul costum mergi (30) pasi asteapta (0.2) secunde urmatorul costum mergi (30) pasi asteapta (0.2) secunde spune [Am mers 3 pasi!] pentru (2) secunde

Combinatia costum + miscare + pauza, repetata de 3 ori, creeaza animatia de mers. "glide" poate inlocui "mergi pasi" pentru miscare mai lina.

✨ Viteze de animatie recomandate

wait 0.1 sec = rapid, energic (personaj care alearga)

wait 0.2 sec = natural (mers normal)

wait 0.5 sec = incet, dramatic (mers greoi)

5

5. Structura Alternativa

🔀
Structura Alternativa - Programul ia decizii
Structura alternativa (decizionala) permite programului sa execute instructiuni diferite in functie de o conditie. Doua variante:
  • daca-atunci: executa blocurile DOAR daca conditia e adevarata; daca e falsa, sare peste ele
  • daca-atunci-altfel: executa blocurile din "atunci" daca conditia e adevarata, SAU blocurile din "altfel" daca e falsa. Mereu se executa ceva!
Conform programei cls. V (OMEN 3393/2017): competentele V-2.4 si V-3.2.
🚦 Analogie din viata ta:

Un semafor cu "daca-atunci-altfel": DACA lumina e verde ATUNCI mergi ALTFEL opreste-te. Nu exista o a treia optiune - ori mergi, ori te opresti. In Scratch, orice decizie din joc (a lovit peretele? a obtinut punctaj maxim? a apasat tasta?) e implementata cu aceasta structura.

Exemplu: Pisica spune daca e zi sau noapte
cand se da click pe 🚩 intreaba [Ora actuala (0-23):] si asteapta daca <(raspuns) < (20)> atunci spune [Buna ziua! E inca lumina afara.] pentru (2) secunde altfel spune [Buna seara! S-a innoptat.] pentru (2) secunde

Programul intreaba ora, compara cu 20 (ora 20:00). Daca ora introdusa e mai mica de 20, e ziua. Altfel, e seara. MEREU se executa una dintre cele doua ramuri!

🔑 Reguli cheie pentru structura alternativa

1. Conditia din "daca" e intotdeauna adevarata sau falsa - nu exista "poate"

2. Blocurile de sensing (detectare) furnizeaza conditii: "atingi X?", "tasta apasata?", "raspuns = Y?"

3. Operatorii de comparatie (<, >, =) si logici (si, sau, nu) construiesc conditii mai complexe

4. "daca-atunci" fara "altfel" = nimic nu se intampla cand conditia e falsa (util uneori!)

6

6. Variabile

🔢
Variabile - Memoria programului
Variabila = o "cutie" cu un nume care pastreaza o valoare (numar sau text). Valoarea se poate schimba pe parcursul programului. In Scratch, variabilele sunt create din categoria Variables si apar vizibil pe scena (ca un afisaj de scor).
  • seteaza (variabila) la (valoare) - da o valoare exacta (ex: seteaza scor la 0 la inceput)
  • schimba (variabila) cu (numar) - adauga la valoarea existenta (ex: +1 cand iei un punct)
📦 Analogie din viata ta:

O variabila e ca un whiteboard in clasa cu un nume scris pe el. "seteaza scor la 0" = stergi tot ce era si scrii 0. "schimba scor cu 1" = adaugi 1 la ce era deja scris. Daca era 5 si adaugi 1, devine 6. Whiteboard-ul tine minte valoarea curenta!

Sistem de scor pentru un joc simplu

Cod pentru sprite-ul OBIECT (steluta):

cand se da click pe 🚩 seteaza (scor) la (0) arata mergi la x: (alege aleator -200 la 200) y: (alege aleator -150 la 150) asteapta pana cand <atingi (Jucator)?> schimba (scor) cu (1) ascunde

Scorul porneste de la 0. De fiecare data cand jucatorul atinge steluta, scorul creste cu 1. "schimba cu" adauga la valoarea curenta!

Confuzie frecventa

"seteaza la" vs "schimba cu" - sunt DIFERITE!

"seteaza (scor) la (5)" → scorul devine EXACT 5, indiferent ce era inainte.

"schimba (scor) cu (5)" → se ADAUGA 5 la ce era deja. Daca era 10, devine 15.

Greseala clasica: folosesti "seteaza la 1" in loc de "schimba cu 1" → scorul se reseteaza la 1 la fiecare punct, nu creste!

7

7. Detectare (Sensing)

👁️
Detectare (Sensing) - Simturile programului
Blocurile de Sensing (Detectare) permit programului sa "simta" ce se intampla in jur: daca doua sprite-uri se ating, daca s-a apasat o tasta, daca mouse-ul e intr-o pozitie. Aceste blocuri au forma de hexagon si furnizeaza valori adevarat/fals pentru blocurile "daca".
  • atingi (NumeSprite)? - detecteaza coliziunea cu alt sprite
  • tasta (spatiu) apasata? - detecteaza apasarea unei taste
  • atingi culoarea [culoare]? - detecteaza contact cu o culoare
  • intreaba [intrebare] si asteapta - citeste input de la utilizator; raspunsul e in variabila "raspuns"
🤖 Analogie din viata ta:

Senzorii unui robot: are senzor de proximitate (ating ceva?), senzor de lumina (e lumina?), senzor tactil (m-a atins cineva?). Fara senzori, robotul nu poate reactiona la mediu. In Scratch, blocurile de sensing sunt "senzorii" programului - fara ele, jocul nu poate sti daca ai lovit un inamic sau ai apasat o tasta!

Detectare coliziune - codul unui obiect colectibil
cand se da click pe 🚩 arata mergi la x: (alege aleator -200 la 200) y: (alege aleator -150 la 150) asteapta pana cand <atingi (Jucator)?> spune [Ai castigat!] pentru (2) secunde ascunde

Programul asteapta pana jucatorul atinge obiectul (coliziune detectata), apoi reactioneaza. Blocul "atingi?" e cel care face detectarea!

🔑 Reguli cheie pentru detectare

1. Blocurile hexagonale (sensing) nu fac nimic singure - se pun INTR-UN bloc "daca" sau "asteapta pana cand"

2. "intreaba si asteapta" opreste programul pana utilizatorul scrie ceva si apasa Enter

3. Raspunsul la "intreaba" se stocheaza automat in variabila speciala numita "raspuns"

4. Detectarea tastelor: "cand se apasa tasta X" (din Events) vs "tasta X apasata?" (din Sensing, pentru verificare continua)

8

8. Bucle (Loops)

🔁
Bucle (Loops) - Structura repetitiva
Bucla (loop) = un bloc de Control care repeta instructiunile din interior de mai multe ori, fara sa le scriem de fiecare data manual. Trei tipuri principale:
  • la infinit - repeta la nesfarsit (pana la Stop); folosit pentru animatii continue si gameplay
  • repeta (N) - repeta exact N ori, apoi continua cu blocul urmator
  • repeta pana cand <conditie> - repeta pana cand o conditie devine adevarata (ex: pana scorul ajunge la 10)
Nota: structura repetitiva este studiata aprofundat in cls. VI (OMEN 3393/2017, VI-2.3). Aceasta este o recapitulare si context pentru evaluarea finala a modulului.
🎵 Analogie din viata ta:

Buclele sunt ca "repeat" pe un player muzical. "la infinit" = redare continua (piesa reluata mereu). "repeta 10" = piesa se reda de 10 ori si se opreste. "repeta pana cand" = piesa se reia pana dai Skip. Fara bucle, jocurile ar trebui sa scrie explicit fiecare cadru al animatiei - imposibil pentru zeci de mii de cadre!

Joc complet: Sprite controlat cu tastele

Cod pentru Jucator:

cand se da click pe 🚩 mergi la x: (0) y: (0) la infinit daca <tasta (sageata dreapta) apasata?> atunci schimba x cu (5) daca <tasta (sageata stanga) apasata?> atunci schimba x cu (-5)

"la infinit" verifica tastele in continuu. Fara bucla, jucatorul ar putea apasa tasta o singura data si personajul s-ar misca o singura data, apoi s-ar opri definitiv.

✨ Pattern-uri standard in jocuri Scratch

Animatie continua: forever { urmatorul costum, wait 0.2 sec }

Control jucator: forever { daca tasta X apasata? atunci misca }

Colectibil: forever { daca atingi Jucatorul? atunci schimba scor cu 1, muta random }

Temporizator: repeta N { asteapta 1 secunda, schimba timp cu -1 }

Exercitii practice

Exercitiul 1 (Nivel minim) - Recapitulare Scratch

Cerinta: Demonstreaza ce ai invatat despre Scratch:

  1. Numeste 5 categorii de blocuri din Scratch (de exemplu: Miscare, Aspecte, etc.) si da un exemplu de bloc din fiecare categorie.
  2. Explica ce face urmatoarea secventa: 'cand se da click pe steag' → 'mergi 50 pasi' → 'asteapta 1 secunda' → 'spune Gata!'. Descrie pas cu pas.
  3. Ce este un sprite? Ce este o scena (backdrop)? Ce este un script? Defineste fiecare termen cu cuvintele tale.

Exercitiul 2 (Nivel standard) - Analiza si corectare

Cerinta: Rezolva urmatoarele probleme practice:

  1. Un elev a facut un program in care pisica trebuie sa mearga inainte si inapoi, dar pisica merge doar inainte. Ce bloc lipseste? (indiciu: se roteste 180 grade). Scrie secventa corecta.
  2. Care este diferenta dintre 'repeta de 10 ori' si 'repeta la infinit'? Cand ai folosi fiecare? Da un exemplu pentru fiecare.
  3. Explica ce sunt evenimentele in Scratch. Da 3 exemple de blocuri care incep cu 'cand...' si descrie cand se activeaza fiecare.

Exercitiul 3 (Nivel performanta) - Proiect de evaluare

Cerinta: Creeaza un proiect care demonstreaza tot ce ai invatat:

  1. Creeaza in Scratch o animatie care foloseste: cel putin 2 sprite-uri, o variabila, o bucla 'repeta', o conditie 'daca...atunci' si un eveniment 'cand se apasa tasta'.
  2. Scrie pe hartie pseudocodul (algoritmul in cuvinte) pentru proiectul tau INAINTE de a-l face in Scratch. Compara pseudocodul cu programul final.
  3. Prezinta proiectul clasei: explica ce face, ce blocuri ai folosit si ce a fost cel mai dificil. Ce ai face diferit daca ar trebui sa refaci proiectul?

Ce ai invatat astazi

  • Interfata Scratch: 3 zone (paleta blocuri, zona cod, scena) si elementele cheie
  • Categoriile de blocuri si culorile lor: albastru=miscare, violet=aspect, portocaliu=control
  • Algoritmi secventiali - executia pas cu pas a instructiunilor, in ordine
  • Crearea de animatii fluide folosind costume si combinatia costum+miscare+pauza
  • Structura alternativa (daca-atunci-altfel) pentru decizii in cod
  • Lucrul cu variabile: "seteaza la" da valoare exacta, "schimba cu" adauga
  • Detectarea (sensing): coliziuni, taste apasate, input utilizator
  • Bucle pentru animatii continue si gameplay (aprofundare cls. VI)

Urmatoarea lectie

Continua cu lectia urmatoare pentru a aprofunda cunostintele.

Continua →