Preskoči na sadržaj
STEM Little Explorers
EN
Učenje programiranja pomoću Scratcha

Učenje programiranja pomoću Scratcha

Iva Leder
Iva Leder
16 min čitanja

Izvorno objavljeno 20. ožujka 2020.

Besplatna ljetna e-knjiga

Ljeto znatiželje

Preuzmite besplatnoBez registracije
  • Dob:8-16
  • Trajanje:45 min po dijelu
  • Zahtjevnost:Za početnike
  • Nered:Nimalo
  • Nadzor:Ne

Za koju je dob Scratch?

Vrijedi riješiti prije početka, jer o tome ovisi hoće li ovo proći dobro ili završiti u suzama.

Scratch je namijenjen za dob od otprilike 8 do 16 godina, a najbolje sjeda oko 8-12. Djeca moraju pročitati blokove i držati plan u glavi, i upravo to postavlja donju granicu - a ne spretnost s mišem.

Ako vaše dijete ima 5 do 7 godina, umjesto toga koristite ScratchJr. To je besplatna aplikacija za iPad i Android istih autora, napravljena baš za tu dob: blokovi su sličice umjesto riječi, pa čitanje nije potrebno, a i generalno je lakše za shvatiti i koristiti. Djeca koja krenu ondje bez problema prelaze na puni Scratch oko sedme ili osme godine.

Dvije napomene za odgojitelje i roditelje koje brine tipkanje: djeca ne moraju tipkati kod - Scratch je "povuci i ispusti (drag and drop)", a tipka se samo kod imenovanja stvari i pisanja onoga što lik govori. I ne morate ni sami znati programirati da biste sudjelovali. Blokovi su dobro objašnjeni, a i u slučaju da zapnete, zajedniči rad na problemima je odlična methoda učenja, ali i prilika za modeliranje kako se nositi s frustracijom i izazovima.

Prvi dio: Gdje početi sa Scratch-em?

Sve što trebate je uređaj s internetskim preglednikom, internet veza i dobra volja. Stolno računalo ili laptop najudobniji su za rad, ali Scratch radi i u pregledniku na tabletu, a postoji i besplatna offline aplikacija ako vam je internet nepouzdan. 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.

Registrirajte se na scratch.mit.edu kako biste spremali i dijelili projekte.

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.

Učite kroz remiksanje

Zapeli ste pred praznom stranicom? Otvorite bilo koji podijeljeni projekt, kliknite See inside (Pogledaj iznutra), pa Remix. Dobit ćete program koji radi, koji možete istraživati, mijenjati blok po blok i gledati što se događa - čitanje i prepravljanje tuđeg koda jedan je od najbržih načina učenja, a što god napravili, ne možete pokvariti original.

Napomena o slikama

Slike i videi u nastavku snimljeni su u starijoj verziji Scratcha, pa nekoliko stvari izgleda drugačije nego na vašem ekranu: kartica koju danas zovemo Kod tada se zvala "Skripte", a Moji blokovi zvali su se "Više blokova". Gumbi stoje na malo drugačijim mjestima, ali svaki blok radi potpuno isto, pa možete bez problema pratiti upute. U ovom članku koristimo današnje nazive.

Oglas

Dijelovi editora

Editor u Scratchu se sastoji od tri dijela: 1) Ekran za izvršavanje koda 2) Kod 3) Područje za programiranje.

Scratch editor: ekran za izvršavanje, kod i 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.

  1. Pozornica - tu birate pozadinu vašeg programa, u bazi već postoji veliki broj pozadina, a možete ubaciti i vlastitu sliku.
  2. 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) Kod

Tu se nalaze svi blokovi ili naredbe koje nam služe za programiranje. Baziraju se na drag and drop principu gdje željeni blok prevučemo na desni dio ekrana, u područje za programiranje, i naredba kreće s izvršavanjem.

Ovaj ekran je sastavljen od tri dijela: a) Kod b) Kostimi ili pozadine c) Zvukovi.

  1. Kod - 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 blokova, 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 blokova i polako eksperimentirate s ostalim kategorijama.
  2. 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.
  3. 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 blokove. Isto tako, blokovi su poput puzzle-a te ih međusobno spajate na ovom dijelu ekrana. Kao niti puzzle, ne možemo spojiti ni sve blokove 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 blokovima 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:

  1. Početno stanje - vrijednost, ili bolje rečeno varijabla, koju zadajemo kao početnu vrijednost.
  2. Uvjet - predstavlja uvjet o kojem ovisi koliko dugo će se petlja izvršavati.
  3. 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).

Jednostavan primjer petlje gdje će ona stati kada brojač dođe do broja 6.

Što se dogodi ako petlja nikada ne promijeni svoju varijablu prema uvjetu za zaustavljanje?

