„Pisanje na leđima“

radionica prevencije nasilničkog ponašanja među učenicima

zoran_hercigonja

Zoran Hercigonja

Sažetak

U sklopu razrednog projekta „Prevencija nasilničkog ponašanja među učenicima“ provedena je radionica „Pisanje na leđima“ kojom se dotaknuo kontekst nasilja iz „zasjede“, gdje su učenici neizravnim putem izrazili svoja mišljenja i stavove o učenicima koji su sjedili do njih. Cilj ove radionice, bio je osvijestiti učenike o činjenici kako često neizravnim putem uzimamo preveliku slobodu nepromišljeno izražavajući svoja nezadovoljstva drugima ujedno vređajući te druge oko sebe. Radionica je također trebala omogućiti razvoj empatije i prosocijalnog ponašanja među učenicima te usmjeriti učenike u razvoju samopouzdanja i sigurnosti oko sebe.

Ključne riječi: prosocijalno ponašanje, nasilje, prevencija

Uvod

Međuvršnjačko nasilje u školskoj okolini, manifestira se na različite načine, najčešće kao fizičko maltretiranje i nanošenje fizičkih ozlijeda drugim učenicima. Fizičko nasilje prati također i poznati oblik verbalnog nasilja i zlostavljanja, koje se manifestira kroz izrugivanje, javno omalovažavanje, povredu dostojanstva osobe. Iako posotji više tipova međuvršnjačkog nasilja u školama; navedeni tipovi su najuestaliji. Na pojavu nasilja reagira se tek onda kada se pojave prve ozbiljne posljedice takvog ponašanja. Često ignoriramo ranije uzroke nasilničkog ponašanja ili njegove prvotne znakove koji su vrlo teško prepoznatljivi, a mogu biti od velike pomoći kod utvrđivanja nasiničkog ponašanja među učenicima. Škole se trude spriječiti pojavu nasilnog ponašanja među djecom u školi radom na primarnoj prevenciji razvijanjem prosocijalnog ponašanja uključivanjem učenika u suradnički i timski rad na nekoj aktivnosti kojom uče životne vještine. Školski stručni suradnici se također trude čestim intervencijama i projektima uključiti učenike u razvijanje samopouzdanja, potvrđivanja sigurnosti i stvaranja pozitivne slike o sebi. Uz spomenute intervencije, zanemaruju se neizravni načini izražavanja učenikovih stavova prema drugom učeniku. Učenici će mnogo jednostavnije izraziti svoje mišljenje i stav prema drugom učeniku neizravnim načinom izražavanja. Tako će biti lakše utvrditi trenutačno stanje samopouzdanja tog učenika i njegovu sigurnost u njega samoga. Upravo se tom problematikom bavila provedena radionica.

Materijali, ciljevi metode i tijek radionice

Radionica „Pisanje na leđima“ provedena je u VII. Osnovnoj školi Varaždin na satu razrednog odjela nad učenicima 6. razreda. Radionici je prisustvovala grupa od petnaest učenika 6. razreda. Radionica je dio razrednog projekta „PREVENCIJE NASILNIČKOG PONAŠANJA MEĐU UČENICIMA“.Temeljni ciljevi radionice, bili su povezani s ciljevima spomenutog razrednog projekta.

Ciljevi:

  • Spriječiti pojavu nasilnog ponašanja među djecom u školi radom na primarnoj prevenciji (razvijanjem samopouzdanja učenika i pozitivne slike o sebi, učenjem životnih vještina)
  • Razvijati empatiju i prosocijalno ponašanje te poticati druženje, suradnju i prijateljske odnose među učenicima
  • Informirati učenike i roditelje o vrstama i oblicima nasilja i zlostavljanja te o mogućim mjerama prevencije
  • Podučiti djecu kako ispravno reagirati na nasilje i zaštititi sebe i druge.

Temeljni cilj radionice bio je preko vođenih aktivnosti dovesti učenike do zaključka da se osjećamo moćnije i jače vrjeđajući druge te da je to odraz naše nesigurnosti, nedostatka samopouzdanja te da nam vrijeđanje služi kao paravan da bismo prikrili svoej slabosti i sigurnost u same sebe.

Materijali i metode:

Za ostvarenje navedene radionice bilo je potrebno:

  • petnaestak papira u boji,
  • selotejp traka
  • flomaster za pisanje
  • plave omotnice
  • bijeli origami ukrasi u obliku golubice.

Tijek aktivnosti:

Petnaest učenika 6. razreda od čega deset učenica i pet učenika sudjelovali su u radionici. Najprije su razmjestili školske klupe i stolice posložili u krug. Između stolaca su ostavili dovoljan razmak tako da su se mogli okretati oko stolca za 180°. Učenici su mogli birati pokraj koga će sjediti u aktivnostima radionice.

Prva aktivnost

Prva aktivnost je bila uzajamna masaža žeđa. Učenici su se okrenuli najprije svojem desnom susjedu i laganim pokretima ruku masirali leđa otvorenih dlanova. Prilikom provedbe ove aktivnosti, vladao je blagi žamor i smijeh. U istoj vježbi učenici su se okrenuli do svojeg susjeda ulijevo i nastavili blagu masažu leđa. Atmosfera je bila vrlo ugodna i vladao je blagi žamor.

Druga aktivnost

Nakon te vježbe, učenici su se trebali ponovno okrenuti svojem desnom susjedu i grubljom masažom masirati leđa susjeda stinutih šaka. Istu radnju, ponovili su i okrenuvši se susjeud slijeva. Atmosfera blagog žamora je postepeno prelazila u negodovanje, nezadovoljstvo i grube komentare pojedinih učenika.

Treća aktivnost

Po završetku te aktivnosti, učenici su se vratili u prvotni položaj. Svakome od njih, razrednik je podijelio jedan A4 papir u boji, selotejp traku i flomastere za pisanje. Učenci su trebali svojem prvom susjedu na leđa nalijepiti papir i čekati daljnje upute.

Četvrta aktivnost

Nakon uspješnog pričvršćivanja papira na leđa, učenici su se trebali okrenuti lijevom susjedu i napisati prvu asocijaciju vezanu za osobu ispred sebe na papir na leđima. Nakon toga su se okrenuli desnom susjedu i ponovili istu proceduru.

Tada je uslijedilo pitanje od strane razrednika: „Kako se sada osjećaš kada ti netko piše po leđima?“ Na to pitanje su učenici odgovarali pojedinačno u krugu. Najčešći odgovor je bio: „Osjećam se glupo“. No pokreti učeniak su govorili nešto drugo. Učenici su bili dosta uznemireni i nesigurni. Uslijedilo je i drugo pitanje: „Čega se najviše bojiš da ti piše na leđima?“. Na to pitanje učenici nisu odgovarali. Izmotavali su se i tražili način kako bi izbjegli to pitanje. Pokreti učenika odavali su nervozu i uznemirenost.

Peta aktivnost

Po završetku te aktivnosti, učenici su svojem susjedu s desna trebali na leđa napisati što žele promijeniti na osobi ispred sebe (Što želiš promijeniti na drugome ispred sebe?). Isto su trebali ponoviti i na susjedu s lijeva.

Šesta aktivnost

Nakon te aktivnosti uslijedilo je čitanje sadržaja listića. Svaki učenik je u krugu na glas pročitao sadržaj lista skinutog s leđa. Odgovori na pitanje „Što želiš promijeniti na drugome ispred sebe?“ najčešći odgovori su bili: Želim da promijeni majicu jer jo bolje stoji plava…Želim da češće igramo nogomet…Ništa. Odgovori su se odnosili najčešće na neke uobičajene stvari poput odijevanja, izgleda i druženja, a opet neki su napisali samo Ništa da bi se što prije riješili pitanja. Kada smo se vratili na raniji sadržaj gdje su učenici trebali napisati prvu asocijaciju vezanu za osobu ispred sebe, postali su uznemireni. Poneki učenici suodbijali pročitati sadržaj papira. Pregledom tog sadržaja, došlo se do zaključka da je sadržaj bio uvredljiv i nanosio povredu osobe. Naravno nije se radilo o neprimjerenom rječniku, ali je sadržaj odražavao vrlo neugodne i uvredljive misli o drugim učenicima.

Taj sadržaj nastavnik nije pročitao na glas zbog zaštite osobe svakog pojedinog učenika. No on je postao vrlo dobar materijal prema kojem su vodile aktivnosti radionice. Nastavnik je na temelju toga vodio razgovor s učenicima kako se ponekad osjećamo moćnije i jače vrijeđajući druge te da to često predstavlja paravan i dokaz da tako skrivamo vlastitu nesigurnost i slabosti. Nakon toga sus uslijedila pitanja kojima se smanjila napetost među učenicima: „Jeste li mislili da je to što ste napisali moglo povrijediti nekoga?“ i „Možemo li se šaliti, a da pritom ne povrijedimo druge? “. To su bila pitanja nad kojima su učenici razmišljali.

