PRVI DIO: GDJE POČETI SA SCRATCH-EM?
Sve što trebate je računalo, internet veza i dobra volja. Za početak treba otići na web stranicu www.scratch.mit.edu i registrirati se. Preporučujemo da se registrirate kako biste kasnije mogli lako pristupiti vašim kreacijama (projektima) te nastaviti gdje ste zadnji put stali.
Nakon registracije, kliknite na Kreirajte gore lijevo i zabava može početi! Čestitamo! Upravo ste ušli u editor u kojem ćete provoditi većinu vremena. Na prvi pogled može izgledati komplicirano, ali ne brinite, u nastavku ćemo vam objasniti osnovne koncepte koji će vam pomoći da se lakše snađete.
DIJELOVI EDITORA
Editor u Scratchu se sastoji od tri dijela: 1) Ekran za izvršavanje koda 2) Skripte 3) Područje za programiranje.
1) EKRAN ZA IZVRŠAVANJE KODA
U ovom dijelu ćete vidjeti kako se vaš kod izvršava, odnosno što ste do sada isprogramirali. Tu ćete testirati svoj kod da vidite radi li ono što ste naumili. Na vrhu se nalazi zelena zastavica koja služi za pokretanje koda (programa) i crveni kružić za zaustavljanje. Dobar savjet je da svaki put kada napravite promjenu, kliknete na zastavicu da vidite kako ta promjena utječe na program. Vjerujte, program se neće uvijek ponašati kako ste zamislili (ne ponaša se niti najvećim ekspertima) i testiranje nakon svake promjene je potrebno kako biste lakše uočili i ispravili pogrešku. Zaključno, zelena zastavica – vaš najbolji prijatelj!
Ispod ekrana za izvršavanje koda se nalaze dva podekrana: a) pozornica i b) likovi.
- Pozornica – tu birate pozadinu vašeg programa, u bazi već postoji veliki broj pozadina, a možete ubaciti i vlastitu sliku.
- Likovi – tu birate lika, odnosno objekt koji će nešto raditi na pozadini. Isto tako, postoji već veliki broj ponuđenih, a možete i sami ubaciti svoj lik.
Važno je napomenuti da svaki lik i pozadina koju ste izabrali ima vlastito područje za programiranje gdje ćete unositi kod koji se odnosi baš na taj lik ili pozadinu. Znači, ako želite da se nešto događa s pozadinom, selektirate pozadinu i onda u području za programiranje ubacujete kod. Želite programirati lik? Selektirate njega i onda desno ubacujete kod.
2) SKRIPTE
Tu se nalaze sve funkcije ili skripte koje nam služe za programiranje. Baziraju se na drag and drop principu gdje željenu skriptu prevučemo na desni dio ekrana, u područje za programiranje, i skripta kreće s izvršavanjem.
Ovaj ekran je sastavljen od tri dijela: a) Skripte b) Kostimi ili pozadine c) Zvukovi.
- Skripte – kao što smo već spomenuli, najvažniji dio pomoću kojega ćete programirati što se događa. Neke funkcije nisu dostupne, ovisno da li vam je selektiran lik ili pozadina (npr. pozadina se ne može kretati pa nema ništa pod dijelom za kretanje). U početku preporučujemo da se najviše bazirate na liku, tako da budite sigurni da vam je lik selektiran. Kao što vidite, mnogo je skripti, ali za početak će vam najkorisniji biti događaji (okidači koji pokreću kod), kretanja (funkcije za kretanje lika), izgled (omogućuje da lik nešto kaže ili da dođe do neke vizualne promjene). Za početak, preporučujemo da se bazirate na te tri kategorije skripti i polako eksperimentirate s ostalim kategorijama.
- Kostimi/pozadine – ovaj dio služi za dodatnu grafičku doradu vašeg lika ili pozadine. Služi kao editor slika i tu možete mijenjati boje, veličinu, rotirati itd. kao u nekom od programa za obradu slika.
- Zvukovi – ovdje možete snimati vlastiti zvuk, ili odabrati već neki postojeći te ga ubaciti u vaš program.
3) PODRUČJE ZA PROGRAMIRANJE
Desni dio ekrana i najvažniji dio u koji ćete ubacivati željene funkcije koje se kasnije izvršavaju. Kako smo već spomenuli, programiranje u Scratchu se bazira na drag and drop principu i na ovaj dio stavljate sve skripte. Isto tako, skripte su poput puzzle-a te ih međusobno spajate na ovom dijelu ekrana. Kao niti puzzle, ne možemo spojiti ni sve skripte međusobno. Na sreću, postoje vizualni pokazatelji koji nam pomažu da vidimo što se može spojiti, a što ne. Eksperimentirajte s različitim skriptama i vidite što ćete dobiti, vrlo je zabavno!
DRUGI DIO: VARIJABLE I PETLJE
Što su to varijable i petlje u programiranju? Zašto ih koristiti i treba li ih uopće koristiti? Odgovorit ćemo na ova pitanja i pokazati vam kako pomoću Scratcha efikasnije napisati programski kod i učiti programirati. Nastavimo sa zabavnim programiranjem u drugom dijelu ovog vodiča za učenje programiranja pomoću Scratch-a.
OBJAŠNJENJE VARIJABLI
Varijable su vam najvjerojatnije poznate iz matematike, kao neke X i Y vrijednosti. One zapravo predstavljaju imena nekih vrijednost koje variraju, odnosno mogu se mijenjati.
Kod programiranja je vrlo slično. Varijable možemo zamisliti kao kutije u koje nešto spremamo. U tu kutiju možemo nešto staviti, izvaditi i staviti nešto drugo. Tako i u programiranju, u varijablu spremimo neku vrijednost, a možemo ju i promijeniti i spremiti neku drugu vrijednost. Te vrijednosti poslije možemo naći i “dozvati” pomoću njihovog imena – imena koje smo dali varijabli.
Uzmimo primjer iz stvarnog života. zamislite prodavača jabuka na tržnici koji viče prolaznicima “Kupite jabuke! Još samo deset i nestalo! U ovom slučaju količina jabuka je varijabla koja se mijenja ovisno o tome koliko kila jabuka je ostalo. Nakon što prodavač proda jednu jabuku, varijabla se mijenja i on nastavlja vikati “Kupite jabuke! Još samo devet i nestalo!”
OBJAŠNJENJE PETLJI
Petlje su jako korisne, kako u programiranju, tako i u stvarnom životu kada više puta ponavljamo identičnu radnju.
Petlje se sastoje od tri dijela:
- Početno stanje – vrijednost, ili bolje rečeno varijabla, koju zadajemo kao početnu vrijednost.
- Uvjet – predstavlja uvjet o kojem ovisi koliko dugo će se petlja izvršavati.
- Promjena vrijednosti početnog stanja – početno stanje moramo promijeniti kako bismo prekinuli petlju, inače će se ona izvršavati u beskonačnost ili u slučaju programa, dok se ne sruši. Taj fenomen je vrlo česti bug (greška) u programima i naziva se beskonačna petlja (infinite loop).
Hajdemo vidjeti na našem primjeru prodavača jabuka. Znamo da je došao na tržnicu s određenim brojem jabuka. Žena mu je rekla da se ne vraća kući dok ne proda sve jabuke.
U ovom slučaju, broj jabuka je početno stanje, a uvjet je da mora prodati sve jabuke. Svaki put kada proda jabuke dolazi do promjene vrijednosti početnog stanja. Početna vrijednost je 10 jabuka i on će ponavljati istu radnju (privlačiti kupce, vagati jabuke, pakirati ih u vrećicu, naplaćivati) sve dok ne dođe do 0 jabuka. Tada se radnja prekida i on izlazi iz petlje i konačno može kući.
Pri samoj pomisli na repetitivne radnje (petlje), gotovo svakom čovjeku pada mrak na oči. Ali za razliku od ljudi, računala ih obožavaju i odlična su u njima! Baš iz tog razloga su varijable i petlje korisne, jer nama štede ogromnu količinu vremena, a računalu je svejedno – ono ih odradi za par milisekundi.
Sada kada ste obogatili svoje znanje varijablama i petljama, spremni ste da ih iskoristite kako biste imali više vremena za druge zadatke. S ovim znanjem već možete isprogramirati zanimljive stvari i impresionirati prijatelje. Jedva čekamo da vidimo što ste vi napravili!
TREĆI DIO: FUNKCIJE
Sjećate li se funkcija iz srednjoškolskih dana? Vjerujemo da i vama, kao i većini ljudi nisu ostale u najboljem sjećanju. Unatoč tome, pokazat ćemo vam kako su funkcije u programiranju izuzetno korisne i kako vam mogu uvelike olakšati i ubrzati posao.
KAKO FUNKCIONIRAJU FUNKCIJE?
Zamislite da dolazite u prodavaonicu sa sendvičima i želite naručiti sendvič s tunom i rajčicom. Kažete prodavaču “Tuna i rajčica” i za par minuta, on vam donosi sendvič s tunom i rajčicom.
Da računalo priprema taj sendvič i da naručite na isti način dobili biste, doslovno, samo tunu i rajčicu.
To je zato što ljudi imaju sposobnost apstraktnog razmišljanja i znaju zaključiti što vi zapravo želite. S druge strane, računala su doslovna i napravit će samo ono što mu kažete da napravi.
Iz tog razloga, ako želite da vam računalo napravi sendvič, morate mu doslovno reći sve korake: “uzmi kruh, uzmi nož, odreži jednu šnitu kruha, uzmi odrezanu šnitu i na nju stavi tunu, na tunu stavi rajčicu…” i tako dalje dok mu ne kažete sve korake koji su potrebni za pripravak sendviča.
KORIŠTENJE FUNKCIJA
Kada bismo morali svaki put kada nešto želimo (npr. umjesto tune želimo piletinu) pisati kod za kompletan postupak, to bi vrlo brzo postalo prenaporno i ne bi nam dugo trebalo da odustanemo od bilo kakvih pokušaja programiranja. Sva sreća što postoje Funkcije. Funkcije nam služe da grupiramo programski kod koji onda možemo iznova koristiti mijenjajući samo određene dijelove.
Scratch, kao i svi ostali programski jezici dolaze s već puno definiranih funkcija koje koristimo bez potrebe da znamo kako su one definirane. Npr. ako uzmemo funkciju “govori” u Scratchu i u nju ubacimo “Lijep je dan”, nas ne zanima kako je ta funkcija “govori” definirana, važan nam je samo rezultat, tj. to da će ona ispisati “Lijep je dan”.
“Lijep je dan” u spomenutom primjeru naziva se argument. On predstavlja varijabilni dio funkcije – mijenja se ovisno o našem inputu. Argument (jedan ili više njih) “dajemo” funkciji u trenutku kad je izvršavamo (zovemo).
DEFINIRANJE VLASTITIH FUNKCIJA
Ipak, u većini slučajeva ne postoje već unaprijed definirane funkcije za ono što želimo, već ih moramo sami definirati. Kao u slučaju našeg sendviča. Ako želimo da računalu, kao i čovjeku, možemo samo reći “tuna i rajčica” i da nam on napravi sendvič s tunom i rajčicom, sve ostale radnje što ulaze u izradu sendviča ćemo definirati unutar funkcije (bloka u Scratchu).
U Scratchu, odemo na Više blokova te zatim Napravi blok i spremni smo za definiranje bloka (funkcije).
Svaka funkcija mora imati ime, i to je prva stvar koju ćemo napraviti. Možemo dati ime koje želimo. Postoji izreka da je nazivanje stvari jedan od najtežih problema u računarstvu pa se pripremite na puno razmišljanja o tome. No zasad je dovoljno znati da se za ime funkcije najčešće koristi glagol koji opisuje radnju funkcije i piše se zajedno, s velikim početnim slovom svake riječi osim prve: npr. izradiSendvič.
Nakon toga moramo definirati hoće li nam inputi, ili varijabilni dio funkcije biti brojevi ili tekst te koliko će inputa funkcija sadržavati.
U slučaju sendviča, definirali bismo 2 inputa tekstualnog tipa. Ta dva inputa nazivamo parametri te oni predstavljaju varijabilni dio funkcije koje onda mijenjamo s pravim vrijednostima koje kasnije unosimo. Parametri trebaju imati smisleno ime jer time olakšavaju razumijevanje svrhe funkcije.
U ovom slučaju, ta dva parametra možemo nazvati meso i salata. Meso predstavlja sve moguće izbore mesa (tuna, šunka, piletina), a salata (krastavac, zelena, rajčica) sve moguće izbore salate za sendvič. Zamislite ih kao rezervirana mjesta koje će se popuniti argumentima s kojima zovemo funkciju. Kada naručimo “piletinu i krastavac”, umjesto mesa funkcija uzima piletinu a umjesto salate uzima krastavac. Trenutna definicija naše funkcije je izradiSendvič (meso, salata). To se naziva i zaglavlje funkcije.
Sada svaki put kad naručujemo sendvič s različitim sastojcima možemo pozvati funkciju “izradiSendvič” samo s tim sastojcima, budući da ostatak izrade sendviča ostaje isti. Taj ostatak naziva se tijelo funkcije.
U našem slučaju u tijelo bi stavili skup naredbi koje opisuju korake izrade sendviča. Uzimanje i rezanje kruha, redoslijed sastojaka i sve druge fiksne postupke. U trenutku pisanja funkcije ne znamo koje sastojke će netko naručiti i zato tu stavljamo generične parametre – meso i salatu. Unutar funkcije koristimo npr. govori(meso) i govori(salata). Kad zovemo funkciju, znamo koje vrijednosti želimo pa ih “pošaljemo” s funkcijom. Te prave vrijednosti zamijenit će sve generične.
Ako npr. pozovemo izradiSendvič(šunka, rajčica), svuda umjesto mesa ići će šunka, a umjesto salate rajčica. Znači možemo reći samo reći računalu koji sastojak da stavi umjesto mesa i koji sastojak umjesto salate i on će nam napraviti sendvič s tim sastojcima.
I to je to! Sada znate kako možete definirati vlastite funkcije kada se za to ukaže potreba. Funkcije su jedan od najvažnijih koncepata u programiranju i sada ste korak bliže u njihovom ovladavanju. Ako vam još djeluju zbunjujuće, ne brinite. Funkcije su dosta težak koncept za shvatiti, ali uz razmišljanje i vježbu ćete biti sve bolji i bolji. A kada sve sjedne na svoje mjesto, pitat ćete se kako ste prije živjeli bez njih!
Sretno kodiranje!
ŠTO ĆETE NAUČITI I KOJE VJEŠTINE ĆETE RAZVIJATI PROGRAMIRANJEM U SCRATCH-U?
- Osnovne principe funkcioniranja Scratch programskog jezika
- Osnovne principe programiranja
- Logiku algoritmičkog načina razmišljanja
- Vještine iz područja STEM tehnologije
- Kreativnost
- Divergentno mišljenje (razmišljanje izvan okvira)
- Strpljenje i otpornost na frustraciju
Izvor: stemlittleexplorers.com