Kako naš program razmišlja?Pet malih programa, pet važnih ideja

Prošle smo radionice u MakeCodeu napravili pet programa za micro:bit: pozdrav, srce koje kuca, reakciju na tipke A i B, digitalnu kockicu i brojač bodova.
Danas ih nećemo samo ponovno sastaviti. Istražit ćemo zašto rade baš tako.
Za svaki program pokušat ćemo odgovoriti na četiri pitanja:
- Što pokreće program?
- Što micro:bit zatim napravi?
- Radi li to jednom, stalno ili tek kada se nešto dogodi?
- Što će se promijeniti ako promijenimo jedan blok?
Naš način rada bit će:
predvidi ⇒ pokreni ⇒ promijeni jednu stvar ⇒ ponovno testiraj ⇒ objasni rezultat
Programiranje nije samo slaganje blokova. Programiranje je i razumijevanje onoga što smo složili.
Za početak: što će se dogoditi?
Još nemoj otvarati računar. Najprije pokušaj odgovoriti bez pokretanja programa.
Voditelj će pokazati četiri mala plana. Za svaki reci što očekuješ:
- Prikaži ime. Zatim prikaži srce.
- Stalno prikazuj veliko pa malo srce.
- Kada pritisnem A, prikaži A.
- Kada protresem micro:bit, prikaži broj od 1 do 6.
Razmisli: koji program nešto napravi odmah, koji nešto ponavlja, a koji čeka da ti nešto napraviš?
Ne moraš pogoditi svaki odgovor. Važno je da počneš predviđati prije nego što klikneš Pokreni.
Program 1: Pozdrav, micro:bit!
Tehnika: naredbe imaju redoslijed
PRIKAŽI MOJE IME
PRIKAŽI SRCE
KRAJ

U MakeCodeu su naredbe show string i show icon smještene u blok on start.
Kada program počne, micro:bit prvo prikazuje ime, a zatim srce. on start služi za radnje koje želimo pokrenuti na početku; blok show string prikazuje tekst na LED ekranu.
Predvidi
Prije testiranja odgovori:
- Što će se prikazati prvo?
- Hoće li se ime prikazivati stalno?
- Što će biti na ekranu nakon što ime prođe?
Isprobaj
Pokreni program u MakeCode simulatoru. Promatraj cijeli slijed, a ne samo zadnju sliku.
Promijeni jednu stvar
PRIKAŽI SRCE
PRIKAŽI MOJE IME
KRAJ
Zaključak: Redoslijed blokova mijenja redoslijed radnji. Ako želimo drugačiji rezultat, ponekad ne trebamo novi blok – dovoljno je premjestiti postojeći.
Dodatni izazov
- Dodaj treću naredbu: prikaži svoj omiljeni broj. Neka prijatelj pogodi kojim će se redom pojaviti ime, srce i broj.
Program 2: Srce koje kuca
Tehnike: ponavljanje i čekanje
PRIKAŽI VELIKO SRCE
PRIČEKAJ POLA SEKUNDE
PRIKAŽI MALO SRCE
PRIČEKAJ POLA SEKUNDE
KRAJ

forever stalno ponavlja naredbe koje su u njemu. Blok pause određuje koliko dugo program čeka prije nastavka. Vrijeme je zapisano u milisekundama: 1000 ms je jedna sekunda, a 500 ms pola sekunde.
Predvidi
- Hoće li srce kucnuti samo jednom ili mnogo puta?
- Što misliš, hoće li kucati brže ako pauzu promijenimo s 500 ms na 100 ms?
- A što će se dogoditi s pauzom od 1000 ms?
Isprobaj
Pokreni program u simulatoru i pogledaj nekoliko ponavljanja.
Promijeni jednu stvar
Promijeni obje pauze na 1000 ms. Ponovno testiraj. Zatim ih promijeni na 100 ms.
Dodatni izazov
- Napravi vlastitu animaciju od dvije slike. Na primjer, naizmjence prikaži smajlić i iznenađeno lice. Odaberi pauzu tako da se promjena može jasno vidjeti.
Program 3: Tipka A i tipka B
Tehnika: program reagira na događaj
Do sada je micro:bit nešto napravio odmah na početku ili stalno ponavljao zadatak. Sada može čekati da pritisnemo tipku.
KADA JE PRITISNUTA TIPKA A
PRIKAŽI SLOVO "A"
KADA JE PRITISNUTA TIPKA B
PRIKAŽI SLOVO "B"