Sedma aktivnost

Za kraj učenici su dobili plave omotnice u kojjima se nalazio origami ukras bijele golubice, simbol mira i praštanja. Učenici su trebali na krilo golubice napisati „poruku mira“ i u plavoj omotnici darovati odabranoj osobi unutar kruga.

Zaključak

Provedena radionica, vrlo je uspješno odrađena s važnom porukom: „Vrijeđanje drugih služi kao paravan iz akojega skrivamo vlastitu nesigurnost i slabost.“Također učenici su se suočili s neizravnim oblikom nasilja. Iskusili su osjećaj krivnje, grižnju savjest zbog sadržaja koje su uputili učenicima ispred sebe. Radionica je bila jedan praktičan način za demonstraciju nasilja prije manifestacije istog s ozbiljnim posljedicama na štetu učenika. Cilj ove radionice: osvijestiti učenike o činjenici kako često neizravnim putem uzimamo preveliku slobodu nepromišljeno izražavajući svoja nezadovoljstva drugima ujedno vređajući te druge oko sebe u potpunosti je ostvaren s pozitivnim rezultatom.

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.]

2. Međunarodna sportsko-obrazovna konferencija

zoran_hercigonja

Zoran Hercigonja

Uvod

clip_image002U Varaždinu je uspješno odrađen projekt 2. Međunarodne sportsko-obrazovne konferencije koju organizira Druga gimnazija Varaždin. Konferencija je sufinancirana od strane Ministarstva znanost i obrazovanja Republike Hrvatske u sklopu Natječaja za potporu međunarodnoj suradnji osnovnih i srednjih škola sa školama iz europskih zemalja koje ne sudjeluju u Programu za cjeloživotno učenje.

Slika 1. Poster konferencije

Konferencija je trajala ukupno tri dana od 23.08. do 26.08. 2017. godine. Ovogodišnja je konferencija, namijenjena učenicima i nastavnicima srednjih škola i sportskih gimnazija, ravnateljima, predstavnicima školskih sportskih saveza, zemalja Slovenije, Bosne i Hercegovine i Srbije i drugim srodnim institucijama koje u svom djelokrugu imaju institucionalni odgoj i obrazovanje. Glavni cilj organiziranja Konferencije kao specifičnog obrazovnog, odgojnog, kulturnog i sportskog susreta jeste obrađivanje tema iz područja građanskog odgoja i obrazovanja.

clip_image003
Slika 2. Partner škole

U ostvarenju ovakvog opsežnog projekta, sudjelovale su škole iz Slovenije, Bosne i Hercegovine i Srbije redom: Druga gimnazija Varaždin; Peta gimnazija Sarajevo, Bosna i Hercegovina; Gimnazija Šiška, Ljubljana, Slovenija; Srednja škola A.B. Šimića, Grude, Bosna i Hercegovina; Katolički srednjoškolski centar Banja Luka, Bosna i Hercegovina; Druga ekonomska škola Beograd, Srbija.

clip_image005
Slika 3. Instiucionalni i medijski partneri konferencije

Osim partnera škola, u ostvarenju konferencije, sudjelovale su sljedeće institucije:

Ministarstvo znanosti i obrazovanja Republike Hrvatske, Agencija za odgoj i obrazovanje, Hrvatski sabor, Varaždinska županija, Grad Varaždin, MUP Varaždin, Hrvatski školski sportski savez, Školski sportski savez Varaždinske županije, Institut za razvoj tržišta rada, Udruga veterana 7. gardijska brigada PUMA, Udruga» Navijajmo zajedno», clip_image007Udruga «Pametna špica», Županijski nogometni savez Varaždinske županije, Plesna škola Varaždin, NK Varaždin,Ženski rukometni klub Koka Varaždin, Humanitarna udruga «Prijatelj malog doma».

Slika 4. Logo konferencije

Konferencija je provođena pod logotipom tri kruga u pretapanju naziva izvedenog iz inicijala naziva konferencije M.S.O.K. U nazivu MSOK smještena je lopta koja simbolizira sport i ikona studenta koji simbolizira obrazovanje. Za potrebe konferencije, osmišljena je i web stranica: msok.webnode.hr kreirana na besplatnoj platformi webnode. Na stranicama konferencije, moguće je pronaći detaljnije podatke o odravanju konferencije.

Konferencijska događanja

Konferencijske aktivnosti, raspoređene su u vidu pozdravnih govora i predavanja, tribine, radionica i okruglog stola za ravnatelje škola partnera. Konferencijske aktivnosti, provođene su na dvije destinacije: Palača Varaždinske županije i prostori Druge gimnazije Varaždin.

Dana 24. kolovoza u Palači Varaždinske županije održani su pozdravni govori i predavanja od kojih valja istaknuti: župana Radimira Čačića, gradonačelnika Ivana Čehoka, dožupana Tomislava Paljaka, ravnatelje škola partnera iz Slovenije, BiH i Srbije i njihovo predstavljanje škola, dr.sc. Sašu Petara, dr.sc. Miroslava Huđeka, mr. Olgicu Martinis, Tatjanu Novak, Ružicu Šimunović. Teme izlagača bile su vezane uz građanski odgoj, dobre prakse provođenja sportskih programa u školama, zdravi život i zajednički projekti na području grada Varaždina i šire te mnoge druge teme koje se tiču osposobljavanja mladih za tržište rada i osiguravanja budućnosti¸kroz djelovanja u centrima za izvrsnosti.

clip_image009

Slika 5. Pozdravni govori i izlaganja u Skupštinskoj dvorani Varaždinske županije

Istog dana u prostorima škole Druge gimnazije Varaždin, održana je edukativna tribina pod nazivom „Pametna špica“ na temu Za što danas obrazujemo učenike? kojoj su nazočili nastavnici i učenici Druge gimnazije Varaždin, učenici škola partnera i ravnatelji škola partnera.

Drugog dana konferencije, u prostorima Druge gimnazije Varaždin, održane su radionice u tri edukativna modula. Radionice su bile namijenjene nastavnicima i ravnateljima škola partnera. Također je odrađena i radionica za učenike u sklopu projekta „Navijajmo zajedno“.

  • Modul I. Zdravi životni stilovi [nositeljica modula: mr. Olgica Martinis ]
  • Modul II. Mobilnost i poduzetničke kompetencije nastavnika u 21. stoljeću [nositelji modula:mr.sc.Tomislav Ogrinšak, Nevenka Lončarić-Jelačić, prof.]
  • Radionica: Osiguranje bolje razvojne i karijerne perspektive učenicima kroz projektne suradnje u zajednici [nositelj:Antonio Matković, glavni tajnik Instituta za razvoj tržišta rada]
  • Modul III: Slobodno vrijeme učenika i školski sport [nositelji modula: Jozo Škegro, prof., mr.Olgica Martinis]
  • Radionica za učenike: Uloga zajedništva u navijanju na sportskim terenima [nositeljica: Morana Delač]

Kao završetak svih aktivnosti, održan je okrugli stol kojem su prisustvovali ravnatelji srednjih škola partnera.

Zaključak

Projekt 2. Međunarodne sportsko-obrazovne konferencije poziv je na zajedničko kontinuirano djelovanje kako bi ojačali asertivne stavove u vidu savladavanja prepreka i izazova modernog vremena i budućnosti koja donosi neprestane promjene.

Grafičko 3D modeliranje pomoću alata Blender i SketchUp

zoran_hercigonja

Zoran Hercigonja

Sažetak

Informatička pismenost ne podrazumijeva samo uspješno korištenje aplikacija za obradu teksta ili slike kreativno nizanje programskog koda, već i pismenosti na području grafičkog modeliranja. Razvoj estetskih vrijednosti te poticanje razvoj kulture stvaranja je isto tako dio informatičkog opismenjivanja. Upravo stvaralačke i dizajnerske vještine učenici će steći kroz razvoj kutlure stvaranja. Stoga je ovim radom dati prikaz upotrebe dva besplatna alata za grafičko modeliranje odnosno za izradu 3D modela. Učenici su sa svojim vlastitim iskustvima i radom u aplikacijama Blender 2.74 te SketchUp 2016 pokazali preciznost i stvaralačko dizajnerske vještine. Također grafičkim modeliranjem, učenici usvajaju koncept apstraktnog razmišljanja koji je potreban za savladavanje problematike rada i stvaralaštva u 3D modeliranju i računalnoj grafici.

Uvod

