Principi programiranja kroz Scratch platformu
Programiranje ili igra?
Iako uglavnom poznat po blokovskom programiranju za decu, Scratch takođe važi i za
okruženje kroz čije mehanizme je moguće naučiti i razumeti neke od najbitnijih
principa u programiranju, bez obzira da li govorimo o logičkoj ili praktičnoj
strani. Veliki broj ljudi povezuje Scratch sa procesima kreiranja animacija i
igrica, ali prava vrednost jeste u tome što se zapravo kroz blokovske instrukcije i
programiranje zasnovano na prevlačenju i slaganju naredbi mogu razumeti i naučiti i
neki od najvrednijih globalnih koncepata iz programiranja koji omogućavaju dalje i
ozbiljnije učenje u ovoj disciplini.
Predstavićemo važnost nekih od njih kao i njihovu implementaciju u Scratchu.
Redosled izvršavanja naredbi
Jedan od najvažnijih koncepata u programiranju jeste način na koji se instrukcije izvršavaju u zavisnosti od instrukcije koja se realizuje. Nekada je tok programa pravolinijski a nekada postoje ciklusi i grananja pa je tok izvršavanja određenih naredbi složeniji. Baš pošto je slikovit, Scratch nudi lep prikaz ovog koncepta, pri čemu je redanje blokova uvek pravolinijsko, kao kod stvaranja koda jednog programa u bilo kom jeziku, a same naredbe grananja su razdvojene u zasebne blokove, kao i ciklusi koji imaju i vizuelnu oznaku strelice koja asocira na ponavljanje.
Matematičke operacije i funkcije
Programiranje je u uskoj vezi sa matematikom, njenim osnovnim načelima i pravilima. Sve osnovne operacije koje koristimo i u naprednim programskim jezicima, mogu da se nađu i u Scratch okruženju, bilo da je reč o osnovnim aritmetičkom operacijama, ili o zaokruživanju realnih brojeva, biranju slučajnog broja itd.
Koncept promenljivih
Kao što se matematička izračunavanja dešavaju kroz postavljanje i menjanje vrednosti promenljivih neophodnih za dati zadatak, tako i u programiranju postojanje koncepta promenljivih jeste nezaobilazna tema pri učenju bilo kog programskog jezika. Scratch podržava osnovne funkcionalnosti pormenljivih vezanih za čuvanje neke informacije i referenciranje na datu vrednost u bilo kom trenutku u datoj slagalici Scratcha. Takođe, operacije vezane za menjanje vrednosti date promenljive kao i njeno direktno prikazivanje na ekranu gde je vidljivo svako njihovo menjanje, uveliko pospešuju razumevanje rada i korisnosti ovog mehanizma u programiranju.
Logika i odlučivanje
Jedan od najbitnijih koncepata u programiranju jeste odlučivanje pri izboru naredne instrukcije u programu u zavisnosti od tačnosti jednog (ili više) uslova. U osnovi, radi se o tačnosti nekog izraza ili kombinacije istih. Suština ovog koncepta jeste da deca pokušaju da prave disjunktne grupe, skupove instrukcija prilikom realizacije nekog problema. U programiranju ispitivanje te tačnosti može da se realizuje na više načina, a kroz Scratch se uči i ono najrasprostranjenije - upoređivanjem datih vrednosti korištenjem operatora jednakosti i relacionih operatora (<,>, <=,>=). Pored toga, Scratch nudi i osnovni alat za baratanje i razumevanje unarnog logičkog operatora negacije kao i binarnih logičkih operatora i i ili, koji su zapravo suština programiranja i razvrstavanja slučajeva ishoda nekog događaja.
Ciklusi
Naredbe ponavljanja određenih instrukcija ili procesa predstavljaju jako važnu strvar u programiranju i kao takve, neophodno je da se razume kako one funkcionišu. Scratch-ova implementacija ciklusa u mnogome doprinisi boljem razumevanju pojma ponavljanje, kao i samom redosledu instrukcija prilikom tog ponavljanja. Kao i u drugim jezicima, i ovde je moguće dizajnirati beskonačnu petlju, ali i konačnu koje se razlikuju po imenu instrukcije kao i samom načinu korištenja.
Događaji sa ulaznih uređaja
Da bi korisnik imao neki nivo interakcije sa programom koji pravi, neophodno je da postoji mehanizam pomoću kojeg se programu saopšava neka akcija kroz taster na tastaturi ili klik miša. To je klasična interakcija korisnika sa aplikacijom a u programiranju postoji deo koji se time bavi i naziva se programiranje vođeno događajima (Event driven programming). U Scratchu, ovaj mehanizam takođe postoji, jednostavan, sa ograničenjima kada su u pitanju inputi od strane miša, dok je implementacija inputa na nivou tastera na tastaturi kompletnija.
Slanje poruka unutar koda
Princip slanja poruka unutar samog projekta, takođe deo programiranja vođeno događajima (Event driven programming), moguć je i u Scratchu međusobno između objekata na sceni, kao i između same scene i objekata koji su tu. Mehanizam je potpuno isti kao u nekim poznatim programskim jezicima, neophodno je da postoji pošiljalac poruke, definisana jedinstvena poruka i primaoci poruke. Važnost ovakvog mehanizma u Scratchu pospešuje način razmišljanja i potvrđuje deci činjenicu da je moguće napraviti šta god požele.
Operacije nad stringovima
Programiranje reči, njihova spajanja, ispitivanje dužine, ili određenog karaktera u datoj niski, samo su neki od principa koji se koriste pri radu sa stringovima u programiranju. Scratch i ovoga puta nudi spektar skup funkcionalnosti pomoću kojih mogu da se vrše ispitivanja kao i u nekim ozbiljnim programskim jezicima. Ovde je zapravo najbitnije da se deca susretnu sa rečima (stringovima, niskama) kao tipom podatka i da vide neke od mogućih ishoda pri obradi informacija smeštenim u tom tipu podatka.
Kreiranje funkcija
Strukturiranje koda i izdvajanje zajedničkih funkcionalnosti u zasebne funkcije kao jedan od bitnih koncepata u programiranju, moguć je i u Scratchu kroz pravljenje sopstvenih blokova koje mogu da se koriste na više mesta u slagalicama. Pravljenje blokova u scratchu može da se posmatra kao lep uvod u način razmišljanja koji se produbljuje kasnije u tekstualnim programskim jezicima prilikom kodiranja sopstvenih funkcija nekog programa.
Da sumiramo
Ono što možemo da izvučemo kao zaključak jeste da iako Scratch predstavlja blokovsko okruženje u kojem deca uče programiranje kroz zabavu pri kreiranju animacija i igrica, on takođe nudi i osnovne elemente programiranja te kao takav jeste neophodan gradivni element u razvoju logicko-programerskih veština svakog deteta.