Pritisak tipke zovemo događaj. Blok on button A pressed kaže micro:bitu koje naredbe treba pokrenuti kada se taj događaj dogodi. MakeCode podržava zasebne reakcije na A, B i A+B.
Predvidi
- Što će se dogoditi ako ne pritisnemo nijednu tipku?
- Što će se prikazati kada pritisnemo A?
- Može li se naredba za tipku B izvršiti kada pritisnemo A?
Isprobaj
U simulatoru pritisni A pa B. Na pravom micro:bitu pritisni tipke prstom.
Promijeni jednu stvar
Neka tipka A prikazuje sretno lice, a tipka B tužno lice. Prije testiranja provjeri jesi li odgovarajuću ikonu stavio/la u odgovarajući blok.
Zaključak: Program može imati više dijelova koji čekaju različite događaje. Ne izvršavaju se svi odmah jedan za drugim.
Dodatni izazov
Dodaj reakciju na A+B: neka micro:bit prikaže srce. Provjeri razlikuje li program pritisak samo A, samo B i obje tipke zajedno.
Program 4: Digitalna kockica
Tehnike: događaj i nasumičan broj
Digitalna kockica ne pokazuje novi broj stalno. Ona čeka da micro:bit nježno protresemo.
KADA MICRO:BIT PREPOZNA TRESENJE
ODABERI NASUMIČAN BROJ OD 1 DO 6
PRIKAŽI ODABRANI BROJ

Tresenje je događaj, slično pritisku tipke. MakeCode može reagirati na gestu shake, a blok za nasumičan cijeli broj bira vrijednost u zadanom rasponu – uključujući najmanji i najveći broj. Dakle, raspon 1–6 može dati i 1 i 6.
Predvidi
- Može li se pojaviti broj 0?
- Može li se pojaviti broj 7?
- Hoće li svako tresenje dati različit broj?
- Treba li se broj promijeniti ako samo gledaš u micro:bit na stolu?
Isprobaj
Pokreni program u simulatoru i aktiviraj tresenje. Ako koristiš pravi micro:bit, tresi ga nježno. Ne bacaj ga i ne vuci USB kabel.
Promijeni jednu stvar
Promijeni raspon brojeva s 1–6 na 1–3.
Sada deset puta aktiviraj program i zapiši brojeve koji su se pojavili. Vidiš li neki broj izvan novog raspona?
Dodatni izazov
Napravi kockicu s brojevima 1–10. Prije testiranja reci koji su najmanji i najveći mogući rezultat.
Program 5: Brojač bodova
Tehnika: program pamti vrijednost
Ovaj program uvodi novu ideju: varijablu.
Varijabla je kao kutijica s imenom. U našoj kutijici piše bodovi, a u njoj čuvamo broj koji se može mijenjati.
Prije rada u MakeCodeu, zamislimo to s kutijicom i nekoliko žetona:
- Prazna kutijica znači da imamo 0 bodova.
- Svaki pritisak tipke A dodaje jedan žeton.
- Pritisak tipke B ne dodaje žeton, nego traži da prebrojimo koliko ih već imamo.
KADA PROGRAM POČNE
POSTAVI BODOVI NA 0
KADA JE PRITISNUTA TIPKA A
POVEĆAJ BODOVI ZA 1
KADA JE PRITISNUTA TIPKA B
PRIKAŽI BODOVI