Računalna znanost često biva shvaćena kao čisto programski orijentirana znanost to jest znanost orijentirana na isključivo pisanje programskog koda. Programiranje je doista ključno za informatičku znanost jer se pomoću njega stvara niz korisnih aplikativnih softvera za svakodnevnu i širu upotrebu. Brojne aplikacije, rezultat su promišljenih i osmišljenih algoritama napisanih u nekom od poznatih programskih jezika. No računalo se ne koristi samo za pisanje programskog koda ili za računanje. Jedna od vrlo zahtjevnih uloga računala je i crtanje pomoću računala odnosno grafičko modeliranje. Stvaranje gotovih modela koji se primjenjuju u različitim simulacijama i animacijama, spada među najzahtjevnije oblike bavljenja računalnom grafikom. Posebno teško je postići visoko realne reprezentacije objekata zbog velikog broja faktora koji utječu na izgled završnog modela. Crtanje pomoću računala (grafičko modeliranje) omogućava da se kreirani 3D modeli dijelova i sklopova, u skladu s pravilima tehničkog crtanja prevedu u 2D projekcije.[1] Takvi modeli se najčešće koriste u industrijama u svrhu provođenja određenih simulacija i testiranja nekog procesa ponajviše zbog racionalne upotrebe materijala. To znači da se na vjerodostojnom grafičkom modelu mogu testirati uvjeti iz okoline i na taj način uštedjeti resursi. Dakle modeliranje predstavlja proces kreiranja površina s trodimenzionalnim svojstvima unutar računala, radi kasnijeg renderiranja u sliku ili niz slika.[2] Kod 3D modeliranja je bitno da se stvori model vjerodostojan stvarnom objektu iz okoline. Modeliranje spada među najzahtjevnije oblike bavljenja računalnom grafikom i vizualizacijom, posebno radi toga što je teško postići realne prikaze objekata, zbog velikog broja parametara koji utjeću na izgled završnog modela ili renderera.[2] Za ostvarenje grafičkog modeliranja, postoji mnoštvo alata poput Autodesk ImageModeler-a i Photo Scene editor-a. Naravno to su profesionalni komercijalni alati. Kod upotrebe alata u eduakcijske svrhe, naglasak je da su alati besplatni. U tu svrhu u radu su korišteni besplatne inačice alata Blender 2.74 i SketchUp 2016. Grafičko modeliranje je vrlo zahtjevno računalno umijeće baš poput programiranja. Programiranje samo za sebe podrazumijeva određeni specifični način razmišljanja i izražavanja vlastitih ideja. Grafičko modeliranje ili izrada 3D modela je isto tako jedan važan vid izražavanja stvaralačkih ideja i razmišljanja. Osim toga učenik time stječe osjećaj za estetiku čime se usvjajaju vrijednosti estetskog odgoja, zatim razvoj kulture stvaranja. Grafičko modeliranje ima u računalnoj znanosti važan udio digitalne pismenosti kao i programiranje. U radu su prikazani rezultati korištenja dva besplatna alata za grafičko modeliranje ili 3D modeliranje.

Alati za 3D modeliranje

U svrhu izrade 3D modela, odabrana su dva alata za grafičko modeliranje 3D modela. To su besplatni alati Blender 2.74 i SketchUp 2016. Iako je jedan od kriterija za odabir alata bio taj da je alat besplatan, veći naglasak je stavljen na izradi kvalitetnog 3D modela te jednostavno rukovanje alatom. To su bili kriteriji odabira alata. Konzultirajući preporuke i ocjene korisnika pojedinih besplatnih alata za 3D modeliranje, odabrani su Blender 2.74 i SketchUp 2016. Vjerodostojni opisi iskustava korisnika u radu s ovim alatima opisanim na internetu bili su razlog zašto su baš odabrana ova dva alata. Naravno osim spoemnutih alata za 3D modeliranje postoje i drugi bespaltni alati poput Softimage|XSI Mod Tool i K-3D. No opisi njihovih svojstava nisu odgovarali kriterijima jednostanog rukovanja i izrade kvalitetnog 3D modela.

Blender 2.74

Blender je open source paket koji se pretežito koristi za izradu animiranih filmova, vizualnih efekata, 3D modeliranje, izradu 3D modela za printanje na 3D printerima, te u industriji koja se bavi izradom računalnih igrica [3]. Nudi široki spektar alata, uključujući modeliranje, renderiranje, animacije, video uređivanje, VFX compositing, mnoge vrste simulacije i igre stvaranja [4]. Moguće ga je preuzeti ovdje bez prethodnih registracija ili prijava. Blender 2.74 alata za 3D modeliranje predstavlja desktop inačicu alata. To znači da prije rada s njime, potrebno je instalirati ga na vlastito računalo, a tek nakon instalacije pokrenuti. Sam proces instalacije je vrlo kratak i traje nekoliko minuta. Vrlo zapanjujuća činjenica je da Blender 2.74 ima svega 115 MB kada se instalira. Jako mali program, no moćniji od nekih koji su i 10-20 puta veći od njega. Blender podržava više platofrmi to jest operacijskih sustava. Moguće ga je instalirati na na Linux, Mac OS X, MS Windowse i FreeBSD (na 32 i 64 bitne verzije).

clip_image002Slika 1. Blender 2.74. glavno sučelje

clip_image004Blender dolazi s internim sustavom za renderiranje, mogućnošću osjenčavanja objekata, dodavanja sjena i ambijenta kako bi se dobio što bolji dojam. Osim alata za modeliranje, Blender donosi i alate za animiranje, simuliranje dinamičkih događaja, alate za izradu efekata. Moguće ga je koristiti i u kombinaciji s programskim jezikom Python za pisanje skripti, logike za igrice, skripte za importanje/eksportanje datoteka, konverziju iz jednog formata u drugi.

Slika 2. Kartica Create s geometrijskim tijelima

Glavno sučelje prikazano na slici 1 sastoji se od tri ključne komponente. Prva komponenata se nalazi s lijeve strane u stupcu s karticama Tool, Create, Relations, Animation, Physics. Te kartice služe prvenstveno za manipulaciju 3D objektima poput dodavanja veza, stvaranje animiranih pokreta, dodavanje novih 3D objekata ili dodavanej sjena i svjetline. Na slici 2 je primjerice prikazana jedna kartica Create s gotovim geometrijskim tijelima. Važno je za napomenuti da Blender 2.74 ima deset gotovih geometrijskih tijela nad kojima je moguće vršiti oblikovanja i manipulacije.

clip_image006
Slika 3. Alatna traka za oblikovanje 3D modela

Drugi bitan dio ove aplikacije je alatna traka za oblikovanje ili editiranje. Na njoj se nalaze opcije prikaza pojedinog objekta. Moguće je odrediti kuteve nagiba pojedinog objekta, stvoriti prikaz sa strukturom, prikaz s odabranim materijalom, odrediti pogled kroz objekt s takozvanim X-ray zrakama. Alatna traka pruža i mogućnost oblikovanja objekta preko clip_image008takozvane mreže. Cijeli objekt se prekrije mrežom. Ta mreža objekt raspodijeli na niz malih kvadratića koje je moguće samostalno oblikovati i mijenajti u skladu s potrebama. Alatna traka pruža i mogućnost slobodne transformacije ili transformacije pomoću upisivanja parametara.Tako upisivanejm preciznih parametara, korisnik može odrediti radijus kruga, visinu pojedinog brida kocke ili piramide. Na traci se nalaze i alati za precizno produljivanje ili sužavanje objekta po tri osi koordinatnog sustava (x, y, z).

Slika 4. Povijest svih aktivnosti i objekata

Treći i najvažniji dio ovog alata podrazumijeva popis svih događaja to jest aktivnosti i korištenih objekata. Dakle sve aktivnosti i svi korišteni elementi i objekti su prikazani na jednom popisu kojeg možemo nazvati povijest događaja. Na tom popisu možemo preimenovati pojedini objekt, izbrisati određeni događaj ili jednostavno prnaći odreeni objekt ukoliko dođe do konfuzije na radnoj površini.

SketchUp 2016

SketchUp 2016 je besplatna inačica alata za 3D modeliranje a koristi se u arhitekturi, uređenju interijera, civilnom i mehaničkom inženjerstvu, filmovima, gaming industriji [5]. Kao i Blender 2.74 i SketchUp 2016 je desktop inačica koju je potrebno instalirati prije clip_image010konačnog pokretanja i korištenja. Podržava rad na vieš platformi poput Windows 7, Winows 8, Windows 10, Linux i Mac OS operativnim sustavima. Veličina datoteke prilikom preuzimanja iznosi 124,40 KB. Kao besplatna inačica prije preuzimanja zahtijeva registraciju, unos e-mail adrese te drugih osobnih podataka (vidi slika 5).

Slika 5. Obrazac registracije za preuzimanje SketchUp 2016

Nakon ispunjenja obrasca za registraciju potrebno je potvrditi pristiglu e-mail poruku od clip_image012administratora SketchUp stranice. Potvrdom te poruke, započinje proces preuzimanja aplikacije. Postupak instalacije nije zahtjevan i zahtijeva osrednje znanje za instalaciju i pripremu aplikacije za rad.