Pogodi, a zatim dodirni odgovor i provjeri!

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čunalima nije važno koliko je neki zadatak dosadan. 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 Moji blokovi te zatim Napravi blok i spremni smo za definiranje bloka (funkcije).

Definiranje vlastitog bloka u Scratchu: Moji blokovi, zatim Napravi blok.

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!

Oglas

Š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

Najvažnije ukratko

  • Scratch je besplatan programski jezik s blokovima s MIT-a, za otprilike dob 8-16; djeca od 5 do 7 godina trebaju krenuti sa ScratchJr-om.
  • Kod se ne tipka - blokovi nalik puzzlama povlače se i ispuštaju, pa mogu pratiti i početnici (i roditelji koji ne znaju programirati).
  • Editor ima tri dijela: pozornicu (vizualni prikaz), blokove naredbi i područje za programiranje u kojem slažete kod.
  • Upoznat ćete temeljne gradivne blokove svakog programiranja: varijable (imenovani spremnici vrijednosti), petlje (ponavljanje radnji) i funkcije (blokovi koda za višekratnu upotrebu).
  • Osim programiranja, razvija algoritamsko razmišljanje, kreativnost i strpljenje - a projekte možete spremati, remiksati i dijeliti.

Često postavljena pitanja

Za koju je dob Scratch?

Scratch je namijenjen dobi od otprilike 8 do 16 godina jer dijete mora čitati blokove i držati plan u glavi. Za dob od 5 do 7 godina koristite ScratchJr, koji koristi sličice umjesto riječi pa čitanje nije potrebno.

Je li Scratch besplatan?

Da, Scratch je potpuno besplatan. Možete ga koristiti u bilo kojem internetskom pregledniku na scratch.mit.edu, a postoji i besplatna offline aplikacija ako vam je internet nepouzdan. ScratchJr, za mlađu djecu, besplatna je aplikacija za iPad i Android.

Morate li znati programirati da biste podučavali Scratch?

Ne. Blokovi su dobro objašnjeni, a ako i zapnete, možete modelirati zrele načine nošenja s frustracijom i rješavanja problema. Nije vam potrebno nikakvo programersko predznanje da biste sjeli uz dijete i istraživali.

Koja je razlika između Scratcha i ScratchJr-a?

Scratch koristi blokove s riječima i prikladan je za dob 8-16. ScratchJr, istih autora, građen je za dob 5-7: blokovi su sličice umjesto riječi pa čitanje nije potrebno. Djeca obično prelaze sa ScratchJr-a na puni Scratch oko sedme ili osme godine.

Tipkaju li djeca kod u Scratchu?

Ne. Scratch radi na "povuci i ispusti" principu - blokove nalik puzzlama spajate zajedno. Tipka se samo kod imenovanja stvari i pisanja onoga što lik govori, pa slabije tipkanje nikada nije prepreka.

Što se može napraviti u Scratchu?

Animacije, igre, interaktivne priče, kvizove, glazbu i još mnogo toga. Budući da projekte možete spremati, remiksati i dijeliti, djeca često počnu prepravljanjem postojećih igara i naprave vlastite originalne kreacije.

Je li Scratch dobar za učenje pravog programiranja?

Da. Scratch uči koncepte na kojima počiva svaki programski jezik - varijable, petlje, funkcije, događaje i uvjete - te algoritamsko razmišljanje iza njih. Ta osnova izravno se prenosi na tekstualne jezike poput Pythona kasnije.

Ako ste zainteresirani za još STEM ideja iz područja tehnologije, a da ne ovisite o kodu i ekranu, imamo par ideja za vas. Pogledajte kako napraviti kotač za šifriranje i učite o kriptografiji. A što kažete na učenje algoritama uz izgradnju Hanoi tornja? Za obje aktivnosti, potreban vam je samo karton, olovka škare i možete početi uživati u unapređenju vještina iz tehnologije. A ako imate pametni telefon, a potreban vam je projektor, pogledajte kako napraviti vlastiti projektor od kartona.

Podijeli ovaj članak:
Iva Leder
Iva Leder

magistra psihologije

Osnivačica STEM Little Explorers-a i zaljubljenica u cjeloživotno učenje, vjeruje da obrazovanje ima moć mijenjati živote. Neprestano istražuje kreativnije i učinkovitije načine poučavanja te u svakom djetetu vidi neograničen potencijal. Njezina je misija jednostavna: pomoći svakom djetetu da ostvari svoj puni potencijal pronalazeći pristup koji najbolje odgovara upravo njemu.

Više članaka autora →

Sviđa vam se ovaj članak?

Pretplatite se i primajte nove objave ravno u inbox.

Bez spama, odjava u svakom trenutku.

Srodni članci