Galerija

Scratch, mali programeri, velika dela

Deca su važna, a verovatnoća da ćemo ih vaspitati dobro počinje barem od činjenice da provodimo vreme sa njima. Jedan od tih načina je preko didaktičkih rekvizita. Nije to tako baš teško, dovoljno je samo malo baciti pogled na ogroman okean mogućnosti što nam pruža informatika. A najbolje od svega ako ta igra nije zanimljiva samo vašoj realnoj deci, već i onom detetu koje je u vama samima. Kad se to dvoje dogovori, uspeh je zagarantovan.
Evo jedne zgodne prilike što nam nudi prestizni američki MIT (Massachussets Institute of Technology), tačnije, radi se o jednom njegovom odeljenju zvanim LifeLong Kindergarten – Vrtić za ceo život. On je prepun raznih inicijativa, više ili manje uspešnih. Jedan od njegovih značajnijih poduhvata je projekat pod nazivom Scratch. Radi se o web aplikaciji za olakšano programiranje animacije u dvodimenzionalnom svetu. Preveden je na najveći broj svetskih jezika, tako da i deca bez Engleskog znanja mogu da ga koriste. Radna površina je podeljena na 3 dela, sa leve strane imamo programerske lego kockice, u sredini imamo slobodan prostor za njihovu kombinaciju u programe, a desno imamo sliku sveta koji stvaramo raznim crtežima ili sprajtovima kako se zovu u tehničkom žargonu. To je ujedno možda i jednina i glavna mana celog sistema, radi se o rasterima, a ne o vektorima, tako da njihovo povećavanje ne izgleda tako lepo, no to nije ni bila namera autora. Cilj nije estetika, nego učenje kroz zabavu.
Na sktrečovom web sajtu  nalazi se oko 3 miliona raznih projekata na narjaznoraznije moguće teme. I sve obiluje crtežima dečijeg stila. Međutim, iza tako naizgled, naivnog korisničkog interfejsa, nalazi se raznovrstan i moćan simulacioni sistem. Svaki crtež se može najpre ručno menjati. Pomerati, vrteti, povećavati, smanjivatii, kopirati. Crteži se mogu učitati kao fajlovi urađenim u drugim programima, mada program nudi i osnovne alate za njihovo stvaranje. I tu prestaje ručni deo rada. Nakon toga, svakom crtežu se mogu dodeliti dodatni crteži ili kostimi. Na primer uzmete ptičicu sa raširenim krilima, i onda joj dodelite još oko 5-6 sličnih sa krilima u nekoliko ključnih pozicija. Kada pritisnete poznati taster „play“, program će sam naizmenično crtati sve varijante vaše ptičice ubrzano jednu preko druge i daće vam osećaj animacije. Doduše na jednom mestu, tako da je vaša ptica za trenutak samo jedan kolibri, koji lebdi. Naravno, moguće je i pomerati sličice, rotirati, menjati im pravac i smer, reći im da prate neki drugi crtež ili da ako dotaknu rub vašeg platna da se odbiju kao loptice. Naravno, da biste sve to dobili, morate otići u levi deo ekrana sa lego kockicama, i prebaciti ih jednu po jednu u srednji deo ekrana, gde ćete ih povezati jednu sa drugom. 3 koraka napred, 15 stepeni levo, idi na koordinate 100, 200, vrati se ako udaris u rub. Scratch nema nikakav editor teksta, programiranje je potpuno grafički izvedeno. Svaka od kockica ima svoje značenje, i sistem će poslušno poštovati red koji ste vi postavili. Ali, šta god postavili, to će se izvršiti samo jednom.

Danas je Scratch postala HTML 5 web aplikacija, ovo je snapshot dok je bila nativna.

Danas je Scratch postala HTML 5 web aplikacija, ovo je snapshot dok je bila nativna.