Slika 6. Radno sučelje SketchUp 2016 aplikacije

Sučelje ove apliakcije (slika 6) je vrlo jednsotavno i intuitivno za korištenje. Sastoji se od radne površine koja je zaznačena trima osima koordinatnog sustava (x, y, z) te alatne trake pri vrhu sučelja aplikacije.

clip_image014
Slika 7. Alatna traka SketchUp 2016 aplikacije

Alatna traka se sastoji od nekoliko glavnih skupina alata. U prvu skupinu pripadaju alati za kreiranje i crtanje. Tu se nalaze alati za crtanje geometrijskih likova poput poligona, kruga i pravokutnika, zatim alati za crtanje kuteva i polukrugova. Važno je nclip_image016aglasiti da SketchUp 2016 nema gotovih 3D objekata odnsno geometrijskih tijela poput Blender 2016 alata (vidi slika 8).

Slika 8. Grupa bazičnih geometrijskih likova

Bazični objekti kojima raspolaže su geometrijski likovi koje je moguće zatim oblikovati pomoću druge skupine alata. Druga skupina alata podrazumijeva alate za oblikovanje. U prvom redu to je alat za izvlačenje baze geometrijskog lika po z-osi koordinatnog sustava. Uz njega nalazi se alat za određivanje debljine unutarnjeg zida nego objekta. U istoj grupi alata , anlazi se i oblikovanje naziva Scale koje omogućava ukošavanje čitavih objekata ili pojedinih zidova isith objekata. Treća grupa alata su alati za izmjere, indeksirano označavanje, bojanje i prostornu manipulaciju objektima i radnom površinom. Uz alate treba spomenuti i precizan unos koordinata pojedinog objekta unosom vrijendosti u x,y,z os koordinatnog sustava.

Provedeno testiranje i rezultati

Metode i materijali

Cilj provođenja ovog istraživanja je bio razvoj preciznosti i vještina stvaranja vjerodostojnog modela koji odgovara stvarnom objektu. Uz to cilj je isto tako bio poticanje razvoja kulture stvaranja i utvrđivanje digitalne pismenosti na području grafičkog modeliranja. Učenici vrlo često potcjenjuju proces 3D modeliranja i ne razumiju da je za stvaranje vjerodostojnog modela potrebna vrlo visoka preciznost i puno apstraktnog razmišljanja koje njima nedostaje. Istraživanje je provedeno u sklopu izbornih sati nastave informatike nad grupom učenika 1, 2, 3 i 4 razreda. Radilo se o mješovitom razredu na izbornoj nastavi infrormatike. U radu je sudjelovalo ukupno dvadeset (20) učenika podijeljenih u dvije grupe od po deset (10) učenika. Grupe su se sastojale od učenika s osrednjim znanjem modeliranja. Zapravo znanje učenika je bilo više usmjereno znanju rada u Photoshop, Gimp i Paint apliakcijama. Svaka grupa je radila u jednom alatu. No unutar manje grupe od 10 učenika, učenici su radili u parovima. Za provedbu cjelokupnog rada, bilo je potrebno šest (6) školskih sati od čega je dva sata otpalo na upoznavanje i učenje osnovnih funkcionalnost rada s aplikacijama Blender 2.74 i SketchUp 2016. Četiri sata (4) je utrošeno na izradu rješenja zadatka. Zadatak je bio jednak za sve učenike. Svi učenici su trebali u jednom od dva alata izraditi 3D model šalice za kavu držeći se precizno zadanih mjera. Mjere su bile slijedeće: Dno šalice promjera = 0.8 centimetara, visina tijela šalice = 3,5 centimetara, izbočenost tijela šalice radijusa 1.05 centimetara i otvor šalice 0.9 centimetara. Šalica mora imati ručku saviejnu u obliku slova C debljine 0.2 centimetra.

Rezultati

Učenici su vrlo uspješno obavili zadatak u trajanju od 4 školska sata. Predviđena 4 školska sata su bila dovoljn za izradu ovog modela. Modeli šalice su kreirani prema točno određenim kriterijima i mjerama. Učenici u obje grupe, pokazali su iznimnu razinu strpljenja i preciznosti kod izrade 3D modela. Intervencije nastavnika prilikom izrade zadatka su bile minimalne, a ticale su se prvenstveno tehničkih pitanja oko pokretanja aplikacije i spremanja datoteka. Učenici su bili vrlo motivirani i kreativni u radu s ovim apliakacijama što pokazuje da je nekolicina koja je završila model šalice željela samoinicijativno krenuti kreirati nove modele poput tanjurića i žlice, ali to nije bilo obuhvaćeno u predviđenom vremenu. Tu bi se sa suigurnošću moglo reći da su počeli razvijati kulturu stvaranja i usvajati estetske vrijednosti.

clip_image018
Slika 9. Model šalice izrađen u Blender 2.74

Učenici koji su radili u Blender 2.74 aplikaciji, bili su vrlo snalažljivi i promišljeni. Naime radili su na način da su uzeli gotovo geometrijsko tijelo (valjak) i potom ga oblikovali putem zadanih mjera. Učenici koji su radili u Blenderu izjavili su da je bilo iznimno lako oblikovati šalicu zbog opcije prekrivanja objekta mrežom. Objekt prekriven mrežom, bio je podijeljen u splet čvorova što je omogućilo izglađivanje rubova i precizno oblikovanje modela.

clip_image020Slika 10. Model šalice izrađen u SketchUp 2016

Učenici koji su radili u SketchUp 2016 aplikaciji, suočili su se s problemom oblikovanja pojedinih dijelova šalice. Morali su raditi dio po dio šalice i na kraju ga spojiti u cjelinu. Učenici su u SketchUp 2016 gradili model od dna prema vrhu. Svaki dio koji su izvukli iz bazične strukture, morali su oblikovati preciznim određivanjem mjera. To je bilo malo otežavajuća okolnost u odnosu na način rada u Blender 2.74 aplikaciji. Izuzev poteškoća obje grupe učenika su stvorile vjerodostojni model šalice za kavu. Pri određivanju kvalitete pojedine aplilkacije, učenici su se složili da je Blender 2.74 aplikacija kvalitetnija zbog mnoštva mogućnosti kojima ne raspolaže SketchUp2016.

Zaključak

Izrada 3D modela u aplikacijama Blender 2.74 i SketchUp 2016 pokazala je zadovoljavajuće rezultate. Postignuta je zadovoljavajuća razina motiviranosti učenika za rad i kulturu stvaranja. To se najbolje vidi kod učenika koji su nakon izrade modela šalice samoincijativno htjeli krenuti na izradu 3D modela tanjurića i žlice. Učenci su vrlo precizno izradili modele držeći se svih propisanih mjera određenih zadatkom. Osim što su proširili znanja iz 3D modeliranja, učenici su usvojili i vrline strpljivosti i preciznosti. Osim toga stvorili su i specifičan ančin apstraktnog razmišljanja što je vidljivo kod učen ika koji su radili u apliakciji SketchUp2016 gdje su vrlo snalažljivo šalicu izgrađivali dio po dio koji su morali vrlo precizno nadograditi na prethodni dio i spojiti u cjelinu a da se pritom ne vide spojevi ni utori. Učenici su osim stečenih vještina 3D modeliranja i proširili svoja znanja iz područja dizajna.Što se tiče samih aplikacija, pokazale su se izrazito korisnim i kvalitetnim, a Blender 2.74 apliakcija je bila ocjenjena kao vrlo kvalitetna apliakcija za 3D modeliranje zbog mnoštva mogućnosti koje nisu podržane u SketchUp 2016 apliakciji. U svrhu popularizacije 3D modeliranja, bilo bi potrebno kreirati online apliakcije za 3D modeliranje kojima bi se moglo pristupiti bez pirpreme i instalacije na određenu platformu.

Popis literature

  1. Nurdin Č., 3D modeliranje zaštitne navlake, dekorativnog poklopca, držača ručice i ručice automobilskog mjenjača [pristupano 26.07.2016.]
  2. Baričević S., Žižić I. 3D modeliranje i generiranje oblaka točaka pomoću Autodesk ImageModeler-a i Photo Scene editor-a [pristupano 26.07.2016.]
  3. PC CHIP-stranica s najpopularnijim bespaltnim softverima za 3D modeliranje [pristupano 26.07.2016.]
  4. Službena stranica Blender 2.74 alata [pristupano 26.07.2016.]
  5. Službena stranica SketchUp 2016 [pristupano 26.07.2016.]

Učenje putem online simulatora

zoran_hercigonja

Zoran Hercigonja

Sažetak