MakeCodeovi primjeri koriste varijablu za brojanje pritisaka tipke i blok show number za prikaz spremljene vrijednosti.
Predvidi
Na početku su bodovi = 0.
- Ako pritisnemo A jednom, koliko bodova imamo?
- Ako pritisnemo A još dva puta, koliko ih imamo?
- Ako zatim pritisnemo B, što će micro:bit prikazati?
- Hoće li samo pritiskanje B povećati broj bodova?
Složi i testiraj
U kategoriji Variables napravi varijablu bodovi. Zatim u odgovarajuće blokove dodaj postavljanje na 0, povećanje za 1 i prikaz broja.
- Pritisni A tri puta, pa B. Usporedi prikazani rezultat sa svojim predviđanjem.
Promijeni jednu stvar
Promijeni povećanje s 1 na 2. Ponovno pokreni program, pritisni A tri puta, zatim B. Koji broj očekuješ?
Dodatni izazov: reset
Dodaj događaj A+B koji postavlja bodovi na 0. Nakon reseta ponovno pritisni B i provjeri rezultat.
Reset znači povratak na početno stanje. Takvo pravilo koristit ćemo i u drugim projektima.
Završni izazov: Pokvari pa popravi
Svaki par neka izabere jedan zadatak. Najprije objasnite što nije u redu, zatim promijenite samo ono što je potrebno i testirajte program.
1. Problem: Pozdrav pokazuje srce prije imena, ali želimo obrnuto
Trag za istraživanje: Pogledaj redoslijed naredbi
2. Problem: Srce kuca presporo
Trag za istraživanje: Pogledaj vrijednosti u blokovima pause
3. Problem: Tipka A prikazuje odgovor namijenjen tipki B
Trag za istraživanje: Pogledaj u kojem su događaju koje naredbe
4. Problem: Kockica ponekad prikazuje 0
Trag za istraživanje: Pogledaj najmanji broj u rasponu
5. Problem: Brojač nakon novog pokretanja ne kreće od 0
Trag za istraživanje: Provjeri postavljanje početne vrijednosti
Za svaki zadatak recite:
- Mislimo da je problem u ______.
- Promijenit ćemo ______.
- Očekujemo da će se dogoditi ______.
- Nakon testa vidjeli smo ______.
Ako rezultat nije onakav kakav ste očekivali, ne mijenjajte nasumično sve blokove. Vratite se na program i provjeravajte jednu pretpostavku po jednu.
Kako znamo da smo razumjeli?
Nije najvažnije da svih pet programa izgleda savršeno. Za jedan program koji izabereš pokušaj objasniti:
- Kada se naredba pokreće?
- Što naredba radi?
- Ponavlja li se?
- Pamti li program neku vrijednost?
- Što si predvidio/la, a što se stvarno dogodilo?
Ako možeš odgovoriti na ta pitanja i samostalno promijeniti jedan blok, razumiješ mnogo više nego što bi razumio/la samim prepisivanjem programa.
Što smo naučili?
Danas nismo samo pokretali programe. Naučili smo predvidjeti što će micro:bit napraviti, promijeniti jedan dio programa i provjeriti jesmo li dobro razmišljali.
- Program se sastoji od naredbi koje micro:bit izvršava određenim redoslijedom.
- on start pokreće naredbe na početku programa.
- show string, show icon i show number prikazuju tekst, sličicu ili broj na LED ekranu.
- forever stalno ponavlja naredbe koje se nalaze unutar njega.
- pause određuje koliko dugo program čeka prije sljedeće naredbe.
- Pritisak tipke i tresenje su događaji: program može čekati da se dogode, a zatim reagirati.
- Digitalna kockica može odabrati nasumičan broj iz zadanog raspona. Isti broj smije se pojaviti više puta zaredom.
- Varijabla bodovi čuva broj koji program može promijeniti i kasnije prikazati.
- set bodovi to 0 postavlja broj bodova na nulu, a change bodovi by 1 dodaje jedan postojećem broju.
- Kada program ne radi kako očekujemo, provjeravamo ga korak po korak i mijenjamo jednu stvar odjednom.

