Podrška za GUI u Pythonu

zoran_hercigonja

Zoran Hercigonja

Sažetak

Učenje programiranja je samo po sebi izuzetno zahtjevno jer zahtijeva određenu razinu apstraktnog razmišljanja, zahtijeva razne vještine. Savladavanje koncepta objektno orijentiranog programiranja je još teže za razumijevanje i usvajanje. Budući da su grafička sučelja vrlo bliska i razumljiva javnosti, predlaže se da se i učenje složenijih koncepata u Python programiranju izvede kroz programiranje GUI. Vizualizacija pojedinih programskih rješenja kroz koncept objektno orijentiranog programiranja, trebala bi omogućiti kvalitetnije usvajanje znanja. Iz istog se razloga u radu nudi rješenje za usvajanje koncepta objektno orijentiranog programiranja kroz podršku za GUI programiranje u Pythonu. Grafičko korisničko sučelje bi trebalo ubrazati učenje programiranja i omogućiti savladavanje osnovnih koncepata programiranja.

Ključne riječi: GUI, Python, Tkinter, programiranje, vizualizacija

Uvod

U sklopu projekta razvoja novog kurikuluma u području računalstva i računalnog inženjerstva nastavnici su prošli osposobljavanje u području objektno-orijentiranog programiranja [1]. To znači da će se u nastavu informatike uskoro uvesti koncept objektno-orijentiranog programiranja. Pod objektno orijentiranim programiranjem podrazumijeva se metoda programiranja kojom se definiranje neke klase vrši korištenjem svojstava postojećih klasa [2]. To u nastavku znači da će se korištenjem programiranih svojstava jednog programskog konstrukta kao što je klasa, ta ista svojstva moći uključiti u druge dijelove koda. Takav koncept programiranja je vrlo zahtjevan i zahtijeva puno učenja i stjecanja vještina. Velika pomoć u učenju objektno-orijentiranog programiranja jest vizualizacija rezultata programiranja. Budući da gotovo sve aplikacije imaju svoja sučelja izvedena kroz grafičko korisničko sučelje, ideja je da se koncept objektno-orijentiranog programiranja približi što je više moguće osobama koje po prvi puta programiraju na taj način. Isto tako učenici su naviknuti služiti se različitim korisničkim sučeljima pa stoga i lakše razumiju funkcioniranje takvih sučelja. Objektno orijenitranim programiranjem grafičkog korisničkog sučelja, bilo bi lakše usvojiti objektno orijentirane koncepte nego uobičajenim sučeljima gdje se ispisuju rezultati u linijskom prikazu. U vizualnom smislu, učenicima je programski primjer jasniji kada ga se može grafički predočiti. Primjerice Visual Basic i C# kao jezici za objektno orijentirano programiranje imaju vrlo kvalitetnu podršku za GUI i prije svega od velike su pomoći u usvajanju konceptata objektno orijentiranog programiranja. Zbog potrebe da se koncept objektno orijentiranog programiranja učini shvatljivijim i jednostavnijim programiranjem u programskom jeziku Python, u radu se predlaže podrška za GUI u Python programskom jeziku.

Tkinter modul – podrška za GUI u Pythonu

Tkinter modul ili “Tk sučelje” je standardno Python GUI sučelje. Razvijen je kao GUI produženje roka za Tcl skriptni jezik kreiran od strane Johna Ousterhoutea. Prvo izdanje Tkintera je bilo davne 1991. godine. Tkinter se pokazao kao izuzetno uspješan u 1990-ima, jer je omogućio lakše savladavanje Python programiranja za razliku od drugih alata [1]. GUI (eng. graphical user interface) grafičko korisničko sučelje je način interakcije čovjeka s računalom kroz manipulaciju grafičkim elementima i dodacima uz pomoć tekstualnih poruka i obavijesti [2].

GUI programi prikazuju vizualne elemente poput [2]:

  • ikona (sličice na desktopu, tj. pozadini)
  • prozora
  • tipke s tekstom i/ili slikama
  • okviri za unos teksta
  • kvadratići za odabir i tipa (moguće je odabrati više kvadratića – eng. check box)
  • kružići za odabir ili tipa (moguće je odabrati samo jedan kružić – eng. radio button)

Tkinter modul je dostupan za većinu Unix platformi, ali i za Windows i Macintosh platforme. Sastoji se od niza modula. Tkinter sučelje je binarna ekstenzija modula pod nazivom _tkinter. Ovaj modul sadrži sučelje niske razine koje se ne može uspoređivati s vodećim sučeljima na mobilnim i drugim aplikacijama. [3]

imageSlika 1. Python Tkinter sučelje

Za korištenje Tkintera, sve što je potrebno je uvesti Tkinter modul pozivajući ga sa sljedećom naredbom:

image

Slika 2. Naredba za poziv Tkinter modula

Tkinter modul kao svojevrsna nadogradnja Python programskog jezika, donosi mogućnosti kreiranja vizualnih elemenata poput ikona i različitih imagedijaloških okvira. Korisnik može pomoću ispisanog programskog koda u editoru za pisanje istog, kreirati dijaloški okvir s ikonama, tipkama s određenom funkcionalnosti.

Slika 3. Primjer kreiranog prozora s funkcionalnim tipkama u Python Tkinter modulu

Python Tkinter modul, sastoji se od tri skupine programa koji omogućavaju rad s dijaloškim okvirima i prozorima, ikonama i tipkama s određenom funkcionalnosti. Skupine programa su sljedeće [3]:

  • notebook
  • tk_optionMenu
  • panedwindow
  • progressbar
  • radiobutton
  • scale
  • scrollbar
  • separator
  • sizegrip
  • spinbox
  • text
  • treeview

Skupina programa za kreiranje prozora i određivanje funkcionalnosti tipke i ikona:

  • button
  • canvas
  • checkbutton
  • combobox
  • entry
  • frame
  • label
  • labelframe
  • listbox
  • menu
  • menubutton
  • message

Programi za rad s dijaloškim okvirima:

  • tk_chooseColor – pojava dijaloškog okvira za odabir boje
  • tk_chooseDirectory – pojava dijaloškog okvira za odabir direktorija
  • tk_dialog – stvaranje dijaloga i čekanje odgovora
  • tk_getOpenFile – dijaloški okvir za učitavanje datoteke za otvaranje
  • tk_getSaveFile – dijaloški okvir za učitavanje datoteke za spremanje na Python editoru
  • tk_messageBox – iskakanje prozora poruke
  • tk_popup – kreiranje skočnog izbornika.

Programi za geometrijsko oblikovanjeimage :

  • place
  • grid
  • pack

Slika 4. Primjer programa u Tkinter modulu za ispis pozdravne poruke „Hello Tkinter!“ [4]