Vrlo često se čuje da mlade ljude treba pripremiti za odgovorno obavljanje svojih dužnosti i djelatnosti. Zato im moramo dati priliku da izošrte svoje vještine i razviju sposobnosti. Najčešće je takav put financijski vrlo zahtjevan zbog zbog troškova uloženih sredstava. Učenje putem simulatora je prilika da mladi ljudi rade na sebi postižući osobnu izvrsnost. Potrebno je ponuditi rješenja u obliku kontrolirane okoline u kojoj je moguće predvidjeti posljedice određenog rada i poduzimanja aktivnosti. Jedan od takvih puteva je i upotreba online simulatora.

Ključne riječi: Autodesk 123D, Kontrolirani uvjeti, Online Simulator, Tehnička zanimanja,

Uvod

Svakodnevno smo svjedoci da je obrazovanje djece najskuplja investicija ljudskog društva, pogotovo ako se inzistira na tome da na tržište rada dolaze kvalitetno obrazovani mladi ljudi. Kontroliranim uvjetima ili računalnim simulacijama mladima omogućujemo da uče na svojim pogreškama te paralelno s tim razvijaju pozitivan stav prema radu i odgovornost prema posljedicama svojeg rada. Dobrano je poznato da su računalne simulacije postale koristan alat matematičkih modeliranja prirodnih sustava[1]. Svijet 21. Stoljeća, upečatljivo je vrijeme moderne tehnologije, koja omogućava učenje simuliranjem stvarnih sustava. Razvoj računala značajno je doprinio stvaranju simulatora te se danas često umjesto fizičkih modela koriste računalni programi (modeli) [1]. Za mlade ljude određenih tehničkih zanimanja, razvijena su rješenja u obliku simulatora za učenje. Jedan takav simulator je bio izveden 2012. godine za elektrotehničare i informatičare kao java applet simulator elektroničkih sklopova pod nazivom ETSBI simulator elektroničkih sklopova [2]. Koristio se preventivno za rješavanje zadataka na razini spajanja elektroničkih komponenata i projektiranje elektroničkih shema.

Osim bogatih funkcionalnosti, ovaj simulator je bio vrlo atraktivan sve do pojave potrebe za pristupom simulatoru u bilo koje vrijeme s bilo koje platforme. Naime simulator ETSBI je bio desktop inačica koja se pokretala na stolnom ili prijenosnom računalu poput mnogih drugih (ZenitPCB, FreePCB, TinyCAD, BSch3v i drugi)[3]. Današnji zahtjevi za izradu aplikacije ili nekog programskog rješenja odnose se na kompatibilnost aplikacije s više različitih platformi. Internetsko umrežavanje, stvorilo je i mogućnosti pristupa pojedinom programskom rješenju s različitih mjesta i platformi u bilo koje vrijeme. Stoga u ovom radu nudimo najnovije online rješenje koje rješava i problem pristupa s više različitih platformi u bilo kojem vremenu.

Online simulator za dizajniranje elektrotehničkih pločica

Današnji mladi su vrlo izbirljivi po pitanju pronalaženja platformi koje svojim svojstvima odgovaraju njihovim subjektivnim potrebama. Zato je većina aplikacija namijenjena ne samo za računala nego i za tablet uređaje pa i pametne telefone. Budući da je mlada populacija gotovo stalno na internetu, ponuđeno je rješenje u obliku online simulatora za učenje dizajniranja elektrotehničkih pločica. Ovo prilagodljivo rješenje, trebalo bi olakšati učenje i učiniti ga zanimljivim i nimalo financijski i vremenski zahtjevnim. Online simulator ne zahtijeva postupak instalacije ni zadovoljenje tehničkih zahtjeva koje platforma mora ispunjavati prije same instalacije. Simulatoru je moguće pristupiti jednostavnom registracijom ili prijavom preko drugih aplikacija poput Facebooka na kojem većina mladih ima kreirane korisničke račune.

Autodesk 123D Circuits

Autodesk i Circuits.io zajednički su izdali novi alat za dizajn elektrotehničkih pločica s jednostavnim značajkama [4].Autodesk 123D Circuits je profesionalna besplatna aplikacija (simulator) za izradu i simuliranje elektrotehničkih pločica. Aplikaciju nije potrebno instalirati na računalo. Ona ne predstavlja desktop varijantu aplikacije. Moguće joj je pristupiti na stranici https://123d.circuits.io/lab. Za rad s ovim simulatorom, potrebno je napraviti zasebni korisnički račun ili se jednostavno prijaviti pomoću već postojećeg kreiranog korisničkog računa na aplikaciji Facebook. Aplikacija je namijenjena pretežito za zanimanja elektrotehničara i informatičara, ali i druga zanimanja koja se tiču dizajniranja elektrotehničke tiskane pločice. I elektrotehničari i informatičari, mogu za svoje potrebe, izraditi pločice i nad njima testirati i simulirati svoja softverska rješenja u obliku programskih naredbi. Aplikacija je prepoznatljiva po sučelju jednostavnom za korištenje.

Sučelje prikazano na slici 1 se sastoji od glavnog editora (radno sučelje) na kojem se nalazi trodimenzionalni model elektrotehničke pločice s priključenim elektrotehničkim komponentama i sklopovima.

image
Slika 1. Radno sučelje (editor)

Na traci iznad editora s trodimenzionalnim modelom elektrotehničke pločice, nalazi se alatna traka s komponentama i pojedinim sklopovima isto u trodimenzionalnom prikazu (vidi slika 2). Odmah do izbornika s komponentama, nalazi se i Code Editor koji ima dvojaku svrhu. Kao prvo Code Editor pretvara sastavljene i spojene trodimenzionalne komponente u programski kod u programskom jeziku Java. Upravo iz tih razloga bi mogao biti zanimljivi za elektrotehničare i za informatičare jer se dizajnirana pločica može pretvoriti i izgenerirati u programski kod programskog jezika Java. S druge strane preko istog Code Editor-a, može se unijeti gotov programski kod u vidu naredbi kojim se programira pojedini elektrotehnički sklop.

imageSlika 2. Alatna traka s izbornicima

Na istoj alatnoj traci, nalazi se i Undo/ Redo koji služe za vraćanje koraka unatrag ili pomicanje unaprijed. Osim toga, alatna traka sadrži i funkcije za brisanje i rotiranje pojedine komponente ili sklopa. Za potrebe rada na čitavom monitoru postoji i opcija Zoom To Fit.

Uz mogućnost spremanja i eksportiranja uratka, postoji i mogućnost pogleda uratka (vidi slika 3). Na traci za prikaz elektrotehničke pločice, nalazi se prvi prikaz ili LabView koji zapravo predstavlja trodimenzionalni prikaz spojenog sklopovlja i komponenti na elektrotehničku pločicu. Drugi prikaz ili Schematic View predstavlja shematizirani prikaz trodimenzionalnih modela komponenti i sklopova spojenih na pločicu.

imageSlika 3. Prikaz elektrotehničke pločice

Skica ili shematizirani prikaz vidljiv na slici 4 podrazumijeva pretvaranje trodimenzionalnih komponenti i sklopova u skup simbola kojim se označava pojedini sklop ili komponenta. imageTreći i posljednji pogled zove se PCB View. Ovaj pogled predstavlja konačni izgled koji će se otisnuti na pravu tiskanu pločicu. Dakle radi se o izgledu otiska na tiskanu pločicu.

Slika 4. Schematic View

U PCB View vidljiv na slici 5, moguće je napraviti pregled po slojevima. Pod opcijom Layers nalazi se gornji i donji sloj. Donji sloj je sloj originalne pločice, a gornji sloj predstavlja sloj sa imagesvim spojenim komponentama i sklopovljem. Ovo do sada je bila strana interesantna elektrotehničarima. No strana koja bi mogla interesirati više informatičare je softverski pristup ili pisanje programskog koda.

Slika 5. PCB View

Smisleno spojeni sklopovi i komponente na elektrotehničku pločicu, daju mogućnost generiranja programskog koda u Java programskom jeziku (vidi slika 6). S druge strane informatičar može uz generirani programski kod preko opcije Upload and Run unijeti vlastiti programski kod i tako naredbama odrediti djelovanje komponenata i sklopova.

imageSlika 6. Prikaz programskog koda

Programski kod je moguće isto tako i eksportirati kao i cijeli uradak napravljen u istoimenom simulatoru. Nakon što su sve komponente spojene, moguće je pokrenuti simulaciju naredbom Simulate iz alatne trake i provjeriti ispravnost spojenosti sklopova i komponenti.

Rezultati testiranja

Za prilike testiranja funkcionalnosti, zadan je sljedeći zadatak. Zadatak: spojiti i simulirati rad malene temperaturne stanice koja će prenositi impulse preko elektrotehničke pločice na LCD monitor s kojeg će se moći iščitavati temperatura u Fahrenheitovim stupnjevima.Za sastavljanje, bile su potrebne sljedeće komponente:

  • Elektronički sklop temperaturna stanica ESP8266
  • Komponente: Četiri otpornika tipa 4- tračni cilindrični otpornici boje (crvena, crvena, crna, žuta)
  • Komponenta: Led dioda jednobojna u crvenoj boji
  • LCD sklop monitor za prikaz
  • Žice poveznice