Prava animacija je obično ciklična, dakle ponavlja neke kraće ili duže sekvence mikro-koraka. I to je moguće u Scratchu. Dovoljno je da uzmete kockicu zvanu „forever loop“, ili komandu za neprestano ponavljanje i da grafički unutar nje ubacite sve one korake koje ste do sada nacrtali. Svi ti koraci će biti ponavljani sve dok ne pritisnete taster stop. Program, za razliku od klasičnih „pravih“ programerskih alata ne razlikuje faze pisanja programa i izvršavanja. Scratch vam omogućava da radite i jedno i drugo u isto vreme, svaka promena bilo koje komponente se odmah odražava na ceo sistem. Ali nije ni tu kraj, kakav je to crtani film bez zvuka. Sistem vam omogućava da svakom crtežu dodelite jedan ili više zvukova i da precizno upravljate koji će crtež odsvirati koji zvuk i po kojim pravilima. Možete uvesti jedan od spoljnjih fajlova ili možete preko mikrofona vašeg računara direktno da snimite vaš glas. Zaboravih, i crteže možete uvesti tako što će vaša WebCam škljocnuti ono što vidi ispred sebe.
Na kraju nezabiolazan je i Turlte Graphics pod-sistem, odnosno kreda koju možete dizati spuštati, pomerati, okretati, kačiti na vaše postojeće crteže. Ako ni to nije dosta program ima i mogućnost rešavanja uslovnog izvršavanja. Na primer, ako se crtež1 dodirne za crtežom 2, odsviraj „bum“, ili ako crtež1 bude na plavoj površini, neka nestane. Crteži, koji su u stvari objekti, ako nemaju fizičkog dodira, mogu slati poruke jedni drugima i mogu i reagovati na njih. Na primer vaša ptica kada ugleda crva, može poslati poruku svojim drugaricama iz jata, tako da i one mogu da krenu u pravcu kretanja crva. Da stvari budu još moćnije, sistem na potpuno prirodan način pordžava paralelno izvršavanje svih programčića. Dovoljno je početi na praznom delu sredjnjeg dela ekrana otvoriti novi niz programerskih lego kockica, svaki novi odvojeni niz je novi program koji se odnosi na isti crtež. Na primer ako neko pritisne taster za dole on će pomeriti crtež dok program broj 2 za isti crtež može odsvirati „fijuuuu“ da proprati to pomeranje. Nadam ste da niste izgubili volju, da vam to ne izgleda prekomplikovano. Scratch mogu da koriste deca već od pet godina, ona od sedam mogu već da rade neke animacije, dok ona od deset mogu da rade ozbiljne video igrice. Ona od 15 mogu već na takmičenja da idu.
Ako ste programer, veoma ćete brzo prepoznati sve programerske paradigme sakrivene iza ovih lepo upakovanih crteža, a ako niste, dovoljno je da objasnite deci čemu otprilike služi svaka komanda, a vaša deca, ti pametni anđeli, koji imaju neokoštani um koji se razvija, nadoknadiće vaše neznanje i prevazići vas veoma brzo što je i jedan od ciljeva. Počeće da kombinuju osnovne komande u komplikovane nizove i vi ćete pomalo i sa ljubumorom da se upitate, pa zar može i to da se radi, a meni je izgledalo sve kao grupa kockica bez velike primene. I kroz igru, dok će crtež mace juriti crtež malog miša, indirektno bez muke vaša deca će savladati koncept ciklusa, uslovnih predikata, multi-taskinga, osnove multimedije, aritmetike boja, konstante i promenljive, objekti, grafičke tranzicije, i programiranje event-driven.

Ako želite da odslušate, prilog počinje na 47 min 30 sek

Ja pišem vama, a vi meni recite šta mislite. Zanima me šta mislite o…

Advertisements

One comment on “Scratch, mali programeri, velika dela

  1. Povratni ping: Kakav strašan par: Wolfram Mathematica i Raspberry Pi | Markus Maki

Zatvoreno za komentare.