Programiranje u Tkinter modulu, nije ništa drugačije od uobičajenog programiranja u Pythonu. Uz korištenje standardnih funkcija uvjetovanja, grananja i petlji, potrebno je uključiti neki program iz navedene skupine programa za dijaloške okvire, prozore, tipke i ikone. Primjerice u programu na slici 4 je napravljen uvoz Tkinter modula kroz naredbu „From Tkinter import *“. Na taj način su se u Python programski editor uključile sve tri skupine navedenih programa. Drugi korak nakon uključivanja modula je inicijalizacija varijable odnosno u ovom slučaju prozora u kojem će se ispisati pozdravna poruka„Hello Tkinter!“. U odsječku programa na slici 4 to je izgledalo kao „root = Tk()“ pri čemu je „Tk“ skraćenica za Tkinter. Time je pripremljeno područje za kreiranje prozora s porukom. Sljedeći dio koda se odnosi na kreiranje oznake (Label). Oznaka „Label“ smještena je u varijablu naziva „w“. Dakle linija koda izgleda ovako: „w=Label(root, text= „Hello Tkinter!““. Prvi parametar oznake „Label“ je naravno naziv prozora (root u ovom slučaju). Drugi parametar je tekst koji će biti ispisan u prozoru (Hello Tkinter!). Za ispisivanje prozora s porukom, potrebno je odrediti metodu s kojom će se okvir prozora prilagoditi tekstu. Na primjeru koda na slici 4 rabi se naredba „w.pack()“. Tom imagenaredbom se odredilo da okvir prozora bude prilagođen ispisu teksta.

Slika 5. Primjer prozora s ispisom poruke „Hello Tkinter!“

Na kraju je potrebno još postaviti naredbu koja će omogućiti prikazivanje prozora s ispisom poruke tako dugo dok korisnik ne pritisne tipku enter. Za to je korištena naredba „root.mainloop()“. Pokretanjem napisanog programa dobio bi se prozor s porukom kao na slici 5.

Priprema testiranja i rezultati

Učenici su na satu izborne nastave informatike koristili funkcionalnosti Tkinter modula. Za rad je utrošeno ukupno četiri (4) sata od kojih je jedan dva sata utrošeno na upoznavanje Tkinter modula. Na izradi testnog zadatka, sudjelovalo je četiri para učenika koji su se dobrovoljno javili za izradu zadatka (radilo se o učenicima s osrednjim znanjem objektno-orijentiranog programiranja). Učenici su prisustvovali izradi istog zadatka u parovima. Radilo se o mješovitoj grupi sastavljenoj od 1., 2., i 3. Razreda. U svrhu testiranja i utvrđivanja kvalitete Tkinter modula, određeni su sljedeći kriteriji. Trebalo je koristiti sve tri grupe programa Tkinter modula (geometrijsko raspoređivanje, rad s prozorima i tipkama.). Bilo je potrebno kreirati prozor čiji će okvir biti prilagodljiv zadanom ispisu. Prozor je trebao sadržavati tekst u točno pet redaka, kojima se prilagođava okvir prozora. Paralelno s tekstom, trebalo je smjestiti sliku u .GIF formatu. Uz tekst, trebalo je uključiti SlideBar elemente koji će omogućiti kretanje po tekstu gore-dolje. I na kraju u desni kut prozora, trebalo je uključiti tipku za proizvoljno učitavanje dokumenta čije će se ime zapamtiti u Python programskom editoru.

tablicaTablica 1. Kriteriji za testiranje

Za kreiranje prozora prema zadanim kriterijima, bilo je potrebno osmisliti dva odvojena programska koda koji su se kasnije spojili u jedno rješenje. Prvo je kreiran prozor i ubačen tekst i slika. Zatim je u isti kod dodana funkcionalnost pomicanja teksta gore-dolje (Slidebar). Za početak, uključen je Tkinter modul From Tkinter import*. Nakon toga, inicijalizirana je varijabla za prozor pod nazivom „root“. Nakon kreiranja prozora za ispis teksta, bilo je potrebno oblikovati tekst. Za tekst je kreirana varijabla „text1“ za naslov i „text2“ za ostatak tekstualnog sadržaja. Uz obje varijable, uključeni su programski dodaci iz modula Tkinkter.

imageSlika 6. Kreiranje prozora s ispisom teksta i slike

Tekst je pomaknut skroz uz desni rub prozora. Prvi redak teksta je naslov otisnut crnim slovima veličine 12px. Ostatak teksta je fonta 10px. U tekstu je određen font, veličina fonta i opcija za podebljanje i ukošavanje (text2.tag_configure(‘bold_italics’, font=(‘Arial’, 12, ‘boimageld’, ‘italic’))).Isto tako, dodana je linija koda za učitavanje slike: photo=PhotoImage(file=’200_s.gif). Nakon dodavanja slike, bilo je potrebno dodati i SlideBar za pomicanje teksta gore-dolje. On je izveden naredbom scroll = Scrollbar(root, command=text2.yview).

Slika 7. Kreiran prozor s ispisom teksta i slike

Slika 7 prikazuje upravo kreiran prozor prema navedenim kriterijima iz tablice 1. Kreiran prozor sadržava sliku .GIF formata, tekst u pet redaka sa SlideBaro-om. U drugom dijelu koda, bilo je potrebno prilagoditi prozor s mogućnošću učitavanja dokumenta i zapisivanja na Python editor preko tipke.

imageSlika 8. Kreiranje tipke sa funkcionalnosti učitavanja dokumenta i njegovog zapisivanja na Python editor

U drugom dijelu koda, bilo je potrebno uključiti i programsku naredbu „form tkFileDialog import askopenfilename“ koja se nalazila u grupi programa za rad s dijaloškim okvirima. Nakon toga, pozivana je metoda „callback()“ koja je omogućila otvaranje prozora za učitavanje dokumenata. Uz to iz grupe programa za rad s tipkama, uključena je i tipka pod nazivom „File open“ s funkcijom otvaranja prozora za učitavanje datoteke. Korištena je naredba „Button(text=’File Open’“, comand=callback).pack(fill=X)“. Taj dio koda je uključen u ostatak koda za kreiranje prozora i ispisivanje timageeksta i slike. Spajanjem oba dijela koda, na slici 9, vidljivo je dodavanje tipke za učitavanje dokumenta.

Slika 9: Dodavanje tipke za učitavanje dokumenata

Konačno programsko rješenje s uključenim Tkinter modulom je omogućilo uz ispisivanje teksta i slike i učitavanje dokumenata i upisivanje njegovog imena u Python editor kao što je prikazano na slici 10.

imageSlika 10. Učitavanje naziva dokumenta u Python editor

Učenici su u radu bili vrlo uspješni. Testni zadatak je uspješno ispunjen. Svi kriteriji zadani u tablici 1 su ispunjeni. Prilikom kreiranja programskog rješenja, bilo je potrebno više puta uključivati dodatne programe iz grupe programa Tkinter modula što je predstavljalo omanji problem učenicima te je stoga bilo potrebno napraviti i nekoliko intervencija od strane nastavnika. Osim uključivanja, bilo je potrebno i inicijalizirati pokoju varijablu te pozvati metodu. Iako se radilo o konceptu objektno-orijenitranog programiranja; programiranje samo po sebi nije bilo izuzetno zahtjevno. Velika pomoć je učenicima bila upravo vizualno sučelje na kojem se mogao provjeriti svaki pojedini korak. Programiranje putem grafičkog sučelja omogućilo je povezivanje dobivenog grafičkog rezultata sa svakim korakom pisanja programskog koda. To je velika prednost jer korisnik može svaku promjenu u kodu vidjeti kao vizualnu promjenu na grafičko sučelju.

Zaključak

Ovim radom, demonstrirane su mogućnosti objektno orijentiranog programiranja pomoću podrške Tkinter modula za GUI u Pythonu. Prikazani su primjeri korištenja tri skupine programa za oblikovanje prozora, tipki i opadajućih listi te geometrijskog oblikovanja. Prethodno demonstrirani samostalni primjeri GUI sučelja, objedinjeni su pod testnim zadatkom u jedno zajedničko grafičko rješnje. Pritom su korištene metode u programiranju i naredbe zaobradu teksta, slike i geometrijskog rasporeda teksta i slike unutar prozora. Testirana je i mogućnost dodavanja SlideBar-a. Programiranjem svih tih instanci, dobilo se jedno kvalitetno rješenje u obliku prozora s ispisom teksta i slike i SlideBar-om s kojim se taj isti sadržaj prozora može pomicati. Python kao sintaktički vrlo jednostavan jezik za programiranje, dokazao je i svoju jednostavnost kroz Tkinter modul podrške za GUI. Velika prednost korištenja ovog modula je prije svega fluidnost pisanja programskog koda što su potvrdili i sami učenici svojim radom. Učenje koncepta objektno orijentiranog programiranja u Pythonu preko GUI sučelja, trebalo bi učenicima preko vizualizacije rezultata taj koncept učiniti razumljiviji i jednostavnijim za shvaćanje i daljnjim kreativnim radom.

Literatura

  1. Stranica Tehničke škola Ruđera Boškovića [pristupano 04.01.2017.]
  2. FESB skripta objektno-roijentiranog programiranja [pristupano 07.01.2017.]
  3. Kratka povijest Python Tkintera [pristupano 04.01.2017.]
  4. Wikipedija-grafičko korisničko sučelje [pristupano 07.01.2017.]
  5. Službena stranica Python Tkintera [pristupano 07.01.2017.]
  6. Python Tkinter primjeri [pristupano 07.06.2016.]

Učenje programiranja grafičkim programiranjem igara

zoran_hercigonja

Zoran Hercigonja

Sažetak

Živimo u vremenu u kojem su djeca izložena neprestanoj interakciji s modernih tehnologija, koje omogućavaju udaljenu komunikaciju, pretraživanje raznih sadržaja i igranje igara. Sam koncept tekstualnog programiranja takvoj generaciji koja je zbog učestale izloženosti tehnologijama, razvila vrlo osebujne vizualne sposobnosti,postaje demotivirajuć i odbojan. Učenici bi trebali naučiti logički i apstraktno razmišljati to jest naučiti stvarati apstraktne modele rješenja, a tek onda te modele realizirati u programski kod. Povećati motivaciju znači nastavni sadržaj prilagoditi očekivanjima učenika. Ukoliko učenici imaju vrlo razvijene vizualne sposobnosti, potrebno je koristiti rješenja i metode koje zdovoljavaju to područje. Uključiti grafičko programiranje prije tekstualnog programiranja, znači naučiti ih razmišljati. Programiranje treba promatrati kao alat pomoću kojeg se razvija apstraktno mišljenje. Upravo to rješenej je priakzano u ovom radu.

Uvod

Oko 1970-ih godina programiranje se dosta populariziralo [1]. Na programiranje se tada gledalo kao na puko mehaničko nizanje linija koda u nekom programskom editoru. No danas programiranje podrazumijeva rješavanje problema, otklanjanje grešaka, razvijanje logičkog razmišljanja i računalnog razmišljanja, a to podrazumijeva razvoj strategija za rješavanje problema koji se mogu odnositi i na neprogramerska područja [1]. Prema tome, može se reći da je programiranje jedan specifičan način razmišljanja koji parira matematičkom razmišljanju i rješavanju problema. Upravo zbog toga se može reći da programiranje mijenja način razmišljanja [2]. Programeri iz 1970-ih, bile su osobe koje imaju sposobnosti linearnog razmišljanja i izvršavanja rutina [3]. Eksponencijalnim razvojem tehnologije, koncept programiranja se promijenio. Od današnjih se programera traži kreativnost. Dakle današnje je doba krcato popularnim tehnologijama koje osiguravaju i postojanje računalnih igara različitih kategorija. Stoga učenje programiranja na standardni način, „suhoparnim“ pisanjem linija koda, postaje odbojno u nastavi. Većina djece već u osnovnim školama ima negativno mišljenje o računalnoj znanosti [3]. Isto tako treba uvažiti da su djeca 21. stoljeća cijeli život okružena mobitelima kao i njihovim naprednim mogućnostima te drugim uređajima koji preferiraju učenje kroz igru u odnosu na „ozbiljan“ rad [3]. Dakle djeca rođena u digitalnom vremenu imaju razvijene izvanredne vizualne sposobnosti što je zapravo karakteristika učenja temeljenog na računalnim igrama.

Igre su vrlo prilagodljivi medij koji se može prilagoditi svakoj tehnologiji od neolitika do visoke tehnologije. Postoji velik broj vrsta igara: ratne igre, slagalice, logičke, strateške,društvene i druge [4]. Samo učenje programiranja ne podrazumijeva učenje i usvajanje novih pojmova, već uvježbavanje vještine primjene naučenog na rješavanje konkretnog problema u problemskoj situaciji. To ukazuje na potrebu za stvaranje stalne interakcije. Djeca rođena u digitalno doba, očekuju stalnu interakciju u radu s tehnologijama. Tako da standardno programiranje u obliku ispisivanja programskog koda i testiranja rješenja na primitivnom programskom editoru poput Logo, Python, Basic ili C++ ispisa na editoru, postaje monotono i demotivirajuće. Učenicima zbog smanjene motivacije za programiranje, opada i uspješnost učenja samog programiranja. U nastavku to znači da se treba okrenuti rješenjima koja bi povećala motivaciju učenika i pobudila interes za učenje programiranja. Poznato je da porastom motivacije, raste i uspješnost savladavanja nastavnog gradiva. Isto je i s programiranjem. Potrebno je prilagoditi razinu očekivanja učenika nastavnim gradivima. Učenici bi u programiranju trebali imati mogućnost stalne interakcije poput one u igrama. To znači da mogu odmah na licu mjesta dobiti vizualni pregled nad rezultatima svoga rada. To bi ih motiviralo i zainteresiralo za daljnje produbljivnje interesa za učenjem programiranja. Dakle kod učenike važnije naučiti logički i računalno razmišljati to jest naučiti stvarati apstraktne modele rješenja, a tek onda te modele pretočiti u linije koda. Do sada na području rješavanja ovog delikatnog problema, zabilježena je intervencija 2009. godine. U programu za programiranje robota od lego kocaka, stvoren je algoritam kretanja robota ne upisivanjem naredbi nego odabirom programskih naredbi koje su izvedene u obliku grafičkih ikona. Klikom na ikonu, odabere se određena programska naredba kojom se robota potakne na aktivnost. Dakle programom Lego Mindstorms NXT, isprogramirano je da se robot kreće ravno 2 sekunde, zatim se zaustavi i nastavi se kretati još 2 sekunde [5]. Iako je time interes učenika za programiranjem bio povećan, ovakvo rješenje samo po sebi je dosta skupo. Najskuplji dio je elektronička oprema za realizaciju takvog rješenja (robot od lego kocaka i licencirana aplikacija). Ovim radom i israživanjem predložena su dva rješenja za programiranje s kojima programiranje postaje lakše i puno zanimljivije od „suhoparnog“ i monotonog ispisivanja programskog koda. Takvim rješenjima bi se trebalo zagarantirati povećan interes učenika za programiranjem, olakšano učenje pojedinog programskog konstrukta i stvoriti podlogu za logički i računalni način razmišljanja.

Aplikacije za programiranje igara

Aplikacije za programiranje igara namijenjene su stvaranju raznih scenarija računalne igre u dvodimenzionalnoj ili trodimenzionalnoj grafici. Postupak programiranja, ne sastoji se od tekstualnog upisivanja linija koda u programski editor, već grafičkim načinom pisanja programa. Programira se tehnikom pritisni–povuci (drag and drop), odnosno slaganjem grafičkih ikona. Grafički način pisanja programa isključuje sintaktičke i leksičke pogreške koje se javljaju pri tekstualnom unosu što olakšava smišljanje rješenja i izradu programa. Aplikacije za programiranje igara, sadržavaju identične programske konstrukte poput većine programskih jezika. Svaki programski konstrukt poput: uvjetovanja, grananja, petlja, funkcija, izveden je u obliku grafičke ikone s istom svrhom i funkcijom kao i u standardnom programiranju u jezicima Python, Logo, C++ ili Basic.

GameMaker-Studio 1.4

GameMaker-Studio 1.4 je komercijalna aplikacija za razvoj dvodimenzionalnih i trodimenzionalnih računalnih igara. Podržana je kao desktop verzija za Windows i Mac OS operacijske sustave te za sustav Android. Dostupna je kao besplatno download rješenje na ovoj stranici  za probno korištenje u trajanju od trideset (30) dana. U probnoj inačici, korisniku ove aplikacije, dostupni su neograničeni resursi za kreiranje igara poput raznovrsnih gotovih oblika i pozadina. Osim probne verzije, moguće je kupiti licenciranu verziju Multiplatform development za 149,99$ dolara. Tom verzijom se kupuju i prava na dodatne nadogradnje u obliku dodataka ili plug-ins. Drugu licenciranu verziju Complete Studio package za profesionalni rad, moguće je nabaviti za 799.99$ dolara[6]. U tu se verziju se ubraja mogućnost distribucije igara, te korištenje dodatnih resursa za korištenje na mobilnim aplikacijama poput aplikacije Android.

imageSlika 1. GameMaker-Studio 1.4. glavno sučelje

U GameMakeru-Studio 1.4. postoje sve programske strukture koje se uobičajeno koriste u programiranju: uvjetna naredba, while, repeat, do i for petlje, funkcije i nizovi. Programiranje grafičkim ikonama, sastoji se od kreiranja prvotnih objekata koji će poslužiti imagekao glavni likovi u igrici. Takve objekte nazivamo Sprites.  To su grafičke ikone ili slike koje predstavljaju objekte. Možemo ih sami nacrtati ili ih preuzeti iz neke baze sličica. Uz njih, potrebno je kreirati i sobu Rooms to jest predložak u kojeme će se odvijati radnja. Kao i kod Sprites objekata i ovdje je moguće izraditi valstiti preldožak ili koristiti neki iz baze sličica.

Slika 2. Izbornik za kreiranje osnovnih objekata

imageSvi objekti, podvrgnuti su opdređenim gibanjima koje nazivamo akcijama ili Actions. Akcije se mogu odvijati nad događajima podijeljene u nekoliko grupa. Postoje akcije gibanja i/ili skakanja Move, akcije za rad s objektima Objects, akcije za mjerenje vremena Timing, akcije za rad s uvjetima i upitima Quesions, akcije za različite načine bodovanja Score, akcije crtanja Drawing i druge.

Slika 3. Izbornik s kcijma za objekte

imageNakon prethodno uređenih koraka program je moguće testirati naredbom pokreni ili Run. Igra će se pokrenuti otvaranjem sobe Rooms u kojoj će se nalaziti svi odabrani objekti s dodijeljenim funkcijama.

Slika 4. Dodavanje aktivnosti objektima

Construct 2

Construct 2 je vrlo jednostavna i ne zahtjevna komercijalna aplikacija za kreiranje i dizajniranje dvodimenzionalnih igara. Ne zahtijeva klasično kodiranje, nego kodiranj putem odabira grafičkih ikona [7]. Ikone se razvrstavaju tehnikom pritisni–povuci (drag and drop). Dostupan je kao besplatna download verzija sa stranice u probnom roku korištenja od trideset dana (30). Dostupan je u više komercijalnih inačica. Ukoliko se koristi za osobnu upotrebu, cijena iznosi 129.99$ dolara. Za poslovnu upotrebu, cijena iznosi image429.99$ dolara. Naravno u cijenu su ubrojene i nadogradnje te mogućnost za distribuciju igara[8]. Kompatibilan je za rad u više operacijskih sustava: Windows, Mac OS.

Slika 5. Construct 2 glavno sučelje

Sučelje Construct 2 aplikacije, je vrlo intuitivno i jednostavno za korištenje. Sastoji se od nekoliko dijelova. S lijeve strane, nalazi se Properties sa svim podacim o pojedinom objektu ili pozadini.Podaci su vezani uz veličinu, posebne efekte, animacije i slično. Odmah do njega, nalazi se tab za dizajniranje objekata i pozadine. Objekti se mogu vlastoručno nacrtati i dizajnirati, ali se mogu preuzeti u obliku slike. Isto vrijedi za imagepozadinu. Do taba za kreiranje osnovnih objekta i pozadine, nalazi se takozvani Eveent Sheet koji služi kao editor za programiranje igre. S krajnje desne strane, nalaze se slojevi za rad. Na svaki sloj, moguće je uključiti pojedinačne objekte ili stvoriti novu pozadinu.

imageSlika 6. Dodavanje osnovnih animacija

Postupak programiranja započinje odabirom ključnih objekata, dizajnom isith te dodjeljivanjem pojedinačnih akcija. Isto vrijedi i za pozadinu.Svaki element igre, moguće je smjestiti na vlastiti sloj čime se olakšava rad.

Slika 7. Određivanje odvijanja akcija

Nakon dizajniranja i animiranja objekata, potrebno je u Eveent Sheet programski odrediti redoslijed odvijanja akcija. Kada je to određeno, pozivanjem naredbe Run Layouti koaj se nalazi an samom vrhu sučelja aplikacije, pokreće se kreirana igra.

Provedeno testiranje i rezultati

Metode i materijali

Istraživanje je provedeno na satu informatike nad nekolicinom učenika Druge gimnazije Varaždin. Na izbornom satu informatike, odabrane su dvije grupe učenika trećih razreda. Grupe su se sastojale od učenika s osrednjim znanjem i vještinama programiranja. Svaka grupa učenika je radila u jednoj aplikaciji. Predviđeno vrijeme provođenja istraživanja je bilo dvanaest (12) sati. Od dvanaest sati, dva sata su utrošena na upoznavanje i učenje osnovnih funkcionalnost rada s aplikacijama, a drugih deset sati za izrađivanje jednostavne dvodimenzionalne igre. Odluka o izradi dvodimenzionalne igre, potekla je iz ograničenja aplikacije Construct 2. Naime ta aplikacija nema mogućnosti kreiranja 3D igara. Svaka grupa učenika je dobila isti zadatak. Željela se utvrditi razina motivacije učenika te zainteresiranost za programiranje kroz koncepte programiranja računalnih igara. Temu i scenarij igre su određivali sami učenici u grupi. Osnovni kriterij izrade igara kojeg su se učenici u obje grupe morali čvrsto držati je bio korištenje programskih konstrukata. Učenici su u obje grupe za izradu igre, trebali koristiti uvjetne naredbe (za ispitivanje uvjeta i postavljanje pitanja) i ponavljanje naredbi (petlje).

Rezultati

Nakon dvanaest sati rada, uz minimalne intervencije nastavnika, učenici su uspjeli na vrijeme završiti obje igre. U igrama je uvažen osnovni kriterij određen u metodama i materijalima. Dvije grupe, izradile su dva različita scenarija svojih igara. Učenici koji su igru programirali u Construct 2 bili su gotovi gotovi puno ranije od učenika koji su programirali u GameMaker-Studio 1.4. Razlog je bio sljedeći. Aplikacija GameMaker-Studio 1.4. ima dosta kompleksno sučelje. To znači da se svaka aktivnost mora odrađivati u novome nepovezanome dijaloškom okviru što djeluje dosta zbunjujuće. Ukoliko je za svaki objekt otvoreno više dijaloških okvira, može doći do konfuzije i zatvoriti se pogrešni dijaloški okvir. imageKod Construct 2 aplikacije, učenci nisu imali takvih problema jer nije bilo mnogo dijaloških okvira koji bi ometlai u radu. Bez obzira na to učenici su pokazali i dizajnerske vještine i vrlo promišljne scenarij.

Slika 8. Primjer igre izrađene u aplikaciji GameMaker-Studio 1.4.

imageScenarij igre izrađene u GameMaker-Studio 1.4. temelji se na glavnom objektu (ovci) koja jede travu (nepomični objekti) i te koji u koliziji sa samopokretljivim objektima koji mijenjaju smjer svakih pola sekunde biva vraćen na početak igre.

Slika 9. Primjer igre izrađene u aplikaciji Construct 2

Scenarij igre u Construct 2 temelji se na glavnom objektu pokretanom od strane igrača, koji se suočava s uspješnim savladavanjem prepreka. Prepreke su raznovrsne od ravnih staza, stepenica, do vrlo strmih objekata. Ukoliko glavni objekt ne savlada prepreku, vraća se na početak igre.

Već na samom početku rada u ovom istraživanju prilikom uvođenja u rad ovih aplikacija, učenici su pokazali velik interes za izradu igara pomoću grafičkog programiranja. Iako se radilo o učenicima s osrednjim znanjem i vještinama programiranja, napravili su vrlo uspješne i zabavne igre savladavajući pritom osnovne programske konstrukte: varijable, petlje i uvejtne naredbe. Izrađene igre su rezultat logičkog promišljanja. Sa sigurnošću se može reći da je motivacija bila na razini.Prilikom izrade zadataka, bile su potrebne minimalne intervencije nastavnika. U povremenim intervenicjama, učenici bi eventualno tražili savjete oko dizajna pojedinih objekata. Učenci koji su u radu na aplikaciji Construct 2, ranije završili svoju igru, bili su motivirani za izradu dodatka svoje igre. No izvedba zamišljneog scenarija je bila dosta kompleksna i zahtjevla bi dodatnih pet sati rada. Sa sigurnošću se može reći da je programiranje igara u obje aplikacije jako zainteresiralo i motiviralo učenike.

Zaključak

Učenje programiranja grafičkim programiranjem igara, pokazalo je vrlo dobre rezultate. Postignuta je zadovoljavajuća razina motivacije i interes za programiranje. Učenici osrednjih razina programiranja pa i oni koje nikad programiranje kao proces nije zanimalo, pokazali su veliki interes za rad u ova dva programa. Učenici su proniknuli u značenje i funkciju programskih konstrukata programske petlje i uvjetne naredbe kroz kreiranje igra, bez mukotrpnog i „suhoparnog“ i vrlo demotivirajućeg tekstualnog pisanja programskog koda. Praktičnim radom i paralelnom vizualnom intervencijom s aplikacijama, stvorili su logičko i računalno razmišljanje te tako proširili svoja znanja. Osim toga učenici su se okušali i u vještinama timskog rada. Učenici su osim znanja iz područja logike i programiranja koristili i proširivali svoja znanja iz područja dizajna. Što se tiče samih aplikacija, pokazale su se izrazito korisnim. Iako je GameMaker-Studio 1.4. pokazao neke manjkavosti tijekom rada, to nije uvelike utjecalo na kreiranje konačnog rješenja i uspješnosti rješavanja zadatka. U svrhu popularizacije programiranja, bilo bi potrebno uvesti više ovakvih aplikacija.

Popis literature

  1. Bubica, N. Mladenović, M. Boljat, I. Programiranje kao alat za razvoj apstraktnog mišljenja [pristupano 03.01.2016.]
  2. Resnick, M., i dr. Scratch: Programming for all. Communications of the ACM. 2009
  3. Mladenović, M. Učenje i poučavanje programiranja temeljeno na igrama [pristupano 03.01.2016.]
  4. Kirriemuir, J. McFarlane, A. Literature Review in Games and Learning, Futurelab, Bristol, 2004.
  5. Deljac, S. Učenje programiranja programiranjm robota i igara [pristupano 03.01.2016.]
  6. Službene stranice aplikacije GameMaker-Studio 1.4. [pristupano 03.01.2016.]
  7. Službene stranice aplikacije Construct 2 [pristupano 03.01.2016.]
  8. Službene stranice aplikacije Construct 2 [pristupano 03.01.2016.]

Spodbujanje kreativnega mišljenja in inovativnosti z Lego roboti

Encouraging creative thinking and innovation with Lego robots

barbara_strnad

Barbara Strnad

Povzetek

V informacijski dobi je ključnega pomena, da otroke usposobimo za samostojno navigacijo v morju podatkov in da jim privzgojimo odgovornost za pridobivanje znanja. Sposobnost samostojnega učenja, samoiniciativnosti je še posebej pomembna na področju znanosti in tehnologije, saj se mora dober raziskovalec in inovator venomer izobraževati in iskati nova znanja. Zagotoviti moramo učno okolje, kjer otroci lahko krepijo kreativno mišljenje in razvijajo inovativne rešitve. V članku je podrobneje predstavljen robotski del (tekma robotov s tehničnim intervjujem), ki sicer predstavlja polovičen delež multidisciplinarnega programa First® Lego® League, ki ga je v Slovenijo pripeljal Zavod Super Glavce, Zavod za promocijo znanja. Podan je pregled načina dela in priprave na robotski del tekmovanja, kjer otroci nekaj mesecev gradijo in programirajo avtonomnega lego robota, ki lahko opravi čim več nalog na tekmovalnem poligonu v omejenem času. Pri tem nastaja tehnična mapa, kjer otroci beležijo napredek, težave in načine reševanja problemov, opišejo strategije in inovacije. Tehnična mapa je osnova za pripravo na tehnični intervju. Način dela z lego roboti na pripravah za First® Lego® League tekmovanje je mogoče zelo uspešno prenesti tudi v razred pri temi algoritmični način razmišljanja in programiranje.

Ključne besede: First® Lego® League, lego roboti, inovativne rešitve, kreativno mišljenje, programiranje

Abstract

It is of great importance in the information age to equip the children with the capability of independent navigation in the flood of all available data and responsibility towards acquiring knowledge. The ability of independent learning, self-initiative is particularly important in science and technology, since good researchers and inventors have to constantly educate themselves and seek for new knowledge. We must provide a learning environment, where children can enhance creative thinking and develop innovative solutions. The article further presents the robotic part (a robot game with a technical interview) that is half of the multidisciplinary program First® Lego® League, which was brought to Slovenia by Super Glavce, the Institute for the Promotion of Knowledge. There is an overview of several months’ work and the preparation for the robotic part of the competition, where children have to build and programme an autonomous robot that can complete as many tasks on the competition mat as possible in a limited amount of time. During this process a technical portfolio is being made, where children record the progress, the problems and describe ways of solving the problem, explain strategies and present innovative solutions. The technical portfolio is the basis for the technical interview. The ways of working with lego robots in preparation for the First® Lego® League competition can be successfully replicated in class with the topic of algorithmic way of thinking and programming.

Keywords: First® Lego® League , lego robots, innovative solutions, creative thinking, programming

Uvod

V prispevku želimo pokazati, da so Lego roboti zelo učinkovit učni pripomoček, ki omogoča razvijanje logičnega mišljenja, kreativnosti in močno poveča zanimanje otrok za učenje programiranja. Sodelovanje otrok pri pripravah na tekmo robotov v okviru multidisciplinarnega programa First® Lego® League (FLL) spodbuja iskanje kreativnih in inovativnih konstrukcijskih in programskih rešitev. Način dela v programu FLL, kjer se dejavnost osredotoča na otroke, kjer se otroci skozi ustvarjanje, lastno delo in izkušnjo učijo, se da prenesti tudi v razred.

1. Osrednji del besedila

Ker živimo v dobi visoke tehnologije in vstopamo v dobo robotov, smo na gimnaziji Novo mesto pred tremi leti pri pouku pričeli z aktivnostjo lego robotika. Lego roboti omogočajo spoznavanje delovanja in upravljanja robotov na zabaven način. Ravno tako smo imeli v mislih ugotovitev, da si otroci v Sloveniji v povprečju ne želijo učiti naravoslovnih in tehničnih vsebin (Skurjeni, Dolinšek in Strašek 2008), podobno velja tudi v razvitih državah (Sjøberg in Schreiner 2010).

Ker so otroci visoko motivirani, če imajo pred seboj cilj, smo želeli delo na robotih še bolj osmisliti, zato smo se vključili v program (FLL). Tudi raziskave so pokazale, da raziskovalni program FLL poveča zanimanje otrok za naravoslovje in tehnologijo (Melchior, Cutter in Kingsley 2013).

FLL je mednarodni multidisciplinarni raziskovalni program, ki spodbuja radovednost, kreativnost, sodelovalno učenje in skupinsko delo. Zaradi premišljenega, učinkovitega in za mlade privlačnega koncepta spoznavajo STEM (science, technology, engineering, and math) na drugačen način kot smo ga vajeni pri rednem pouku. S pomočjo atraktivne robotike se otroke navdušuje za naravoslovje in tehniko, kjer se skozi igro razvija in krepi logični in tehnični način razmišljanja.

V robotskem delu FLL skupine načrtujejo, sestavijo, programirajo in testirajo avtonomnega robota tako, da lahko opravijo vrsto nalog, misij med 2,5 minute trajajočo tekmo na FLL polju. Naloge na FLL polju celostno predstavljajo najbolj tipične probleme aktualnega FLL izziva: v sezoni 2014 je bila tema Ves svet je učilnica, v sezoni 2015 Poti smeti, v sezoni 2016 Živalski zavezniki (Slika 1 in Slika 2).

clip_image002clip_image004
Slika 1. FLL polji iz sezone 2014 – Ves svet je učilnica in sezone 2015 – Poti smeti clip_image006
Slika 2. FLL polje iz 2016 – Živalski zavezniki

Priprave na regijsko, državno tekmovanje in kasneje na mednarodno, so potekale zelo intenzivno. Šele v tretji sezoni smo prvič naleteli na otoka, ki je že imel nekaj izkušenj z lego roboti. Res pa je, da so bili vsi člani ekipe veliki navdušenci nad lego kreacijami. Velika večina otrok znanja s področja programiranja sploh ni imela, le redki so se srečali s programiranjem v Scratchu.

Delo se prične v začetku septembra, ko ekipe prejmejo komplete kock za sestavljanje modelov za na FLL polje. Paziti je potrebno, da so modeli sestavljeni pravilno, da se resnično natančno sledi navodilom, saj lahko napačno sestavljen model vpliva na izbiro strategije reševanja in precej spremeni potek robotske igre.

Pri sestavljanju modelov (Slika 3) lahko otroci dobijo veliko znanja in idej povezanih z mehanskimi napravami in mehanizmi. V modelih se skriva veliko, od osnovnih mehanskih načel do naprednih mehanskih naprav, mehanizmov in konstrukcij iz realnega življenja. Že pri sestavljanju modelov, se lahko posvetijo raziskovanju prestavnih mehanizmov z raznimi zobniki.

Ko je tekmovalno polje v celoti postavljeno, sledi natančen pregled nalog oz. misij, kar vključuje tudi natančno in večkratno branje navodil ter ogled videoposnetkov z opisom zahtev, ki jim bo robot moral zadostiti. Otroci nato določijo strategijo reševanja nalog. Naredi se natančen plan poti, ki ga vrišemo na kopijo polja, da si vizualiziramo pot (Slika 4). Pomembno si je označiti tudi točke sigurnosti, morda tudi uporaba senzorjev

clip_image008clip_image010
Slika 3. Pri sestavljanju modela za na FLL polje     Slika 4. Primer načrta robotskih voženj

Sledi gradnja osnove robota iz robotskega seta Mindstorms EV3 Education. Pri gradnji osnove je zelo pomembno, da pazimo na velikost, težo, izbiro najustreznejših gum, načrt uporabe senzorjev in njihove pozicije, kje bo locirana robotska roka. Pomembno vprašanje je, ali je robot dobro uravnotežen, ali je težišče na pravem mestu. Nepravilna razporeditev teže prinese nezanesljivost robota, ki lahko nezaželeno zavija, zato je zelo pomembna lega pametne kocke. Prav tako ne smemo zanemariti teže nastavkov in priključkov, ki lahko nezanesljivost robota še povečajo.

Pri izbiri gum je potrebno opraviti več testnih voženj. Večja kolesa so lahko hitrejša, vendar manj natančna, z manjšimi kolesi je robot počasnejši, lahko pa dosežemo večjo natančnost. Trše gume se manj deformirajo in manjkrat odstopijo od platišča. Zadnja kolesa ali drsniki se morajo gibati v vseh smereh in biti na enaki višini kot sprednja kolesa.

Za pogon lahko uporabimo štiri velike pogonske motorje ali pa tri velike pogonske motorje in en srednji motor. Osnova robota ima po navadi dva do tri svetlobne senzorje, žiro senzor, morda tudi stikalo.

Skonstruirati si želimo čim bolj trdno, kompaktno osnovo z ravnimi stranicami, ki služijo poravnavi ob zid, rob tekmovalnega poligona. Pri vožnji ob zidu nam bodo morda prišla prav majhna stranska kolesa. V mislih moramo imeti tudi menjave nastavkov na robotu, ki si jih želimo opraviti čim bolj elegantno, hitro in uspešno, tudi s tresočimi rokami na tekmovanju. Robot mora biti zgrajen tako, da omogoča prost dostop do vhoda za polnjenje baterije in USB vhoda.

imageimage
Slika 5. Primer osnove tekmovalnega robota

Vzporedno z gradnjo osnove se posvetimo učenju programiranja. Naši delovni pripomočki so knjige, učbeniki in svetovni splet, kjer je prava zakladnica idej in pripomočkov za učenje. Začnemo z različnimi izzivi: vožnja naravnost je zahteva, posebno, ko si želimo voziti hitro, vzdrževanje smeri z žiro senzorjem, sledenje črti (Slika 6).

Ko smo zadovoljni z osnovo robota, ki se okretno, s primerno hitrostjo in močjo natančno premika po FLL polju, lahko začnemo s konstrukcijo nastavkov. Težimo k temu, da je robot sestavljen iz gradnikov, ki so kompaktno in smiselno spojeni in večine senzorike in motorjev.

Starejši otroci, ki so v programu že sodelovali imajo pri prenosu svojih izkušenj in znanja izreden pomen. Svoje mlajše kolege naučijo osnov dela ter opozarjajo na ovire in pasti, ki se kar prehitro pojavijo na tekmovalnem poligonu. Z medvrstniškim sodelovanjem v vseh fazah in področjih dela, se gradi pozitivna klima v skupini. Otroci se preko pogovora, skupnega razmišljanja ter skozi odkrivanje, raziskovanje in clip_image016razpravo učijo drug od drugega. Poskušamo ustvarjati učno okolje, ki učenca spodbuja k večji aktivnosti, učinkovitejšemu učenju, zavzemanju za kakovostno znanje in prevzemanju odgovornosti za to.

Slika 6. Test programa za sledenje črti

Sprva zabavno in zelo sproščeno delo z roboti pripelje otroke pred nove izzive iz mehanike in programiranja. Po navadi se izkaže, da so nekateri otroci izraziti konstruktorji, drugi boljši programerji, redki so zelo dobri na obeh področjih. Za učinkovito reševanje nalog in odpravljanje problemov na robotski mizi je ključnega pomena dobro sodelovanje tako konstruktorjev kot programerjev. Oboji natančno opazujejo kaj se z robotom dogaja, analizirajo njegovo vožnjo, poskušajo ugotoviti vzrok neželjenega obnašanja robota in ga odpraviti. Pri tem so nam lahko zelo v pomoč počasni posnetki vožnje robota. Vsako vožnjo je treba poskusiti čim večkrat, v različnih pogojih, na različnih tekmovalnih poljih in tako pridobiti čim več izkušenj, predvideti čim več možnih napak in jih seveda poskusiti preprečiti, bodisi konstrukcijsko ali programsko. Želimo si zagotoviti čim večjo natančnost pri opravljanju vseh nalog.

Da otrokom ne zmanjka motivacije, je v začetku novembra organiziran vseslovenski trening robotske tekme, kjer lahko svojega robota in izbrano strategijo primerjajo z ostalimi ekipami. Trening tekme robotov nam po navadi da novega zagona in idej ter pove, da nas čaka še kar nekaj dela, kar pa v enaki meri velja tudi za vse ostale ekipe. Trening je odlična priprava na tekmovanje (Slika 7).

clip_image018clip_image020
Slika 7. Tekma robotov

Pri delu se ves čas izdeluje tudi robotski dnevnik v katerem je potrebno na nazoren način predstaviti potek sestavljanja robota in programe za njegovo avtonomno delovanje. Dnevnik razdelimo na tri spretnostna področja.

V enem poglavju se posvetimo mehanskemu konstruiranju, kjer predložimo dokaze za strukturno celovitost: vzdržljivost, mehansko učinkovitost in mehanizacijo robota. Robot mora biti zmožen zoperstaviti se fizičnim vplivom na tekmovanju, pri izvajanju nalog mora biti natančen.

V drugem poglavju se posvetimo programiranju (Slika 7): kvaliteti in učinkovitosti programiranja. Prikažemo proces programiranja in korake pri izboljšavi programov (uporaba zank, svojih blokov, matematike in komentarjev).

Tretje poglavje je namenjeno strategiji in inovacijam. Tu predstavimo celotni cikel izboljšav, proces razvijanja in razlago izboljšav, modifikacij, prednosti in slabosti naših rešitev, možne napake,… Jasno opišemo, definiramo clip_image022strategijo za reševanje vseh nalog. Posebej izpostavimo inovacije in osnovne lastnosti robota, ki dodajo veliko vrednost.

Slika 8. Izsek iz robotskega dnevnika

Tretje poglavje je namenjeno strategiji in inovacijam. Tu predstavimo celotni cikel izboljšav, proces razvijanja in razlago izboljšav, modifikacij, prednosti in slabosti naših rešitev. Robotski dnevnik služi kot osnova pri pripravi na tehnični intervju, kjer dijaki ocenjevalcem predstavijo proces gradnje robota, nastavkov in programiranja. Na intervjuju je potrebno prikazati vožnjo robota, na katero smo najbolj ponosni, ter odgovoriti na vprašanja sodnikov.

Glavne kompetence, ki jih učenci pridobivajo je razvijanje domišljije in prostorskih predstav, osvajajo matematična in tehnološka znanja, učijo se programiranja, spoznavajo različne računalniške tehnologije, pri tem sodelujejo med seboj in s strokovnjaki. Gre za izkustveno učenje, razvijanje kreativnosti in inovativnega reševanja problemov. Kreativnost je ustvarjanje novih povezav, ki pa se lahko zgodijo le, če umu omogočamo prožno ter prilagodljivo delovanje. Pri tem je bistveno, da dobi možnost pri iskanju novih rešitev desna možganska polovica, ki jo vznemirja eksperimentiranje in sanjarjenje (Račnik 2010). Vse to FLL omogoča in spodbuja.

Otroci se v šoli srečujejo pretežno s teoretičnimi vsebinami, ki ne razplamtijo njihove radovednosti in želje po učenju. Dijaki potrebujejo izziv in motivacijo, da se lahko lotijo kreativnega reševanja problema. Lego robote, tako WeDo kot Mindstormsi, se lahko uporablja pri pouku kot motivacijo za učenje programiranja in izzive iz konstruktorstva. Tudi pri pouku si pomagamo z znanjem in izkušnjami iz FLL programa. Otroci si lahko sami izberejo izziv, ki se ga lotijo: ali je to izdelava glasbenega instrumenta, na katerega se lahko zaigra, lahko si izberejo konstruiranje, izdelavo in programiranje robota, ki prikazuje primer avtomatizacije doma (model pralnega stroja, zalivalca rož, tipkarskega asistenta, sortirnega stroja), morda izdelajo model živali, bitja, kjer poskusijo posnemati način hoje, … Dijaki si nivo zahtevnosti lahko prilagodijo predznanju in izraženemu interesu.

Dogovorili smo se, da se bomo programiranja učili skozi reševanje problemov, ki so jih zapisovali v poročilo. Pogovorili smo se o strategijah reševanja problemov in ugotovili, da ne obstaja le ena pot do znanja, da ni edina pot čakanje na učiteljevo demonstracijo in razlago. Vsaka skupina je na srečanjih zapisala s katerim problemom se ukvarja, kaj smo se naučili prejšnjič in kaj vse bo še potrebno razrešiti. V uvodnih urah smo izbirali probleme, ki so bili skupni večini otrok, več je bilo učiteljevega pojasnjevanja. Kasneje so otroci postajali samostojnejši, učili so se s preizkušanjem, medsebojnim sodelovanjem, iskali rešitve na spletu. Delo z roboti je pri dijakih povečalo zanimanje dijakov za učenje programiranja. Ker so motivirani, sami poiščejo željene informacije za reševanje svojega, izbranega problema. Prav tako so mnogo bolj učinkoviti, ko si lahko sami izbirajo metode dela. Na koncu je sledila predstavitev dela skupin z izdelano dokumentacijo. Lego roboti so super didaktična igrača, ki jo lahko pri pouku uporabljamo kot motivacijo (Slika 9) za učenje programiranja.

clip_image024clip_image026
Slika 9. Priložnost predstaviti svoje delo na mednarodnem tekmovanju je izjemna motivacija (Razorback Invitational, University of Arkansas, 2015 in World Championship v St. Louisu, 2014)

3. Zaključek

Sodelovanje v FLL me je zaznamovalo, kot učitelja, kot posameznika, zelo sem spremenila način poučevanja. Otroci imajo sedaj precej aktivnejšo vlogo pri učenju, raziskovanju. Kot učitelj sem večinoma njihov mentor, pomočnik in usmerjevalec, včasih celo mediator. Učitelj usmerja učence k razmišljanju o dosežkih, s čimer se povečuje njihova vključenost v spremljanje lastnega učnega procesa, posledično pa tudi njihova odgovornost za lastno delo in kakovost dosežkov.

Otroci, ki so in še sodelujejo v programu pridobijo širok spekter znanj. Računalniška logika jim omogoča razumeti in programirati robota; tehnično znanje jim pride prav, ko sestavljajo orodja: motorji, senzorji, vzvodi, zobniki jim ne predstavljajo večjih težav; znati pa morajo sodelovati tudi z ostalimi člani svoje skupine in dodati svoj kamenček v mozaik, ki ga skupaj sestavljamo.

Takšen način dela je precej drugačen od šolskega vsakdanjika, pa vendar kliče k uporabi. Takšen način dela zahteva od učencev drugačno delo, vendar pa učenci postanejo samostojnejši, kvaliteta znanja pa se v kombinaciji z izkušnjami močno poveča.

4. Literatura

  1. Melchior, Alan. Cutter, Tracy. Kingsley, Chris. 2013. Evaluation of FIRST LEGO League.
  2. Račnik.2010. Postani najboljši vodja. Šore: Marja Račnik s.p.
  3. Sjøberg, Svein. Schreiner, Camilla. 2010. The ROSE project. An overview and key findings.
  4. Skurjeni, Drago. Dolinšek, Slavko., Strašek, Rok. 2008. Zanimanje in želje osnovnošolcev za učenje naravoslovja. 1854-4231, letnik 3, številka 4. 363-378.

Učenje programiranja korištenjem interaktivnog dijagrama tijeka

zoran_hercigonja

Zoran Hercigonja

Sažetak

Učenje programiranja je samo po sebi izuzetno zahtjevno jer zahtijeva određenu razinu apstraktnog razmišljanja, zahtijeva razne vještine, od kojih je jedna i projektiranje to jest osmišljavanje modela algoritma koji će poslužiti kao podloga za pisanje programskog koda. Na temelju tog modela, moguće je napisati program u bilo kojem programskom jeziku. Glavne teškoće u učenju programiranja za početnike predstavlja upravo zaobilaženje samostalnog i zasebnog osmišljavanja modela algoritma po kojem će se program pisati. Rješenjem u obliku interaktivne aplikacije za izradu dijagrama tijeka, pokazati ćemo prednosti i koristi učenja programiranja putem projektiranja dijagrama toka.

Ključne riječi: dijagram tijeka, programiranje, algoritam, Flowgorithm

Uvod

U školama je dosta ustaljena praksa da se uči sintaksa i semantika određenog programskog jezika, prije nego što učenik savlada algoritamski način razmišljanja i raščlanjivanja problema. Dakle model algoritma koji bi vodio pisanje programskog koda se najčešće zaobilazi, iako je njegova uloga za programera početnika od iznimne važnosti. Ono što se događa jest da učenici uče kodiranje u samo jednom programskom jeziku; kroz učenje njegove sintakse i semantike, oni nauče razmišljati samo u jednom od programskih jezika. Nedostatak izrade modela algoritma, predstavlja nedostatak u algoritamskom pristupanju problemu. Dakle učenik nauči samo formu pisanja u nekom od programskih jezika i on je sposoban riješiti problem programski u okruženju u kojem je savladao sintaksu i semantiku. Takav pristup programiranju je vrlo ograničavajući. On ne uči učenika algoritamski razmišljati i kreirati jedan specifičan oblik razmišljanja, već ga uči samo koristiti određeni kodni sustav za rješavanje problema. Dakle učenici bi obavezno prije samog programiranja i kodiranja u nekom od programskih jezika, trebali projektirati modela algoritma za rješavanje konkretnog problema. Takav model algoritma nazivamo dijagramom tijeka. Dijagram tijeka je simboličko prikazivanje algoritma pomoću osnovnih simbola dijagrama tijeka. Simboli dijagrama tijeka su standardizirani i u principu je moguće na osnovi algoritma predstavljenog simbola dijagrama tijeka napisati program u bilo kojem programskom jeziku.[1] Bez izrade dijagrama tijeka, faza programiranja je striktno vezana uz savladavanje simboličkog alfabeta i sintakse pojedinog programskog jezika. Za programera početnika, izrada dijagrama toka je važan korak kojeg nikako ne bi trebalo zanemarivati. [1]. Striktnim vezanjem za savladavanje simboličkog alfabeta i sintakse pojedinog programskog jezika, učenikovo znanje svodimo na razinu reprodukcije. Osmišljavanjem i projektiranjem dijagrama tijeka, učenika se potiče na kreativno razmišljanje koje nije ograničeno programskim jezikom. Dakle dijagram tijeka je pomoćno sredstvo koje je neovisno o programskom jeziku i računalu, a vizualizira zadatak pa on postaje pregledniji. Dijagram tijeka sastoji se od niza jednostavnih geometrijskih likova spojenih usmjerenim crtama. Usmjerene crte pokazuju tijek rješavanja zadatka. [2]. Cilj učenja programiranja ne smije se ograničiti samo na razini znanja reprodukcije, već na višim razinama poput kreativnog iznalaženja rješenja. Cilj je prije svega naučiti algoritamski razmišljati, a tek onda takav način razmišljanja prilagoditi simboličkom alfabetu i sintaksi pojedinog programskog jezika.

imageSlika 1. Dijagram tijeka [2]

Dijagram tijeka kao standardni niz simbola za projektiranje algoritma treba prethoditi pisanju programskog koda u procesu učenja programiranja zbog kreiranja algoritamskog razmišljanja.

Iako na internetu postoji velik broj online aplikacija koje nude mogućnosti izrade dijagrama tijeka poput aplikacije Gliffy, ni jedna od njih ne nudi mogućnost paralelnog generiranja programskog koda na temelju osmišljavanja i projektiranja dijagrama tijeka. Aplikacija Flowgorithm je privremeno rješenje takvog problema, a ujedno i jedino.

Interaktivni dijagram tijeka Flowgorithm

Ionako vrlo zahtjevno pisanje programskog koda koje se najčešće svodi na reprodukcijsku razinu znanja, biva još zahtjevnije i otežano ukoliko ne postoji moć algoritamskog razmišljanja. Koristeći se samo postavkama reproduktivnog znanja, moguće je riješiti samo poznate programske probleme. No ukoliko se pojavi programski problem koji svojim sadržajem ne odgovara ni jednom dosad korištenom pristupu, onda on postaje nerješiv. Cilj programiranja je naučiti učenike algoritamski razmišljati i rješavati programske probleme. Programiranje samom sebi nije svrha. Programiranje u određenom programskom jeziku je samo sredstvo pomoću kojeg se može na određenoj platformi poput računala napraviti rješenje nekog programskog problema. Rješenje svakog problema, treba prvo dobro osmisliti dijagramom tijeka, a tek onda krenuti na realizaciju koristeći odabrani programski jezik.

Flowgorithm

Flowgorithm je besplatan program koji pomaže stvoriti programa pomoću jednostavnog dijagrama toka. Sastoji se od standardiziranih osnovnih simbola za početak i kraj, grananje, ulaz, izlaz i blok naredbi. Moguće ga je preuzeti na stranici http://flowgorithm.org/download/index.htm [3]. Veličina preuzetog zip. dokumenta je 1.378 KB. Postupak instalacije je jednak postupku instalacije većine aplikacija na računalo. Aplikacija Flowgorithm namijenjena je za više platformi. Osim za Windows operativni sustav, kompatibilna je i s Linux i Macintosh operativnim sustavom.

image
Slika 2. Radno sučelje aplikacije Flowgorithm

Sučelje ove aplikacije, vrlo je intuitivno i jednostavno za korištenje. Sastoji se od editora u kojem se kreira dijagram tijeka i jedne alatne trake s nekoliko ponuđenih opcija.

image
Slika 3. Alatna traka aplikacije Flowgorithm

Osim standardnih i više-manje poznatih opcija za spremanje ili otvaranje gotovog rješenja u sučelje aplikacije Flowgorithm, alatna traka sadržava sljimageedeće: opciju za pokretanje i pauziranje i zaustavljanje simulacije dijagrama tijeka, određivanje brzine odvijanja simulacije u rasponu od Fast-Medium-Slow, optički Zoom, određivanje izgleda dizajna simboličkih oblika dijagrama tijeka pod nazivom Chart Style, te opciju pretvaranja dijagrama tijeka u programski kod četrnaest (14) programskih jezika pod nazivom Source Code Viewer.

Slika 4. Opcija uređivanja dizajna simbola dijagrama tijeka

Jedna od velikih prednosti Flowgorithm aplikacije jest i mimageogućnost automatskog pretvaranja dijagrama tijeka u programski kod nekog od odabranih programskih jezika. Radi se o sljedećim programskim jezicima: C#, C++, Delphi/Pascal, Java, JavaScript, Lua, Perl, Python, QBasic, Ruby, Swift 2, Visual Basic .NET

Slika 5. Lista ponuđenih programskih jezika

Dakle, kada korisnik u početnom editoru kreira dijagram tijeka nekog programskog rješenja problema, može automatski napraviti konverziju tog dijagrama tijeka u odgovarajući programski jezik. Pretvorba dijagrama tijeka u odabrani programski jezik, podrazumijeva pretvorbu u duhu sintakse i simboličkog alfabeta specifičnog za taj programski jezik. Flowgorithm sučelje je izuzetno zanimljivo po tome što može simulirati rad kreiranog dijagrama tijeka. To znači da je moguće prije pisanja programskog koda na licu mjesta, moguće provjeriti postavljenu logiku rješavanja nekog problema. Dakle ukoliko je dijagram tijeka osmišljen da od korisnika traži unos nekimagee vrijednosti, pokretanjem simulacije, otvoriti će se zasebni prozor koji će tražiti od korisnika unos određene vrijednosti. Flowgorithm dijagram je vrlo interaktivan. Dakle korisnik svaki puta prije pisanja programskog koda može provjeriti ispravnost logike.

Slika 6. Konzola nakon pokretanja simulacije

Nakon što je kreiran dijagram tijeka, moguće je pokrenuti simulaciju. U primjeru Slika 6. kreiran je jednostavan dijagram koji ispisuje tekst „Hello“. Prilikom pokretanja simulacije, otvara se dodatni dijaloški okvir u čijem se tijelu ispisuje tekst poruke „Hello“ zadan u dijagramu tijeka. Svaki dijagram, moguće je eksportirati u formatu slike (PNG, JPG) na željeno mjesto.

Rezultati testiranja

Za potrebe testiranja, osmišljen je programski zadatak na temelju kojeg je izrađen dijagram tijeka. Nastavnici su testirali mogućnosti zadanog alata te utvrdili njegove prednosti i nedostatke.

Zadatak:

Izraditi program koji će korisnika tražiti unos vrijednosti brojčanog tipa. Ako brojčana vrijednost bude veća od deset (10) onda ispisati poruku „Unesena vrijednost je veća od 10“, a u slučaju da vrijednost bude manja od deset (10) onda je potrebno ispisati poruku „Unesena vrijednost je manja od 10“.

Dakle programski zadatak zahtijeva unos vrijednosti preko korištenja varijable tipa integer, if uvjetovanja (odluke true i false) te ispis s dvije različite poruke.

image
Slika 7. Odabir gotovih simbola

Sučelje Flowgorithm-a automatski kreira granične oznake za početak i kraj programa. Lijevim klikom na vezu između početnog i završnog graničnog događaja, otvara se izbornik s kategorijama simboličnih oblika. Tu se ponajprije odabiru željeni simbolični oblici. Za potrebe rješavanja zadatka, bit će odabrani sljedeći simbolični oblici: Declare, Input, If i dva simbola Output. Nakon što su svi oblici odabrani, potrimageebno je deklarirati varijablu. To se čini na način da se na simbolični oblik Declare dva puta klikne. Tada se otvara dijaloški okvir koji nudi mjesto za inicijalizaciju varijable i određivanje njezinog tipa. Odabran je Integer kao tip podataka.

Slika 8. Inicijalizacija varijable

Imenovanje preostalih simbola, određuje se na jednak način imagedvostrukim klikom miša na željeni oblik. Dakle, nakon dvostrukog klika mišem, otvara se dijaloški okvir u koji se upisuje željeni naziv ili uvjet ili kod oblika Output željena poruka koja će se ispisivati na ekranu.

Slika 9. Dijagram tijeka realiziranog zadatka

Nakon pokrenute simulacije, otvara se konzola u koju se unose vrijednosti, a koja ujedno služi i kao editor za ispisi. U testnom zadatku je traženo da se unese željena vrijednost te da se nakon toga ispiše odgovarajuća poruka ovisno o uvjetu u If uimagevjetovanju. Dakle unesena vrijednost je manja od 10. Poruka koja se ispisala u konzoli glasi: „Unesena vrijednost je manja od 10“. To znači da je dijagram toka ispravno kreiran.

Slika 10. Pretvorba dijagrama toka u programski jezik Python

Nakon simulacije, pokrenut je Source Code Viewer koji je dijagram toga automatski generirao i pretvorio u programski kod odabranog programskog jezika. Odabrani programski jezik za pretvaranje dijagrama tijeka u programski kod je bio Python.

Prednosti i nedostaci

Simulator se pokazao kao simulator intuitivnog i jednostavnog sučelja za korištenje s mnoštvo mogućnosti poput generiranja programskog koda u 14 različitih programskih jezika na temelju kreiranog i osmišljenog dijagrama tijeka. S druge strane velika prednost je i interaktivnost sučelje to jest mogućnost pokretanja simulacije u kojoj je moguće provjeriti teorijske postavke dijagrama tijeka, prije nego ih se pretvori u programski kod nekog od programskih jezika. Iako ovo interaktivno sučelje izgleda vrlo obećavajuće, mora se istaknuti i pokoji nedostatak. Jedan od glavnih i očitih nedostataka je nemogućnost obrnute pretvorbe programskog koda u dijagram tijeka. Sučelje nema mogućnost da na temelju programskog koda kreira dijagram tijeka koji bi poslužio za provjeru logike kroz pokrenutu simulaciju. Osim toga interaktivna aplikacija Flowgorithm na žalost ne pokriva sve situacije koje nastupaju u današnjim tehnikama programiranja. Tako da neke više razine programiranja ne bi mogle biti podvrgnute simuliranju situacije pomoću dijagrama toka.

Zaključak

Iako se kod učenja programiranja vrlo često zaobilaze dijagrami tijeka s pojačanim fokusom na vrlo često mehaničkom pisanju programskog koda u nekom od programskih jezika, zaboravlja se na važnost umnog i kreativnog posla svakog programera. Smisao programiranja nije samo pisati programski kod nego osmisliti rješenja koja će biti realizirana putem programskog koda. U programiranju ne postoji recept kojim bi se riješio svaki problem. Kreiranje dijagrama toka podrazumijeva učenje algoritamskog razmišljanja; to je umni i kreativni posao koji ovisi o poznavanju postavljenog problema. Ukoliko problem nije moguće riješiti pomoću kreiranog dijagrama tijeka, onda ga nije moguće ni riješiti programiranjem. Flowgorithm svojim interaktivnim simulacijama, nudi upravo mogućnost učenja razmišljanja u svijetu programiranja i stvaranja algoritama za rješavanja nekog problema. Interaktivnim dijagramom tijeka, uči se prije svega logika obrade ulaznih informacija s ciljem da se dobije izlazni rezultat. Ako želimo od učenika stvoriti kreativne pojedince koji znaju razmišljati u duhu algoritamskog pristupa problemu, onda nikako ne smijemo dopustiti da se učenje programiranja svede na učenje simboličkog alfabeta, semantike i sintakse nekog programskog jezika. Flowgorithm je za sad jedino interaktivno rješenje koje svojim mogućnostima može ukazati na važnost uporabe dijagrama tijeka prilikom učenja programiranja.

Literatura

  1. Pavković, N., Marjanović, D. Bojčetić, N. Programiranje i algoritmi, Zagreb 2005.
  2. Osnove programiranja u c++ jeziku [pristupano 07.01.2017.] Dostupno na <https://sites.google.com/site/sandasutalo/oosnove-programiranja/pomocni-postupci-pri-programiranju/dijagram-tijeka&gt;
  3. Službena stranica aplikacije Flowgorithm [pristupano 07.01.2017.] Dostupno na <http://flowgorithm.org/index.htm&gt;

Europski tjedan programiranja u Gimnaziji Vukovar

Sanja Pavlović Šijanović

plakati Europski tjedan programiranjaEuropski tjedan programiranja ili skraćeno #codeEU pokrenuli su 2013. mladi savjetnici za Digitalnu agendu Europske komisije, a inicijativa i dalje raste. Naime prošle je godine više od pola milijuna ljudi sudjelovalo na gotovo 8000 događanja povezanih s programiranjem u 46 zemalja u Europi i šire. S obzirom da su i škole mogle organizirati događanja povezana s programiranjem u okviru izazova CodeWeek4All, učenici Gimnazije Vukovar odlučili su sudjelovati u novom izazovu. Učenjem programiranja djeca postaju mislioci, kreatori i inovatori koji svoje ideje i radove oživljavaju i realiziraju. Steve Jobs- poznati vizionar i jedan od osnivača tvrtke Apple u jednom je intervju-u izjavio: „Mislim da svi u zemlji moraju učiti programirati jer na taj način uče razmišljati“. Ono djeci daje samopouzdanje i vjeru kako mogu postati dizajneri i stvaratelji. S obzirom da su današnje generacije od malih nogu okružene tehnologijom, potrebno je iskoristiti njihov interes i Algoritmipodignuti razinu logičkog i apstraktnog razmišljanja, a učenje programskih jezika i programiranja upravo je idealna platforma za ostvarenje toga cilja. Uz sve navedeno, neosporna je činjenica da se stjecanje informatičkih znanja smatra sjajnim ulaganjem u vlastitu budućnost jer se poslovi iz područja informacijskih tehnologija, uključujući programiranje, nameću kao poslovi budućnosti, a opće je poznata i činjenica da na tržištu rada postoji veliki nedostatak stručnjaka iz ovog područja. Zato i ne čudi veliki interes naših učenika da iskoriste svaku ponuđenu aktivnost u ovom području a time i uključivanje u ovaj događaj.

Nakon što smo donijeli odluku o sudjelovanju u Europskom tjednu programiranja, odabrali Programiranjesmo aktivnosti koje ćemo provoditi, i naše planirane događaje prijavili smo na http://events.codeweek.eu/add/. Ovisno o dobnim skupinama učenika i njihovim predznanjima pripremili smo radionice različitog karaktera. Radionice i predavanja obilježile su cijeli radni tjedan od subote 15. do petka 21. listopada. Učenici prvih razreda imali su zadatak izrađivati prigodne materijalne i digitalne plakate na temu Povijest programiranja i Europski tjedan programiranja, učenicima 2. razreda održana su prigodna teorijska predavanja vezana za izradu algoritama, dijagrama tijeka i psudokoda te radionice gdje su svoje algoritme praktično mogli isprobati u sučelju programskog jezika Python. Python je edukativan i metodičko- didaktički koncipiran programski jezik koji se može prilagoditi različitim uzrastima učenika. Omogućuje stjecanje znanja iz područja različitih (jednostavnih i složenih) programskih Pythonstruktura tako da čini postupak učenja jasnijim i jednostavnijim. Učenici trećih razreda sudjelovali su u radionici u kojoj su putem Scratch-a stvarali igre, priče, animacije i druge interaktivne sadržaje dok su učenici četvrtih razreda rješavali složenije problemske zadatke u Pythonu. Interesantna je činjenica da su učenici svih dobnih skupina izrazili želju za kreiranjem vlastitih igara u Scratchu te njihovim dijeljenjem sa drugim sigrifikacijaudionicima, što pokazuje da proces igrifikacije u nastavi svakako utječe motivirajuće na učenje, povećava interes, samostalnost, spremnost i sposobnost povezivanja a smanjuje strah od pogrešaka što omogućava svakom pojedinačno osobnu i samokritičnu kontrolu postignuća i napretka. Igrifikacija se tako pokazala kao izvrstan proces integriranja elemenata igre u kurikulum i integriranja umjetnosti i STEMa.

Svim ovim radionicama osnovna ideja bila je potaknuti djecu da istražuju, smišljaju i ostvaruju svoje zamisli, koje zatim mogu pokazati drugima putem interneta, usput usvajajući osnove programiranja, matematike, vizualnog i interaktivnog dizajna. Zajedničkim radom uspjeli smo programiranje učiniti transparentnijim, demistificirati povezane vještine i okupiti sve motivirane učenike u zajedničkom učenju.

ScratchScratch1Vizualno programiranje

Učenje programiranja daje mogućnosti iterativnog rješavanja problema i testiranja ideja koje olakšavaju shvaćanje i razumijevanje digitalnog svijeta koji nastanjujemo. Što više znamo, to je znatiželja i želja za prakticiranjem sve veća. Tako je i Alessandro Bogliolo, koordinator ambasadora tjedna programiranja izjavio: „Programiranjem se intuicija pretvara u rješenje, a ideja u inovaciju. Računalnim načinom razmišljanja oslobađa se stvaralački potencijal. Ovdje nije riječ o tehnologiji, već o osobnom osnaživanju.“

S obzirom na veliku znatiželju i interes za uključivanjem u ovaj događaj, prijavili smo se i na izazov http://codeweek.eu/codeweek4all/, pri čemu smo nakon online registracije dobili jedinstveni kod kojim smo se identificirali u svim organiziranim događanjima. U zadanom prijavnom obrascu iskazali smo ukupan broj učenika u samoj školi kako bi organizatori mogli sumirati sve sudionike događanja i na temelju izvješća o provedenim događanjima i broju uključenih sudionika donijeti odluku jesmo li zadovoljili uvjete za dobivanje Potvrde o izvrsnosti u programerskoj pismenosti (Certificate of Excellence in Coding Literacy).

videođ

S obzirom da je u Gimnaziji Vukovar tijekom Tjedna programiranja u svim provedenim aktivnostima sudjelovalo oko 200 učenika što je više od 50% stope sudjelovanja, naša je škola uspješno savladala zadani izazov i stoga vjerujemo da će nam na našu adresu stići i Potvrda o izvrsnosti u programerskoj pismenosti. Iznimno smo ponosni na ovo postignuće, dobro smo se zabavili, naigrali, pokazali da programiranje može biti puno više od samog programskog koda i zato nastavljamo dalje i to u još većem broju i sa novim znanjima, vještinama, sposobnostima i iskustvima kako bi bili što spremniji za nove izazove digitalnog doba.

Digitalna vještina programiranje-pismenost od malih nogu

sanja_PS

Sanja Pavlović Šijanović

U Republici Hrvatskoj kronično nedostaje programera a s obzirom na zahtjeve tržišta rada, problem će biti još izraženiji budući da potrebe za programerima samo rastu iz godine u godinu. Kroz medije smo se susreli s podatkom kako će do 2020. godine u Europi nedostajati  900.000 ICT stručnjaka pri čemu programeri čine približno dvije trećine današnjih potreba za ICT kadrom u Hrvatskoj.

Prvi korak ka rješenju ovoga problema bio bi djeci osnovne škole omogućiti učenje osnova programiranja a djeci srednje škole nadogradnju osnova kako bi naučili logički razmišljati, a samim time i ostati u programerskim vodama. Poznata nam je izreka „Quot linguas calles, tot homines valles „ (Koliko jezika govoriš toliko ljudi vrijediš) a prve asocijacije koje nam se javljaju na spomen ove izreke su strani jezici. Međutim, u dobu informacijsko-komunikacijske tehnologije, nije li uz poznavanje stranih jezika neophodno ako ne i obavezno poznavanje programskih jezika? S obzirom da su današnje generacije od malih nogu okružene tehnologijom, potrebno je iskoristiti njihov interes i podignuti razinu logičkog i apstraktnog razmišljanja, a učenje programskih jezika upravo je idealna platforma za ostvarenje toga cilja. U Estoniji od 2012.godine učenici osnovne škole uče programirati, u Slovačkoj se programirati uči tijekom cijelog školovanja a u Hrvatskoj se postavlja pitanje: Treba li informatiku uvesti u osnovne škole kao obvezan predmet? Situacija u srednjim školama još je gora jer nudi svega jednu godinu obvezne informatike u trajanju 70 sati i k tome kad djeca dođu u srednje škole, sve će morati ponavljati ispočetka budući da informatika u osnovnim školama nije bila obavezna, program srednjih škola mora pokriti sve, počevši s jednostrukim i dvostrukim klikom miša. Gdje i kako onda pronaći vremena za učenje programiranja? Osim učenika matematičkih gimnazija, učenici ostalih srednjih škola, programiranje tek spominju i to najčešće sve završava pseudojezikom bez praktičnog korištenja programskih jezika.

Stereotipi koji negativno utječu na percepciju i poimanje programiranja potječu unutrag dvadsetak godina, kada su aktualni programski jezici bili Fortran, Cobol, nešto mlađi jezici zastupljeni u školama Pascal, Basic…koji su iziskivali dugo vrijeme učenja a znamo da današnje generacije žele sve i to odmah. Uobičajena slika programera kako ju vidi većina učenika je osoba koja voli matematiku i računanje, može dugo sjediti i – zna biti čudna. Velik broj učenika smatra programiranje teškim, zahtjevnim poslom koje uzima puno vremena…Možda u svemu tome ima istine, i znamo da neće svi učenici postati programeri, kao što nisu svi učenici matematičari, jezikoslovci….međutim, nije li na nama nastavnicima odgovornost i obveza pružiti im mogućnost da zakorače u svijet programiranja i pokazati im drugačiji koncept i način zaključivanja, logičkog povezivanja, nadasve razmišljanja. Iz tog razloga, nužno je programiranje uvesti barem na „mala vrata“ i kroz nekoliko sati.

Programiranje ne mora biti teško za učenje.
Ako su dječji programi takvi da vide objekt koji se kreće na određeni način a samim time i rezultat svojeg kodiranja, djeca odmah znaju da su pravilno koristili kod. Za to je idealan vizualan programski jezik Scratch koji omogućava jednostavno stvaranje interaktivnih priča, igara i animacija, te dijeljenje radova preko Interneta. Ovaj alat izuzetno je dobar za upoznavanje sa svijetom programiranja bez stresa oko kompliciranih izraza jer omogućuje shvaćanje logike programiranja ako i nismo upoznati sa sintaksom i pravilima programskih jezika. Besplatan je i dostupan svima, korisničko sučelje je intuitivno te se kod pokretanja prikazuje i kratak tutorial koji nas vodi kroz elemente funkcionalnosti samog alata. Vizualizacija je realizirana kroz tri dijela: scena i dodatni vizualni objekti, paleta s instrukcijama te prostor gdje se instrukcije logički povezuju i upravo je to dio u kojem se odvija svo programiranje. Mogućnosti korištenja ovog alata su neiscrpne i idealan je za početke i uvod u sam proces programiranja. Ukoliko se učenici u osnovnoj školi sretnu sa programiranjem i ono kod njih izazove interes i želju za produbljivanjem znanja, nastavak se može realizirati u srednjoj školi kroz razne programske jezike poput C++, Java, Python. Učenje i razvoj sposobnosti programiranja može se provesti na kreativan i učenicima pristupačan način koristeći jednostavan, a opet cjeloviti programski jezik s kojim se mogu zadovoljiti sve potrebe današnjih koncepata i načina programiranja. Python je edukativan i metodičko- didaktički koncipiran programski jezik koji se može prilagoditi različitim uzrastima učenika. Omogućuje stjecanje znanja iz područja različitih (jednostavnih i složenih) programskih struktura tako da čini postupak učenja jasnijim i jednostavnijim. Kurikulum za učenje programiranja u programskom jeziku Python nastao je iz potrebe uvođenja novih koncepata učenja programiranja koji se ne mogu realizirati tradicionalnim programskim jezicima u sklopu Projekta IpaqPeta Afirmativna nastava i inovativno učenje i poučavanje u gimnazijama u okviru Hrvatskog kvalifikacijskog okvira. Sastoji se od modula i za svaki modul provedena je razrada jedinica ishoda učenja prema uputama za razvoj obrazovnih programa temeljem Priručnika za razvoj strukovnih standarda, zanimanja kvalifikacija i kurikuluma(studeni 2011.) i Metodologije izrade strukovnih standarda, zanimanja, kvalifikacija i kurikuluma (prosinac 2011.) proizašlih iz IPA projekta 2007-2009 Jačanje institucionalnog okvira za razvoj strukovnih standarda, kvalifikacija i kurikuluma EuropeAid127472/d/ser/HR i Hrvatskog kvalifikacijskog okvira (2009). Svaki od tri modula sadrži: naziv predmeta, ishode učenja koje će učenik steći u određenoj godini učenja, nastavne cjeline i razrađene nastavne teme, okruženje za učenje, metode i oblike rada, elemente i oblike praćenja i vrednovanja polaznika te literaturu za učenike. Okruženje i uvjeti za organizirano učenje sadrže uvijete koji su neophodni za ostvarivanje ishoda učenja korištenjem računalne i programske opreme. Na kurikulumu su radili autori: Saida Deljac i Predrag Brođanac iz V. gimnazije Zagreb, Marinko Zubac iz Gimnazije Metković i Sanja Pavlović Šijanović iz Gimnazije Vukovar te recenzent mr. sc. Ivana Turčić Prstačić (dostupno na ovoj poveznici).

Učenje programiranja je poput učenja stranog jezika na način da ga praktično koristimo i testiramo. Učenje jezika daje vještinu komunikacije s ljudima širom svijeta, a učenje programiranja daje mogućnosti iterativnog rješavanja problema i testiranja ideja koje olakšavaju shvaćanje i razumijevanje digitalnog svijeta koji nastanjujemo. Što više znamo, to je znatiželja i želja za prakticiranjem sve veća. Učenjem programiranja djeca postaju mislioci, kreatori i inovatori koji svoje ideje i radove oživljavaju i realiziraju. Steve Jobs- poznati vizionar i jedan od osnivača tvrtke Apple u jednom je intervju-u izjavio: „Mislim da svi u zemlji moraju učiti programirati jer na taj način uče razmišljati“. Ono djeci daje samopouzdanje i vjeru kako mogu postati dizajneri i stvaratelji. Na nama nastavnicima je obveza dokazati i pokazati kako programiranje nije „bauk“, otkloniti bezrazložni strah otkrivajući integraciju i implementaciju programiranja u svim područjima života. Vjerujemo da će Cjelovita kurikularna reforma i cjeloviti obrazovni sustav osigurati dovoljno prostora za provođenje programiranja u osnovnoj i srednjoj školi kako bi mi nastavnici svojim znanjem i entuzijazmom kvalitetno obrazovali buduće programere jer programiranje kao digitalna vještina predstavlja novu pismenost koju je potrebno učiti od malih nogu baš kao što učimo čitati, pisati i računati.

Programiranje, igre i motivacija

dominik_tomislav_vladic

Dominik Tomislav Vladić

Programiranje je u osnovnim školama područje koje učenicima omogućuje razvijanje načina razmišljanja i razvijanje logičkog mišljenja. Kod učenika je to posebno bitno jer razvijaju drugačiji način razmišljanja, postaju kreativniji u rješavanju zadataka i potiče ih se na samostalnost. U zadnje vrijeme se u javnosti često povlači pitanje: “Je li programiranje bitno u osnovnim školama?” Programiranje je važno ne samo za način razmišljanja nego i za upoznavanje učenika s alatima koji će im kada budu dio globalnog tržišta, postati jedan od osnovnih alata za rad.

U ranim fazama učenja informatike, to je jedno od područja koje ima poseban interes od strane učenika. Da bi im se približilo programiranje i objasnio proces nastajanja programa, učenici trebaju razumjeti apstraktnu razinu tog procesa. Danas nam aplikacije kao što je Scratch i web stranice kao code.org, nude prilično jednostavne načine na koje učenicima možemo objasniti relativno teške koncepte iz svijeta programiranja. Ne treba zanemariti činjenicu da u toj dobi učenicima postaje jasno ono što mogu vidjeti i ono što si na neki način mogu predočiti. Koncepti koje ne viđamo u svijetu oko sebe, ili ih ne možemo doživjeti na način kako bismo to kao nastavnici htjeli, trebaju im se objasniti kroz ono što je njima blizu. Uzmimo samo uvjetne ili bezuvjetne petlje, određivanje broja koraka koji će se realizirati kroz neku petlju, ili bilo koji drugi koncept s kojim se susreću prvi puta, postoji velika vjerojatnost da će se sve zadržati samo na razini reprodukcije. Nemogućnost povezivanja sa svijetom oko sebe zbunjuje i ne djeluje motivirajuće.

Da bismo bolje razumjeli kako to učenici doživljavaju, proveo sam anketu među učenicima u dvije faze. U prvoj su učenici bili anketirani u školskoj godini 2014./2015. i to nakon što je odrađen programski jezik Logo. Na uzorku od 47 učenika, 21 je izjavio da mu je taj dio nastavnog sadržaja bio jasan i bez većih poteškoća je sve svladavao. Ostali učenici bi bili zadovoljniji drugim područjem jer su smatrali da je ovo bilo dosadno i isticali su želju za igrama. Druga faza je bila provedena ove školske godine, ali nakon nekoliko sati korištenja alata Scratch. U odgovorima učenika je došlo do značajnijih promjena i sada smo imali 37 učenika od ukupno 49 kojima su ti nastavni sadržaji bili zanimljivi. Najveće promjene su se mogle uočiti u njihovom raspoloženju i zadovoljstvu nakon odrađenog zadatka, posebno u situacijama u kojima bi rezultat njihova rada bila manja igra koju su mogli pokazati ostalim učenicima iz škole. Među mlađim učenicima je zadovoljstvo bilo izraženo u većoj mjeri.

P1130625Slika 1. Prikaz anketiranih učenika prema odgovorima u školskoj godini 2014./2015.

P1130626Slika 2. Prikaz anketiranih učenika prema odgovorima u školskoj godini 2015./2016.

Početkom prosinca je većina anketiranih učenika sudjelovala u radionicama Sat kodiranja u mojoj školi. Kroz nekoliko radionica nije se moglo primijetiti nezadovoljstvo, a svi postavljeni zadaci su uspješno realizirani bez obzira na poteškoće koje je bilo koji od učenika imao u redovnom obrazovanju. Konačni učinak nije bio manji od očekivanog, a posebno zadovoljavajuća je činjenica da smo na kraju imali učenike koji su bili zadovoljni svojim radom. Bez obzira koliko su zadataka riješili, njima je bilo bitno da je ono što su napravili pokazalo nekakav rezultat koji su odmah mogli vidjeti. Ono što je također bitno, pritisak koji su povremeno mogli osjećati nije se javljao niti nakon drugog sata radionice.

Jedna slika govori više od tisući riječi, a to sigurno može potvrditi i svaka slika iz naše galerije koja je nastala na jednoj od nekoliko sličnih radionica tijekom prosinca. Slike se mogu pogledati na sljedećoj poveznici. Po zadovoljstvu sigurno ni malo ne zaostaju za nastavnim satima u kojima su učenici koristili spomenuti Scratch. Dakle, svaka tema se može odraditi na više načina, a na nama je da pokušamo biti što bliži učenicima i što kreativniji. Primjena različitih web aplikacija nam u tome može pomoći. Ipak i u tome treba imati mjeru jer pretjerivanjem možemo postići neželjene efekte. Dobar plan i vrijeme će nam dati optimalan omjer igre i naučenih sadržaja. A uz bolju motiviranost učenika i veću produktivnost u svakom smislu.

Nekoliko poveznica na aplikacije pomoću kojih se može učiti programirati na drugačiji način:

Scratch: https://scratch.mit.edu/
Frozen: https://studio.code.org/s/frozen/reset
Minecraft: https://code.org/mc

„EU Code Week“ u OŠ Dr. Ivana Novaka Macinec i OŠ Goričan

clip_image001

Alan Belak

U tjednu od 11. do 17. listopada ove godine održan je, drugi po redu, „EU (ili Europe) code week“. U školama, raznim klubovima i sl. unutar EU, ali i zvan nje, je održano preko 3000 različitih događanja/radionica. Stotine tisuća djece i odraslih okušali su se, neki po prvi put, u programiranju. Mnogi od njih su zaključili da to nije samo za mlađe ili samo za muški spol nego da im to otvara nove mogućnosti zapošljavanja i učenja u životu.

Ovim se žele popularizirati informatička zanimanja (već sljedeće godine će na starom kontinentu nedostajati oko 1 000 000 ljudi u ovom brzorastućem sektoru gospodarstva) kao i nastava informatike, kako u školama cijele EU, tj. Europe, tako i u Republici Hrvatskoj. Sve bi to trebalo usmjeriti više mladih prema, prvenstveno, programerskim radnim mjestima.

U OŠ Goričan su, u sklopu europske inicijative „Europe Code Week“, održane obje najavljene radionice zanimljivijeg pristupa programiranju. U jednoj je radionici blizu 40 učenica i učenika sedmih razreda u QBasicu crtalo složenije crteže raznih boja, dok su u drugoj radionici učenici petih i šestih razreda programirali (i igrali) svoju igricu napravljenu u Game Makeru 8.0. Svaka je radionica trajala dva školska sata. Po reakcijama učenika (razvidno sa slika ) se da zaključiti da im programiranje ne mora uvijek „teško pasti“. Tko zna, možda jednog dana dio njih „zaplovi“  programerskim vodama.

clip_image002clip_image003
Slika 1. i 2. OŠ Goričan

Na sličan način je tjedan programiranja obilježen i u OŠ Dr. Ivana Novaka Macinec iz Macinca. Ovdje smo, na radost učenika koji pohađaju izvannastavnu aktivnost informatike kod učiteljice razredne nastave Darinke Kirić, također održali prigodnu radionicu. Tema radionice prilagođena je učenicima drugih razreda osn. škole koji su uživali (pogledajte slike) u pisanju kraćih programa u QBasicu te ispisu svojih imena u raznim bojama, obojanim pozadinama, treperećim efektima i sl. Nije bilo učenice ni učenika koji nisu uspjeli, dakako, po potrebi, uz našu malu pomoć, izvesti svaku od vježbi. Bilo je zadovoljstvo vidjeti njihova mala lica koja bi prvo lagano se čudeći a zatim u širokom osmjehu popratila „rezultat“ svojih malih programa.

clip_image004clip_image005
Slika3. i 4. OŠ Dr. Ivana Novaka Macinec

Poveznice :

http://codeweek.eu/resources/
http://codeweek.eu/resources/croatia/
http://events.codeweek.eu/?past=yes#!HR
http://events.codeweek.eu/?past=yes
http://codeweek.eu/code/
http://blog.codeweek.eu/
http://www.youtube.com/watch?v=TNwE3FA4pdI
http://www.youtube.com/watch?v=ibutkt23h6A

Europski tjedan programiranja, 11.-17. listopada 2014.

ivana_ruzic

Ivana Ružić

Europski tjedan programiranja ili skraćeno #codeEU je inicijativa koju je pokrenula Neeile Kroes uz podršku DG Connect u Europskoj komisiji sa ciljem da se ljude potakne da uče programirati, da se svima nama pruži prilika da ostvarimo vlastite ideje i promijenimo svijet. Tehnologija oblikuje naše živote ali manjima odlučuje što ćemo i kako koristiti. Mi možemo učiniti puno više od korištenja, dijeljenja i „lajkanja“. Mi možemo ostvariti naše „lude“ ideje i izgraditi usluge i stvari koje će donijeti radost drugima. Promo videi:

Programiranje je kreativno područje koje svima nama nudi mnogobrojne mogućnosti da ostvarimo svoje ideje i zamisli. Ova inicijativa je usmjerena na djecu i mlade, nezaposlene osobe ali i na sve nas nudeći svima nama mogućnost da postanemo aktivni sudionici u kreiranju budućnosti čovječanstva ili osiguramo vlastitu egzistenciju. Treba li spomenuti da će do kraja 2015. u EU nedostajati 900.000 ICT stručnjaka?

Cilj inicijative je poboljšati programiranje na europskoj razini, motivirati ljude da počnu učiti programirati te povezati pojedince, skupine, ustanove, organizacije i tvrtke koje su spremni pomoći ljudima doživjeti radost i relevantnost programiranja.

Programiranje zaslužuje veću pažnju javnosti i stoga je organiziran prvi Europski tjedan programiranja sa željom da se organizira niz prigodnih događaja diljem Europe – sve sa ciljem upoznavanja građana s programiranjem kao i učeći ih ovu vještinu.

Između 25. i 30. studenog 2013. godine diljem Europe organizirano je preko 300 različitih prigodnih događanja u kojima se okupilo nekoliko desetaka tisuća sudionika. U Hrvatskoj su se u ovoj inicijativi okupile ukupno 64 osnovne i srednje škole, fakulteti i udruge sa gotovo 4000 sudionika, time smo po broju sudionika i događanja zauzeli drugo mjesto u Europi.

Razvoj svijesti o važnosti programiranja te poticanje na kontinuirano usvajanje novih znanja i vještina iz područja programiranja na europskoj razini nastavlja se pripremama i organiziranjem drugog Europskog tjedna programiranja koji će se obilježiti od 11. do 17. listopada 2014. Vlastita događanja i aktivnosti možete organizirati bilo kada, nije nužno da bude unutar navedenog tjedna.

Pozivamo sve da se uključe u inicijativu organiziranjem različitih prigodnih događanja povezanih s programiranjem, radionica, okruglih stolova i sličnih aktivnosti, da međusobno dijelimo primjere dobre prakse te ostvarimo suradnju između različitih postojećih ustanova, inicijativa i grupa. Upamtite: i dvoje je grupa!

Potrebna nam je vaša podrška u organizaciji događanja povodom tjedna programiranja! Željeli bismo i vas zamoliti da organizirate vlastiti događaj povodom drugog Europe Code Week. Čak ako vaš događaj nije usko povezan s programiranjem, biti će nam drago predstaviti ga. Kontaktirajte lokalnog ambasadora i registrirajte svoj događaj na našoj karti. Podijelite svoje primjere dobre prakse na našoj Facebook stranici. Doprinesite ovoj inicijativi vlastitim idejama!

Popis do sada prijavljenih ovogodišnjih događanja možete pronaći na ovoj poveznici, a popis prošlogodišnjih događanja u Hrvatskoj ovdje.

Tražite li online resurse za učenje programiranja? Pronađite nešto za sebe i svoje učenike na:

http://codeweek.eu/resources/
http://codeweek.eu/resources/croatia/
https://www.allcancode.com/
http://www.code.org/
http://
www.tynker.com/

Želite li upoznati društvene igre na otvorenom za učenje programiranja namijenjene najmlađim učenicima? Provjerite: http://www.magistra-nova.hr/pocetnica.html

Imate li vlastite online sadržaje za učenje programiranja? Pošaljite poveznicu kako bi ih objavili u popisu resursa na hrvatskom jeziku.

Upoznajte uspješne mlade programere širom Europe na: http://blog.codeweek.eu/ Poznajete li učenika, susjeda, rođaka koji se zaslužuje predstaviti kao uspješna osoba iz Hrvatske? Pošaljite nam njegove/njezine kontakte i pomognite da se zasluženo predstavi javnosti.

Europski tjedan programiranja Vas očekuje!

Kontakti:

http://codeweek.eu/
https://twitter.com/CodeWeekEU
https://www.facebook.com/codeEU
https://www.facebook.com/CodeWeekHr
ivana.ruzic@skole.hr

Raptor

vilim_jurkovic

Vilim Jurković

clip_image002Poučavanje programiranja zahtjevan je posao. Pogotovo kada tu kreativnu, inventivnu disciplinu treba prezentirati apsolutnim početnicima, jer edukator mora imati puno umješnosti kako približiti, vizualizirati logiku upravljanja radom računala. Tada se najčešće kreće sa crtanjem dijagrama tijeka, posve isto kao u vrijeme kada se programiranje poučavalo i bez računala u učionici – na papiru.

Iako postoji cijeli niz alata za crtanje dijagrama tijeka računalnog programa, postoji jedan koji je mnogo više od toga. Iza ikone izumrlog reptila i naziva Raptor skriva se zapravo razvojno okruženje za programiranje bazirano na dijagramu tijeka. Radi se o freeware-u razvijenom na US Air Force Academy, Department od Computer Science, a može se slobodno preuzeti na http://www.raptor.martincarlisle.com Na istoj se adresi nalazi i cijeli niz korisnih poveznica o ovome programerskom alatu.

clip_image003Crtajući dijagram tijeka u Raptoru učenici „oživljavaju“ nacrtani algoritam, vide njegovo izvršavanje i kroz interpretaciju lako uočavaju vlastite pogreške. Alat je izuzetno jednostavan i njime se može ovladati vrlo brzo, jer nije potrebno poznavanje složene sintakse. Sadrži tek mali set dobro poznatih simbola za crtanje dijagrama tijeka: ulaz, izlaz, dodjela vrijednosti, odluka, petlja i … poziv procedure. Doista, u Raptoru program jednostavno razlučimo na manje cjeline, procedure, te ih onda pozivamo u glavni program ( main ), pratimo njihovo pozivanje i izvršavanje. Svaka se procedura kreira u zasebnoj novoj kartici u razvojnom okruženju. Svoj dijagram tijeka jednostavno slažemo povlačenjem odgovarajućih simbola na odgovarajuće mjesto prema osmišljenome algoritmu.

Za pokretanje programa i upravljanje njegovim izvršavanjem koristimo tipke Play, Stop, Pause, Step to Next Shape, a po želji podesimo i brzinu izvršavanja. U vrijeme izvršavanja, na lijevoj strani u realnom vremenu, imamo pregled vrijednosti svih varijabli, a po završetku izlaz nam se ispisuje u glavnoj konzoli ( Master Console ). Na raspolaganju nam je upravljanje brojčanim i znakovnim vrijednostima koje možemo smještati i u polja. U Raptor su ugrađene sve standardne matematičke operacije, trigonometrijske funkcije kao i funkcije zaokruživanja te slučajnih brojeva.

clip_image005

Naravno, kako bismo ostvarili sve programske funkcionalnosti nužni su nam još i standardni relacijski i logički operatori koje Raptor također poznaje.

imageRaptor ima ugrađenu i pomoć i uredno će prijavljivati sintaksne pogreške, a za svaki će simbol ( naredbu ) otvoriti prozor pomoći. Zahvaljujući svim tim funkcionalnostima razvojnog okruženja učenik se minimalno opterećuje sintaksom i najveći dio svoje pažnje može usmjeriti na logiku programiranja. U tome mu jednostavno kroz primjere možemo pomoći i komentiranjem – uz svaki simbol dijagrama jednostavno možemo postaviti „balon“ sa tekstom komentara. Kada dijagram želimo ispisati možemo ga podesiti skaliranjem i pogledati pregled prije ispisa. Važna je i funkcija Print to Clipboard koja nam osigurava jednostavan izvoz crteža u aplikaciju za obradu teksta.

Raptor može doista pomoći u počecima učenja programiranja kada bi što više pažnje učenika trebalo biti usmjereno prema analizi problema, razlučivanju na manje segmente, razvoju logike i ispravne semantike, sa što manje opterećivanja sintaksom. Dijagram tijeka koji se crta olovkom oduvijek je bio na tom tragu, ali sada, zahvaljujući Raptoru, on može postati i pravo programersko razvojno okruženje. To je okruženje idealno i za samostalan rad učenika kod kuće, jer se u njemu svaka ideja vrlo jednostavno može i „oživjeti“ i testirati. A za sve one koji su pomislili da se ovdje radi o aplikaciji namijenjenoj isključivo početnicima izazov leži u Objektno orijentiranom modu rada koji može iz nacrtanog dijagrama tijeka generirati Java kod… Očito, Raptor može pružiti sasvim dovoljno izazova svima.

Europski tjedan programiranja: od 25. do 30. studenog 2013.

ivana_ruzic_thumb1

Ivana Ružić

Što je # codeEU?

4_thumb1#codeEU je inicijativa koju je pokrenula Neeile Kroes uz podršku DG Connect u Europskoj komisiji sa ciljem da se ljudi potaknu na učenje programiranja, da se svima nama pruži prilika da ostvarimo vlastite ideje i promijenimo svijet. Tehnologija oblikuje naše živote ali manjima odlučuje što ćemo i kako koristiti. Mi možemo učiniti puno više od korištenja, dijeljenja i „lajkanja“. Mi možemo ostvariti naše „lude“ ideje i izgraditi usluge i stvari koje će donijeti radost drugima. Nikada nije bilo lakše napraviti vlastitu aplikaciju, izgraditi vlastiti robota ili izmisliti leteće automobile, zašto ne? To nije lagan put ali je putovanje puno kreativnih izazova, zajednica koja pruža podršku i mnogo zabave. Jeste li spremni prihvatiti izazov i postati stvaratelj?

Zašto programiranje?

Programiranje je s3_thumb1vuda oko nas. Svaka interakcija između čovjeka i računala je podržana programskim kodom. Programiranje je puno više od mnoštva različitih alata, to je način gledanja na svijet: razdijeliti zadatke u sve manje podskupine. To je zabavno i kreativno područje ispunjeno velikim ljudima i strastvenom zajednicom. Treba li spomenuti da će 2015. u EU nedostajati 900.000 ICT stručnjaka?

Programiranje zaslužuje da se prigodno proslavi. Od 25. do 30. studenoga po prvi puta se obilježava Europski tjedan programiranja sa ciljem da se organizira niz događaja diljem Europe – sve s ciljem upoznavanja građana s programiranjem kao i učeći ih ovu vještinu. Naš cilj je poboljšati programiranje na europskoj razini, motivirati ljude da počnu učiti programirati te povezati pojedince, skupine, ustanove, organizacije i tvrtke koje su spremni pomoći ljudima doživjeti radost i relevantnost programiranja.

Zašto # codeEU?

Programiranje je zabavno. Kreativno. Njime se bavi mnogo poznatih ljudi i odlikuje se snažnom zajednicom. Jeste li već pomogli ljudima oko sebe da upoznaju ljepotu programskog koda? Uvijek je zabavno graditi, stvarati. Možda još niste uvjeriti svoje prijatelje, učenike, poznanike da pokušaju programirati. Jeste li spremni organizirati radionicu, razgovor i sl.?

Zajedno smo jači!

5_thumb1Dakle, ovo je cilj: povezivanje pojedinaca, grupa, ustanova i tvrtki, koji su u mogućnosti pomoći ljudima doživjeti radost programiranja. Uz vašu pomoć, možemo pokrenuti veliku vatru koja će se vidjeti izvan naših uobičajenih krugova. Požar toliko velik da ne može biti ignoriran od strane medija, bez obzira na najnovije celebrity tračeve. Znamo koliko je zabavno graditi stvari, a mi smo spremni dijeliti našu strast.

Europa ujedinjena programiranjem

Između 25. i 30. studenog 2013. godine diljem Europe organizirano je preko 300 različitih prigodnih događanja u kojima se okupilo nekoliko tisuća sudionika. Time je dokazano da je karta_thumb1Europski tjedan programiranja i službeno postigao veliki uspjeh. Najveći interes zabilježen je u Irskoj i Hrvatskoj. Karta svih prijavljenih prigodnih događanja dostupna je na ovoj web stranici.

Europski tjedan programiranja u Hrvatskoj

U Hrvatskoj su se u ovoj inicijativi okupile ukupno 64 osnovne i srednje škole, fakulteti i udruge sa gotovo 4000 sudionika. Održane su različite radionice programiranja: C++, Phyton, Small Basic, HTML, CSS, JavaScript, Game Maker, Kodu, Scratch,… ispisane su tisuće linija koda, radošću stvaranja ozarila su se mnoga lica, ostvarene su mnoge suradnje i vjerujemo da se zakotrljao veliki kotač koji će mnogim sudionicima inicijative ili onima koji će te to postati do slijedeće godine i novog Europskog tjedna programiranja donijeti mnogo novih znanja i vještina.

1_thumb5_thumb2

U I. osnovnoj školi Čakovec svečano je obilježeno središnja proslava Europskog tjedna programiranja prigodnim druženjem na kojem su bivši i sadašnji učenici škole predstavili svoje softverske radove. Na svečanosti su se okupili i učenicima izrazili svoju podršku inicijativi i daljnjem radu njihovi roditelji, braća i sestre, učitelji, ravnateljica škole Nevenka Šopar, predstavnici privatnih tvrtki i medija, gradonačelnik grada Čakovca Stjepan Kovač i župan Međimurske županije Matija Posavec.

Popis svih sudionika u Hrvatskoj pogledajte ovdje.

Jeste li spremni za izazov?

Posjetite nas, javite se i saznajte sve što vas zanima, potražite nas na: https://www.facebook.com/CodeWeekHr , https://www.facebook.com/codeEU?ref=profile ili se obratite predstavnici inicijative za Republiku Hrvatsku Ivani Ružić, I. osnovna škola Čakovec: ivana.ruzic@skole.hr. Motivacijsku video poruku gospođe Kroes povodom #codeEU pogledajte:

 

„Nećete požaliti krenete li učiti programirati. Programiranje je nova vještina, a programeri su nove rock zvijezde.“ Neelie Kroes