Spojena i funkcionalna temperaturna stanica s komponentama prikazana je na slici 7.

imageSlika 7. Temperaturna stanica ESP8266 prije pokrenute simulacije

Nakon spajanja svih zadanih dijelova s temperaturnom stanicom, u editoru za pisanje programskog koda nisu napravljene izmjene imageprogramskog koda. Originalni izgenerirani programski kod nije izmijenjen niti nadopunjen drugim linijama koda. Nakon svih spojenih komponenti, a prije pokretanja simulacije, napravljen je pregled svih pogleda (Schematic View, PCB View, Lab View) ovog sklopa. Nakon pokrenute simulacije, na LCD monitoru je ispisana temperatura u Fahrenheitovim stupnjevima što je vidljivo na slici 8.

Slika 8. Temperaturna stanica ESP8266 nakon simulacije

Na monitoru je dobiven ispis temperature u Fahrenheitovim stupnjevima. Ispis je izgledao ovako: Temperature SF: F: 47.4. Uz provedenu simulaciju, mogu se navesti i određene prednosti i nedostaci.

Prednosti i nedostaci

Simulator se pokazao kao simulator intuitivnog i jednostavnog sučelja za korištenje. Isto tako komponente se nanose metodom povlačenja i spuštanja na elektrotehničku pločicu. Ima mnoštvo mogućnosti po pitanju pogleda (View) gdje se može na licu mjesta utvrditi skica ili shema i konačni otisak na tiskanu pločicu. Stvarno se može reći da se sve nalazi na jednom mjestu te da objedinjuje i elektrotehniku i informatiku, hardverski i softverski pristup. No glavni nedostatak je vrlo nespretno i neprecizno spajanje komponenata s elektrotehničkom pločicom. Prilikom rješavanja zadatka, bilo je problema s povlačenjem veza na priključne točke komponenata i sklopova. Naime za spajanje spojne točke komponente s vezom, potrebno je nekoliko puta kliknuti na mjesto spajanja da bi tek onda veza bila spojena s priključnom točkom. Jedan klik miša ne omogućava spajanje priključne točke s vezom.

Zaključak

Važnost učenja putem simulacija u kontinuiranoj izobrazbi mladog poslovnog kadra, iznimno je velika. Glavna prednost simulacija je njihova izvanredna sposobnost vještog oponašaja okoline bez stvaranja dodatnih troškova. Simulacija kao način izobrazbe, pogoduje izgradnji vlastite izvrsnosti u pogledu vještina i sposobnosti. Rješenjem poput online simulatora Autodesk 123D Circuits kojem je moguće pristupiti u bilo kojem trenutku na bilo kojoj platformi preko internetske veze za sada se može odgovoriti na zahtjeve mladih osoba u kontinuiranoj izobrazbi. Primjena simulacija za učenje u najpogodnijem trenutku na platformi koja je isto tako zbog individualnih svojstava odabrana kao najbolja za rad, mnogo je efikasniji način učenja nego čista reprodukcija znanja ili pasivno primanje informacija.

Literatura

  1. Perić, M. Primjena poslovnih simulacija u visokoškolskom obrazovanju budućih menadžera u turizmu i ugostiteljstvu
  2. Prša, I. ETSBI simulator elektroničkih sklopova, 2012.
  3. Besplatni programi za dizajniranje elektroničkih pločica i projektiranje elektroničkih shema [citirano 07.01.2017.] Dostupno na <http://www.elektrotehnika.info/elektro-programi/21-10-besplatnih-programa-za-dizajniranje-elektronickih-plocica-i-projektiranje-elektronickih-sema?showall=1&limitstart=&gt;
  4. Službena stranica aplikacije Autodesk 123D circuits [citirano 07.01.2017.] Dostupno na <http://hackaday.com/2013/09/11/123d-circuits-autodesks-free-design-tool/&gt;

Programiranje 2D igara u aplikaciji Construct 2

zoran_hercigonja

Zoran Hercigonja

Sažetak

Programiranje uvijek predstavlja izazov samo po sebi, no još je veći izazov udružiti znanja i vještine iz različitih područja u jedan gotov proizvod kao što je video igra. U radu učenici su isprogramirali kompleksan scenarij igre preko alata za grafičko programiranje. Spajanjem različitih znanja u samom procesu formalnog učenja kao i znanja stečenih samoreguliranim učenjem te informalnim učenjem, zajednički su izradili scenarij igre i pretvorili taj scenarij u jezik kodova to jest naredbi. Uspješno su prilagodili i preveli semantiku govornog jezika scenarija u scenarij grafičke igre. Rad izvještava o rezultatima, preprekama, izazovima s kojima su se učenici suočili te kreativnim rješenjima.

Ključne riječi: Construct 2, Igra, Grafičko programiranje, Vještina, Scenarij igre

Uvod

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 [2] 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 clip_image001129.99$ dolara. Za poslovnu upotrebu, cijena iznosi 429.99$ dolara. Naravno u cijenu su ubrojene i nadogradnje te mogućnost za distribuciju igara[2]. Kompatibilan je za rad u više operacijskih sustava: Windows, Mac OS.

Slika 1. 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, clip_image002nalazi 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 pozadinu. 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.

clip_image004Slika 2. 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 3. 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 koja se nalazi na samom vrhu sučelja aplikacije, pokreće se kreirana igra.

Radionica-grafičko programiranje igara

U radionici programiranja igara je sudjelovao kombinirani razredni odjel s učenicima 1, 2, 3, 4 razreda Druge gimnazije Varaždin, ukupno 10 učenika. Radionica je provedena u ukupno 14 sati izborne nastave informatike. Od tih 14 sati šest sati je otpalo na učenje programiranja u programskom sučelju Construct 2 zatim osmišljavanje scenarija i naposlijetku odabira osnovnih grafičkih elemenata koji su uključeni u samu igru.

Temeljni grafički oblici igre

Valja naglasiti da su osnovni objekti korišteni u igri dodatno oblikovani pomoću alata za oblikovanje slika Gimp 2.6.10. Izvorno su preuzeti s internetskih izvora, a dodatno su oblikovani za potrebe programiranja računalne igre. Dakle objekti koji su se koristili za programiranje igara su bili sljedeći, a koje su odabrali učenici su:

1. Pozadina sa uzorkom svemira:

clip_image002[4]

Osnovne postavke:

Slika pozadine je preuzeta s interneta, ali je učeničkom intervencijom i inicijativom, pretvorena u crnu pozadinu s crvenim točkicama.

U originalu točkice su bile bijele boje. Pozadina je statičkog karaktera i prekrivala je velik dio radnog prostora alata Construct 2.

Rubovi te slike pozadine su programski u svojstvima ograničeni kao rubovi unutar kojih se sadržavaju svi objekti igre. To znači se ni jedna objekt nije mogao kretati izvan slike pozadine.

2. Crveni svemirski brod kojim upravlja igrač:

clip_image002[5]

Osnovne postavke:

Brod je imao dvije funkcionalosti. Mogao se pomicati samo u dva smjera po x-osi koordinatnog sustava: dakle –x i +x os. Osim toga brod je trebao moći ispaliti dva hica prilikom svakog pritiska lijeve tipke miša.

 

3. Zelena laserska zraka, kao simbol ispaljenog projektila

 Osnovne postavke: 

clip_image002[6]U izvorniku kao projektil je bila uzeta slika metka s interneta. No učenici su zajedničkom odlukom, odlučili da to bude laserska zraka izrađena u Gimp-u.

Lasersku zraku je u scenariju igre trebalo udvostručiti što znači da prilikom lijevog klika miša, brod ispaljuje dvije paralelne laserske zrake. Zrake kao objekt ugrađen na objekt svemirskog broda, trebale su pratiti brod po osi x u oba smjera. Isto tako kada laserska zraka bude ispaljena i pogodi nepriajteljski objekt, treba nestati.

U slučaju da promaši neprijateljski objekt, zraka u sudaru s rubom pozadinske slike nestaje. Dakle trebalo je isprogramirati nekoliko efekata zrake.

4. Neprijateljski objekti

clip_image012Osnovne postavke:

Slike neprijateljskih objekata su preuzete s interneta. Učenici su sami donijeli odluku o dizajnu i broju neprijateljskih objekata.

clip_image016Funkcionalnosti neprijateljskih objekata su bile sljedeće: nasumično pojavljivanje objekata unutar rubova pozadinske slike. Objekti su se mogli kretati samo po y- osi u negativnom smjeru. Ukoliko je neki od neprijateljskog objekta bio pogođen zelenom laserskom zrakom, trebao je nestati. Dakle efekt nestajanja se trebao stvoriti u trenutku doticaja zrake s tim objektom. U trenutku kada bi objekt nestao na jednome mjstu, paralelno s tim se trebao pojaviti na drugom mjestu. Ako je nepriajteljski objekt dotaknuo rub pozadinske slike, nestao je i paralelno clip_image002[7]se stvorio na nekom drugom mjestu unutar rubova pozadinske slike.

Svaki puta kada bi laserska zraka pogodila neprijateljski objekt, osim što bi nestao, pojavila bi se simulacija eksplozije koja je postignuta podešenim svojstvom unutar Construct 2 aplikacije.

S druge strane u doticaju s igračevim svemirskim brodom, trebao je izazvati efekt nestajanja igračevog broda.

5. Oznaka kraja igre

clip_image001Osnovne postavke:

Planirano je da oznaka kraja bude samo u obliku tekstualnog prikaza „Game Over“. No učenici potaknuti retro igrama, odlučili su se za dizajn oznake kraja igre u retro stilu. Oznaka je napravljena u Gimpu.

Oznaka je trebala biti povezana s objektom broda igrača i neprijateljskog objekta. Sudarom broda igrača i neprijateljskog objekta, iskače oznaka za kraj igre i igra se zamrzne.

Scenarij igre

Dogovoreni scenarij igre, sadržavao je sljedeće postavke. Igra je trebala nalikovati igri „Chicken Invasion“ samo s drugim elemenima. Dakle moraju postojati neprijateljski objekti u obliku svemirskih brodova koji se nasumično pojavljuju unutar slike pozadine. Njihovo kretanje je ograničeno od gornjeg ruba prema dolje točnije od pozitivne y-osi prema negativnoj. Brzina gibanja je postavljena na srednju brzinu. Zatim postoji glavni objekt kojim upravlja igrač. No igračev svemirski brod kreće se samo lijevo-desno po pozitivnoj i negativnoj x-osi ne prelazeći rubobe slike pozadine. Brod mora moći ispaljivati projektile odnosno laserske zrake u neprijateljske objekte. Laserske zrake su duplicirane i istovremeno se lansiraju prilikom pritiska lijeve tipke miša. Sudarom laserske zrake i nepriajteljskog objekta, postiže se efekt nestajanja nepriajteljskog objekta i nasumične pojave istog na nekom drugom mjestu. Zraka u sudaru s brodom treba nestati. Kod sudara zrake i broda, treba se pojaviti efekt eksplozije koja s vremenom iščezava. U slučaju sudara broda igraa i neprijateljskog broda, brod igrača se pozicionira na mjestu gdje je zadešen sudarom i iskače poruka o kraju igre.

Postupak rada i poteškoće u razvijanju igre

Iako sama struktura igre ne izgelda osobito kompleksna. Bez obzira na izgled, zadavala je mnogo problema, posebice kada se radilo o uskalđivanju dva ili više objekata igre.

clip_image020 Slika 4. Prikaz programirane sturkture igre

Na samom početku, trebalo je u programski editor unijeti sve potrebne elemente i sliku pozadine razvući po cijelom ekranu. To je bio najlakši dio koji je bez problema odrađen.Drugi dio se ticao broda igrača i podrazumijevao je odabir upravljača u obliku miša i određivanje osi po kojoj će se brod gibati. Brzinu nije trebalo odrediti, jer je određena manevrom miša.

clip_image021 
Slika 5. Pozicioniranje temeljnih objekata

Početne vrijednosti je trebalo podesiti i nad laserskom zrakomi neprijateljskim brodom. Oba su usmjerena u smjeru y- osi, samo što je svki od objekata imao određeno kretanje u jednom dijelu osi y. Nakon toga, bilo je potrebno testirati brzinu gibanja objekata po y- osi. Tu se utrošilo malo više vremena zbog testiranaj i određivanja željene brzine gibanja.

clip_image022 
Slika 6. Dodavanje funkcionalnosti objektima

Drug korak je bio posebno problematičan, a ticao se usklađivanja kretanja dviju laserskih zraka. Naime problem je bio u tome što se zrake nisu istovremeno ispaljivale nakon lijevog klika miša. Događalo se to da jejedna zraka bila ispaljivana prerano, a druga prekasno. Idući problem je bio prekalpanje zraka. Učenici su dugo određivali razmak između zraka dok nisu došli do optimalne udaljenosti po x – osi od 10 piksela. Događalo se to da se pri svakom pomaku broda igrača, jedna od zraka zalijepila za drugu. Problem je bio u tome što u modu za obradu slika zrake nije bila pravilno postavljena na brod. Bilo je potrebno sidro slike zrake postaviti na vrh broda igrača.No i taj je problem efikasno riješen.

clip_image023 
Slika 7. Određivanje nasumičnog pojavljivanja neprijateljskih objekata

Ovaj dio vezan az problematiku određivanaj pojavljivanja pojedinog neprijateljskog objekta je riješen vrlo jednostavno. U Construct 2 postoji naredba random kojom se određuje nasumično pojavljivanje objekata. Uz tu naredbu, potrebno je bilo odrediti i učestalost pojavljivanja. Učestalost je postavljena na 3 iz razloga što su vrijednosti veće od 3 predstavljale poteškoću za igrača. Svaka vrijednost veća od 3 značclip_image024ila je i veći broj nepriajteljskih brodova. To je dovodilo do toga da nije bilo moguće izbjegavati te brodove i igrač je neprestano gubio igru.

Slika 8. Uređivanje odnosa objekata igre

Posljednji, a najtži dio je podrazumijevao usklađivanje radnji četiri različita tipa objekata. Najprije je trebalo odrediti akciju koja će se zbiti u slučaju sudara laserske zrake i nepriajteljskog broda. Učenicima je ovaj koncept bio dosta otežavajući pa je bilo potrebno intervenirati ponavljanjem if-else uvjetovanja, ovdje pretvorenog u naredbu collision. clip_image025Dakle kada su se dva objekta sudarila, oba su morala nestati, u suprotnom nepriajteljski brod se kretao dalje po osi y kao i laserska zraka samo u različitim smjerovima. Uz to, bilo je potrebno uključiti još jedno if-else uvjetovanje.

Slika 9. Gotova igra u Construct 2

Dakle u igrici je stvoreno ugniježđeno grananje. Grananje je glasilo: kada se objekti sudare, moraju nestati i ako se sudare, pojavljuje se efekt eksplozije. Zatim eksplozija nestaje kada igrač ponovno pritisne lijevu tipku miša. Kod ovog grananja, bilo je ptorebno ponovno raditi dijagrame tijeka na ploči. Naravno učenici 4 razreda su poučavali učenike ostalih razreda pomoću dijagrama tijeka. Njima je zbog vieš iskustva u programiranja taj koncept ugniježđenog if-else uvjetovanja bio jasan. Kada je razjašnjen taj koncept, više nije bilo problema s poslejdnjim dijelom kreiranja igre. Isti koncept samo s drugim objektima,bio je primijenjen nad brodom igrača, neprijateljskim brod i poruci o završetku igre. Dakle u ugniježđeni if su ušli sljedeći uvjeti: kada se objekti sudare, zaustavi igru; kada je igra zaustavljena, ispiši poruku o kraju igre.

Zaključak

Nakon utrošenih 14 sati rada na kreiranju računalne igre, učenici su dobili jasniju predodžbu o tome koliko je bilo koji koncept programiranja intelektualno zahtjevan te koliko procedura i apstrakcija zahtijeva, prije nego je vidljivo ostvaren kroz neki scenarij igre. Naravno učenici su upotrijebili mnogo znanja ne samo iz područja logike i programiranja, nego i iz područja grafičkog dizajna. Ovaj vid kreiranja igara, omogućio im je jedan način kreativnog izražavanja. Učenici su dobili uvid u svoje sposobnosti i propuste. Sada imaju jasniji fokus za daljnje usavršavanje i rad na sebi. Ova radionica je iziskivala dosta iscrpnog rada i izučavanja. Učenici su prošli cijeli postupak nastajanja programa. Uspješno su spojili sve bitne koncepte programiranja u jedan. Krenuvši od scenarija to jest pseudokoda programa, preko dijagrama tijeka pa sve do gotovih konstrukcija pomoću naredbi alata Construct 2. Radionica programiranja igara je imala pozitivna utjecaj na stvaranje pozitivnog stava prema radu te bila glavni izvor motivacije i nadahnuća za učenike koji su imali potrebu kreativno se izraziti u tom području.

Literatura

  1. Programiranje igara [pritupano 22.01.2017.]
  2. Construct 2 službena stranica [pristupano 22.01.2017.]

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.]

Hakiranje podataka preko bezazlene fotografije

zoran_hercigonja

Zoran Hercigonja

Sažetak

Svakodnevno objavljujemo fotografije na svojim Facebook profilima, Instagramu i drugim servisima ne vodeći računa o podacima koji nas mogu kompromitirati i stvoriti probleme. Pomalo paranoično ali istinito. Svi podaci o nama od podataka o datumu rođenja do broja bankovnog računa, nalaze se u digitaliziranom obliku organizirani kroz „dobro“ čuvanu bazu podataka. Provaliti u takvu bazu, gotovo je nemoguće, ali s pribavljenim podacima o korisniku postaje moguće. Zaboravljamo gdje sve ostavljamo svoje podatke. Kroz internet kupnju, ostavljamo najčešće brojeve kartice i zabilježenu IP adresu računala. Koliko bezazlena fotografija može biti opasna? Odgovor na to pitanje je u vidu metapodataka.

Ključne riječi: Metapodatak, Fotografija, PhotoME, Hakiranje, Podatak

Što su metapodaci i koliko su važni?

Riječ metapodatak se sastoji od riječi “meta” i “podatak”. Prefiks “meta” se koristio u antičkoj grčkoj sa značenjima “uzduž” i “sa”. S vremenom “meta” se koristilo prilikom označavanja transcendentnosti ili natprirodnog. Riječ podatak ima korijene u latinskoj riječi “data” koja označava dijelove informacija ili skup objekata koji se međusobno razlikuju. Danas je najopćenitija definicija metapodataka da su to podaci o podacima.[1] Dakle to su podaci o podacima, odnosno podaci koji opisuju karakteristike nekog izvora u digitalnome obliku. Takve podatke možemo naći u jednostavnoj MS Word datoteci kada kliknemo na tu datoteku i otvorimo svojstva. U njima se nalaze podaci poput: veličine datoteke, ekstenzije (doc, docx), ime i prezime autora, datum nastanka. To su samo neki sitni podaci koje zovemo metapodacima.

Od 1990-tih godina metapodatak označava strojno čitljiv zapis. Sa pojavom računala metapodaci se počinju sustavno primjenjivati; svaka datoteka sadrži popratne informacije o količini memorije koju zauzima, datum stvaranja, prava nad njim i sl. Metapodaci su danas postali općeniti pojam kojim se može opisati sve od interesa, od kolekcije poštanskih maraka do sportskih događaja u jednoj godini.[1] Pitamo se što je s fotografijama? Da li i one imaju metapodatke? Naravno da imaju metapodatke. No kao i kod Word datoteke ti metapodaci se kriju pod svojstvima. Naravno ako posjedujemo odgovarajući alat za otkrivanje ostatka metapodataka, onda ti podaci mogu biti kobni.

PhotoMe softver za hakiranje metapodataka

Naširoko poznati softver PhotoME Beta-Release je besplatna desktop inačica softvera za hakiranje metapodataka digitalnih fotografija. Softver PhotoMe je dostupan svima i može se besplatno skinuti s web stranice http://www.photome.de/. Instalacija je vrlo jednostavna i brza tako da ga može instalirati bilo tko, a opet je kompatibilan sa svim Windows operacijskim sustavima. [2]

Sučelje je vrlo intuitivno za korištenje. Sastoji se od tri dijela. Prvi dio sučelja služi za dohvat željene fotografije: Open File, Import, Export i Save As. clip_image002Drugi dio su podaci o slici na osnovnoj i meta razini. U prvom dijelu sučelja s podacima, susrećemo se s Overview odnosno osnovnim pregledom. Tu se nalaze podaci poput: imena datoteke, format zapisa, dimenzije te veličina.

Slika 1. Glavno korisničko sučelje softvera Photo Me

clip_image003Drugi dio podrazumijeva detaljnije podatke o fotografiji. Taj dio se naziva dio s metapodacima.

Slika 2. Metapodaci digitalne fotografije

U tu grupu spada naziv fotoaparata, vrijeme nastanka fotografije, rezolucija, orijentacija fotografije, broj piksela, način kodiranja te još mnogi drugi.

Iznimno važan dio sučelja ovog softvera je i histogram. clip_image004Histogram pokazuje slojeve fotografije. Svaki sloj sadržava podatke o pojedinom dijelu fotografije. Svaki sloj je moguće clip_image005po potrebi uključiti i isključiti. Time se slika može prikazati u smo jednoj boji radi što lakšeg utvrđivanja plagiranih dijelova.

Slika 3. Histogram

Slika 4. Prikaz umanjene originalne slike

Ispod histograma, nalazi se i umanjena verzija originalne fotografije, koja je podvrgnuta analizi.Naravno onaj nabitniji dio jest upravo dohvaćanje temeljnih podataka o uređaju (mobilni telefon ili digitalni fotoaparat) kojim je obavljeno fotografiranje.

clip_image007Slika 5. Sučelje s detaljnim pregledom podataka o korisniku, fotografiji i uređaju

Softver daje detaljan pregled svih tehničkih karakteristika fotoaparata ili mobilnog uređaja kojim je fotografija snimljena te je spojen na internet trgovine s bazom proizvoda. „Inteligentan“ je do te mjere da na temelju prepoznatog modela digitalnog fotoaparata ili clip_image009mobilnog uređaja, navodi korisnika na web stranicu s modelom i karakteristikama uređaja na nekom od prodajnih web mjesta.

Za primjer, snimljena je jednostavna fotografija digitalnim fotoaparatom Nixon D80.

Slika 6. Testna digitalna fotografija

Kao uzorak, snimljne je krajolik u ljeti. Učitavanjem ove testne fotografije u sučelje softvera PhotoMe, učitali su se osnovni metapodaci koji su još uvijek nepromijenjeni. Jednostavnom naredbom Open File odaberemo fotografiju i učitamo je.

Učitavanjem fotografije, dobili smo metapodatke o toj fotografiji:

  • Dimension: 803 x 1200 pixels (dimenzije slike)
  • Aperture: f5 (otvor blende; manja „f“ vrijednost = veći otvor blende)
  • Flash: Did not fire, compulsory flash mode (je li korištena bljeskalica i na koji način)
  • Focal length: 30mm (žarišna daljina)
  • Exposure time: 1/80 (brzina okidanja prikazana u minutama)
  • ISO: 200 (ISO – osjetljivost digitalnog senzora na svjetlost)
  • Date and time: 20.05.2007. 11:19 (datum i vrijeme kada je fotografija snimljena)

Već iz tih samih podataka, možemo saznati nešto o digitalnom uređaju. Primjerice možemo saznati dosta o uređaju na temelju otvora blende, žarišne duljine i osjetljivosti digitalnog senzora na svjetlost. Već su to podaci koji predstavljaju određeni stanadr izrade digitalnih fotoaparata ili kamera mobilnih uređaja. No osim podataka o slici, dobiva se i detaljan niz podataka o samom uređaju.

clip_image011Slika 7. Detaljni podaci o uređaju za snimanje fotografije

Dakle točno su ispisani podaci o nazivu i broju digitalnog uređaja po kojem možemo pronaći prodajno mjest. Dakle uzimajući podatke o uređaju, lako je doći do odgovarajućeg prodajnog mjesta, a potom do podataka o korisniku i tako dalje sve do bankovnog računa i transakcije. Sam softver PhotoMe pronalazi web stranicu s odgovarajućim modelom digitalnog uređaja kojim je snimljena fotografija, a na temelju toga predlaže najblože prodajno mjesto. Naravno na svkaom prodajnom mjestu ostavljamo podatkeAko recimo kupujemo karticom, ostavljamo podatke o dnevnoj transakciji. Lako je preko tih podataka doći i do podataka o adresi stanovanja i drugih računa. Ako je kupnja bila obavljena preko web-a onda je domoći se podataka o korisniku najjednostavnije

Zaključak

Naoko bezazlena fotografija može prouzrokovati velike probleme po pitanju krađe podataka i identiteta. Objava fotografije na internetu, prava je prilika za hakere koji se jednim klikom miša mogu domoći podataka vlasnika fotografije. Najveća meta su naravno društvene mreže poput Facebook-ea, Twittera, Instagrama, gdje se nepromišljeno masovno objavljuju fotografije. Meta-razina podataka poprilično je pogodna za krađu podataka korisnika. Velik broj ljudi nije niti svijestan koliko štete može prouzrokovati naoko snimljena bezazlena fotografija. Stručnjaci za zaštitu podataka sugeriraju širfriranje podataka kao jedan od najsigurnijih načina zaštite podataka.

Literatura

  1. NIPP: O metapodacima [pristupano 01.02.2017.] Dostupno na <http://metapodaci.nipp.hr/default.aspx?id=282>
  2. Službena stranica aplikacije PhotoMe [pristupano 17.01.2017.] Dostupno na <http://www.photome.de/home_en.html>

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;