13
Poučavanje programiranja početnika pomoću Alice utjecaj na motivaciju i izbor karijere dr. sc. Ivica Boljat, docent Prirodoslovno-matematički fakultet Split, Nikole Tesle 12 [email protected] Sažetak Programski jezici i okruženja namijenjeni poučavanju programiranja početnika teže pojednostavniti kod i koristiti primjerena korisnička sučelja. Oni imaju dva potencijalno međusobno konfliktna cilja: istovremeno olakšati početak programiranja i prijelaz na programski jezik opće namjene. Alati za vizualizaciju programa privlačni su učenicima, oni ih lako kontroliraju, jednostavno mijenjaju kod i brzo vide animirane rezultate. Puni pedagoški potencijal vizualizacije programa ostvaruje se tek implementacijom izravnog prevođenja koda u programski jezik opće namjene u kojem se nastavlja rad. Učenike osnovne škole i gimnazije poučavalo se programirati korištenjem programskog alata Alice. Učenici su s lakoćom, intuitivno, usvojili osnovne koncepte objektno-orijentiranog programiranja, programiranje smatraju manje teškim, ali, suprotno očekivanjima, nije povećana motivacija za daljnje učenje programiranja niti za izbor karijere vezane uz programiranje. Ključne riječi: Alice; poučavanje programiranja; programski jezici; taksonomija; motivacija; karijera Uvod Učenje programiranja mukotrpno je početnicima bez obzira na njihovu dob. Glavni izazov predstavlja savladavanje metodologije rješavanja problema, odnosno izgradnja algoritamskog mišljenja. Dodatnu teškoću zadaje kruta sintaksa programskih jezika. Već pola stoljeća razvijaju se mnogobrojni programski jezici i okruženja čiji cilj je programiranje učiniti što pristupačnijim većem broju ljudi. U radu se navode poželjne osobine programskih jezika za poučavanje programiranja i njihova taksonomija, opis najvažnijih paradigmi programiranja te postignuća učenika osnovne škole i gimnazije u eksperimentalnom radu s programskim alatom Alice.

Poučavanje programiranja početnika pomoću Alice – utjecaj · PDF fileostvarili, 24% su bili tradicionalni zadaci iz udžbenika, ostalo su bile priče. Nije bilo razlika u izboru

Embed Size (px)

Citation preview

Page 1: Poučavanje programiranja početnika pomoću Alice – utjecaj · PDF fileostvarili, 24% su bili tradicionalni zadaci iz udžbenika, ostalo su bile priče. Nije bilo razlika u izboru

Poučavanje programiranja početnika pomoću Alice –

utjecaj na motivaciju i izbor karijere

dr. sc. Ivica Boljat, docent Prirodoslovno-matematički fakultet

Split, Nikole Tesle 12 [email protected]

Sažetak

Programski jezici i okruženja namijenjeni poučavanju programiranja početnika teže pojednostavniti

kod i koristiti primjerena korisnička sučelja. Oni imaju dva potencijalno međusobno konfliktna cilja:

istovremeno olakšati početak programiranja i prijelaz na programski jezik opće namjene. Alati za

vizualizaciju programa privlačni su učenicima, oni ih lako kontroliraju, jednostavno mijenjaju kod i

brzo vide animirane rezultate. Puni pedagoški potencijal vizualizacije programa ostvaruje se tek

implementacijom izravnog prevođenja koda u programski jezik opće namjene u kojem se nastavlja

rad.

Učenike osnovne škole i gimnazije poučavalo se programirati korištenjem programskog alata Alice.

Učenici su s lakoćom, intuitivno, usvojili osnovne koncepte objektno-orijentiranog programiranja,

programiranje smatraju manje teškim, ali, suprotno očekivanjima, nije povećana motivacija za

daljnje učenje programiranja niti za izbor karijere vezane uz programiranje.

Ključne riječi: Alice; poučavanje programiranja; programski jezici; taksonomija; motivacija; karijera

Uvod

Učenje programiranja mukotrpno je početnicima bez obzira na njihovu dob. Glavni izazov

predstavlja savladavanje metodologije rješavanja problema, odnosno izgradnja algoritamskog

mišljenja. Dodatnu teškoću zadaje kruta sintaksa programskih jezika. Već pola stoljeća

razvijaju se mnogobrojni programski jezici i okruženja čiji cilj je programiranje učiniti što

pristupačnijim većem broju ljudi. U radu se navode poželjne osobine programskih jezika za

poučavanje programiranja i njihova taksonomija, opis najvažnijih paradigmi programiranja te

postignuća učenika osnovne škole i gimnazije u eksperimentalnom radu s programskim alatom

Alice.

Page 2: Poučavanje programiranja početnika pomoću Alice – utjecaj · PDF fileostvarili, 24% su bili tradicionalni zadaci iz udžbenika, ostalo su bile priče. Nije bilo razlika u izboru

Programski jezici za poučavanje programiranja

Taksonomija programskih jezika za poučavanje programiranja

S obzirom na krajnji cilj učenja programiranja, Kelleher i Paush (2003.) programske jezike

dijele u dvije osnovne kategorije: one kojima je programiranje pomoćno sredstvo pri rješavanju

problema iz neke domene te one koji programiranje vide kao izbor karijere.

Sustavi iz prve skupine žele stvoriti jezike i metode programiranja koji će omogućiti ljudima

riješiti što više problema u svakodnevnom poslu kojeg obavljaju. Napor je usmjeren na

mehaniku programiranja, odnosno pojednostavljenje koda, upotrebu primjerenih sučelja,

poboljšanje interakcije s jezikom i integraciju s okolinom.

Sustavi i okruženja iz druge skupine nastoje olakšati učenje programiranja radi programiranja

na način da jednostavni programski alati izlažu početnike temeljnim konceptima programiranja.

Nakon što savladaju odgovarajući sustav za učenje programiranja, od učenika se očekuje da

znaju neki programski jezik opće namjene poput C, C++, C# ili Jave. Zbog toga mnogi sustavi

za učenje programiranja nalikuju jezicima opće namjene, premda ti jezici nisu dizajnirani da bi

bili shvatljivi početnicima. Sustavi iz ove kategorije nastoje ostvariti dva potencijalno

međusobno konfliktna cilja: olakšati početnicima početak programiranja te olakšati prijelaz na

jezik opće namjene.

Najveći broj pristupa nastoji olakšati samu mehaniku programiranja. To je pojam kojim

naglašavamo izražavanje programa pojednostavljenjem jezika (BASIC, SP/k), ograničavanjem

sintaksnih grešaka (GNOME) ili korištenjem objekata na način označi-i-povuci kao alternativi

tipkovnici (Alice 2). Mehanika programiranja također naglašava strukturiranje programa

(Pascal i SmallTalk) i razumijevanje izvođenja programa (Karel). Drugi pristupi naglašavaju

društveni kontekst učenja u kojem su učenici jedan uz drugog (AlgoBlock) ili na mreži (Cleogo).

Standardnim načinima poučavanja programiranja poput predavanja i vježbi, problemske

nastave, kognitivnog tutorstva, Costelloe (2005.) pridodaje upotrebu LegoMindstorms robota i

vizualizaciju programske podrške. Nju možemo podijeliti na vizualizaciju programa (Alice i

JKarelRobot), animaciju algoritama (JHave), vizualno programiranje (Visual Basic) i računsku

vizualizaciju. Glavne su prednosti korištenja vizualizacije programa što ona zaokuplja učenike,

učenici mogu kontrolirati alat i biti s njim u interakciji. Nakon promjene koda brzo se vide

animirani rezultati, a to olakšava ispravljanje pogrešaka.

Page 3: Poučavanje programiranja početnika pomoću Alice – utjecaj · PDF fileostvarili, 24% su bili tradicionalni zadaci iz udžbenika, ostalo su bile priče. Nije bilo razlika u izboru

Karakteristike jezika za poučavanje programiranja

Istraživanja pokazuju da su glavni razlozi zašto neki predavači tijekom poučavanja koriste

određeni programski jezik tržišni značaj jezika i njegove pedagoške vrline (de Raadt i

dr.,2002.). Milbrandt tim zahtjevima dodaje jednostavnost korištenja, strukturirani dizajn,

jednostavnu sintaksu i deklaraciju varijabli, jednostavan ulaz/izlaz te dobre alate za testiranje i

ispravljanje pogrešaka (Stephenson, 2000.).

Autori poznatih programskih jezika koji se koriste u poučavanju programiranja, Seymour

Papert (Logo), Niklaus Wirth (Pascal), Guido van Rossum (Python) i Bertrand Meyer (Eiffel)

definirali su sedamnaest poželjnih karakteristika jezika za poučavanje programiranja

(Manilla i de Raadt, 2010.). Idealan jezik trebao bi biti prikladan za poučavanje, omogućiti

primjenu fizičkih analogija, promovirati nove pristupe poput poučavanja paralelnog

programiranja, omogućiti dekompoziciju problema, imati besprijekorno razvojno okruženje,

promicati pisanje ispravnih programa, biti interaktivan, imati podršku zajednice korisnika, biti

dio zajednice otvorenog koda i podržan kroz različita okruženja, lako dostupan, podržan dobrim

nastavnim materijalima, proširiv, pouzdan i učinkovit, bez negativne ostavštine tipa QWERTY

fenomena, trebao bi se koristiti ne samo u obrazovanju. Od analiziranih jezika, najviše kriterija

ispunjavali su Python i Eiffel, ali to ne znači, samo po sebi, da su i najprikladniji jer svi kriteriji

nisu jednako važni. Na primjer, iako i Java ispunjava većinu kriterija, pretjerana složenost je

čini neprikladnom za ovu namjenu.

Paradigme programiranja

Razlike među paradigmama programiranja vrlo su velike pa je prijelaz s jedne na drugu izrazito

težak. Ne postoji slaganje je li za početnike prikladnija imperativna (proceduralna) – Pascal, C

ili objektna paradigma – Java, C# koja je danas dominantna u profesionalnom razvoju

aplikacija. Funkcionalna paradigma – Lisp i logička paradigma – Prolog uobičajeno se koriste

u specifičnim područjima poput umjetne inteligencije i nisu prikladne za početnike.

Alati za programsku vizualizaciju prilagođeni su nekoj od paradigmi jer naglašavaju različite

aspekte programiranja. JKarelRobot je, primjerice, prikladniji za proceduralnu paradigmu (iako

uz Pascal podržava i sintaksu prilagođenu učenju Jave i Lispa), dok je Alice prikladnija za

objektnu paradigmu. Za ilustraciju naznačit ćemo temeljnu razliku proceduralne i programske

paradigme.

Page 4: Poučavanje programiranja početnika pomoću Alice – utjecaj · PDF fileostvarili, 24% su bili tradicionalni zadaci iz udžbenika, ostalo su bile priče. Nije bilo razlika u izboru

Proceduralno programiranje problem shvaća kao cjelinu koju treba razložiti na manje dijelove,

po mogućnosti one za koje imamo unaprijed poznato rješenje, koje Soloway naziva rješenje u

„limenci“. Rješenja svih pod-problema trebamo ukomponirati u cjelovito rješenje postupcima

lijepljenja planova, gniježđenja planova ili njihova stapanja. Program, prema tvorcu Pascala

N. Wirthu, čine algoritmi i strukture podataka. U proceduralnom pristupu naglasak je na

algoritmima koji opisuju skup radnji, a tek onda se stvaraju odgovarajuće strukture. Program

je nalik stablu funkcija.

U objektno orijentiranom programiranju problem se ne shvaća kao proces pa se stoga ne piše

jedna metoda koja se rastavlja na više jednostavnijih. Naglasak je na podacima, objekti samog

sustava smatraju se podacima visoke razine, u njima su učahureni algoritmi i podaci niže razine.

Metodološki, najprije treba identificirati stvarne objekte sustava kojeg modeliramo i kojima

odgovaraju softverski objekti. Nakon toga određujemo usluge koje objekt pruža i informacije

koje mora sadržavati da bi se usluge izvršile. Program je mreža grafova s objektima koji

međusobno djeluju kao poslužitelji ili klijenti.

Alice

Jedan od najpoznatijih i najčešće korištenih programskih alata za poučavanje programiranja

Alice stvoren je s ciljem da što više ljudi potakne na učenje programiranja. Koristi se u više od

tisuću institucija diljem svijeta, od osnovnih i srednjih škola do sveučilišta. Idejni začetnik i

autor Randy Paush ugradio je u Alice ideje s kojima se susreo radeći kao dizajner u Disneyevom

studiju. Izbjegao je uobičajeni pristup programiranju, uloga programera više je nalik ulozi

redatelja filma ili video-igre.

Računalni program animira objekte u virtualnom svijetu, njegovo stvaranje sastoji se od čitanja

scenarija te dizajniranja, pisanja i testiranja programa. Scenarij daje sve potrebne detalje za

postavljanje početne scene i planiranje niza naredbi, definira potrebne objekte koji imaju glavnu

ulogu u priči i objekte u pozadini, te akcije koje će se odvijati. Knjiga snimanja sastoji se od

kronološkog niza metoda, one se razlažu na jednostavnije postupnom dekompozicijom

problema.

Nakon izbora i smještaja objekata u virtualni svijet, pristupamo definiranju navedenih metoda.

Naredbe se slažu po principu povuci-i-spusti, tipkovnica je potrebna samo za definiranje

vrijednosti svojstava. Dijelovi programskog koda sastoje se od naredbi kojima objekti vrše neku

radnju, izraza kojima označavamo matematičke operacije nad podacima te kontrolnih struktura

Page 5: Poučavanje programiranja početnika pomoću Alice – utjecaj · PDF fileostvarili, 24% su bili tradicionalni zadaci iz udžbenika, ostalo su bile priče. Nije bilo razlika u izboru

za uvjetno izvođenje If/Else i ponavljanje Loop. Ugrađene funkcije omogućavaju informacije o

blizini objekata, njihovoj veličini i prostornim odnosima.

Slika1. Sučelje programskog alata za vizualizaciju programa Alice

Alice je naročito prikladna za poučavanje objektno-orijentirane paradigme programiranja jer se

temeljni pojmovi klasa, objekt, metoda, svojstva usvajaju intuitivno. Klase se definiraju kao 3D

modeli, dostupne su u galeriji i posložene u grupe kao što su ljudi, životinje, zgrade. Svaka

klasa je predložak koji kaže kako stvoriti objekte iz te klase. Svaki objekt je primjerak ili

instanca klase, svi objekti iste klase dijele zajednička svojstva, ali svaki ima svoje vrijednosti

za njih. Svaki objekt ima skup instrukcija koje zna izvesti. To su, zapravo, jednostavne metode

ugrađene u Alice. Njih možemo organizirati u vlastite, novodefinirane metode. Globalne

metode se odnose na više objekata, a metode klase definiraju ponašanje jednog objekta. Nove

klase mogu nasljeđivati metode i svojstva postojećih klasa, što je bitna prednost koja povećava

programersku produktivnost. Ostali koncepti objektnog pristupa kao što su začahurenost ili

enkapsulacija, polimorfizam, prijateljske klase i konstruktori su prezahtjevni za početnike.

Prikladni su tek u uvodnom predmetu objektnog programiranja na sveučilišnoj razini u kojem

se Alice 3 koristi kao uvod u Javu, programski jezik opće namjene.

Page 6: Poučavanje programiranja početnika pomoću Alice – utjecaj · PDF fileostvarili, 24% su bili tradicionalni zadaci iz udžbenika, ostalo su bile priče. Nije bilo razlika u izboru

Pregled istraživanja primjene Alice u poučavanju programiranja

Adams (2006.) je organizirao 2003.-2006. dvotjedne ljetne kampove za učenice prosječne dobi

11 godina nakon kojih se značajno popravila ocjena vlastitog znanja programiranja, ali ne i stav

prema programiranju. Održavanje kampa posebno za djevojčice osigurava okruženje u kojem

one mogu podržavati i ohrabrivati jedna drugu. Frustracije zbog pogreški su izbjegnute,

sintaksne eliminira samo razvojno okruženje – Alice IDE, a logičke su im smiješne jer se radi

o 3D animacijama.

Anewalt (2007.) je odradila kroz jedan semestar 45 satni program kako bi se zaustavio pad

interesa za studiranjem računalne znanosti. Pomoću različitih tehnika poučavanja, uključujući

kinestetičko učenje, igre, natjecanja, rasprave i praktične radionice, uvela je studente u osnovne

koncepte programiranja i rješavanje problema. Studenti dobivaju dojam o računalnoj znanosti

kao o jednoj zabavnoj, zanimljivoj i široko upotrebljivoj disciplini. Najprikladnijim pristupom

studenti su ocijenili Alice, čak ih se 76% izjasnilo da želi pohađati računalne predmete više

razine.

Učenike petih i šestih razreda poučavali su 2007.-2009. osnovnim konceptima programiranja

koristeći Lego Mindstorms robote i Alice programsko okruženje (Bell, Heeler i Heeler 2009.).

Početni projekt iz robotike bio je vrlo uspješan, učenici su uspješno riješili zadatke zaobilaženja

zapreka i praćenja zavoja. Kad su dobili kompleksnije zadatke koji su uključivali uzimanje

objekta i micanje na novu lokaciju te dizajn i sastavljanje vlastitog robota učenici su postali

frustrirani cijelim projektom. Učenici su s puno entuzijazma prihvatili Alice okruženje jer je

osigurao organizirani pristup prvom iskustvu iz programiranja.

Istraživanje u uvodnom kolegiju programiranja pokazalo je koje tipove projekata studenti

preferiraju (Cliburn i Miller, 2008.). Računalne igre činile su 71% projekata koje su studenti

ostvarili, 24% su bili tradicionalni zadaci iz udžbenika, ostalo su bile priče. Nije bilo razlika u

izboru zadatka i ocjenama kod onih koji su programirali u Alice i u Javi. Za Alice projekt rekli

su da je 'lakši', 'zabavniji' i da pruža veliku 'slobodu', za Java projekt da je najizazovniji. Projekti

koji su suvisli i zabavni čine se logičnim načinom za privlačenje i zadržavanje studenata

računarstva.

Usporedba poznavanja osnovnih koncepata u uvodnom kolegiju programiranja pokazuje da su

rezultati nešto slabiji kod Alice, ali je motivacija u toj grupi značajno veća, iako su se ponekad

javljale neobjašnjive pogreške zbog nesavršene verzije jezika (Dougherty, 2007.).

Page 7: Poučavanje programiranja početnika pomoću Alice – utjecaj · PDF fileostvarili, 24% su bili tradicionalni zadaci iz udžbenika, ostalo su bile priče. Nije bilo razlika u izboru

Tri jednotjedna ljetna kampa 2005.-2007. sa 150 Afroamerikanaca pokazala su da učenici

smatraju izazovnim kreiranje igrica i virtualnih svjetova u Alice i da to pozitivno utječe na

učenikovo zanimanje za računarstvo, unatoč prijašnjem negativnom stavu (Hardnett, 2008.).

Mullins i Whitfield (2008.) pretpostavili su da će pristup u kojem se prvo uči objektno-

orijentirano programiranje i koristi specijalizirano okruženje Alice povećati interes za upis

računarskih kolegija. Gotovo svi pokazatelji podupiru korištenje Alice i poslije Jave u odnosu

na kontinuirano učenje C++: porastao je broj studenata na ovom programu za 10% u periodu

2002.-2007. iako je broj studenata računalnih znanosti pao 50%, povećan je broj studentica,

smanjen je broj odustajanja od kolegija. Doduše, nešto je smanjena i prosječna ocjena.

Rodger i dr. (2009.) uključili su nastavnike osnovne škole i njihove učenike u trotjedni

eksperiment proveden u ljeto 2008. Nastavnici su integrirali Alice 3D virtualne svjetove u

primjere koji pomažu učenicima u razumijevanju matematike, povijesti, umjetnosti, itd.

Učenici su naučili i koristili koncepte programiranje kao što su metode, funkcije, petlje,

grananja.

Dvije trećine učenika petog do osmog razreda osnovne škole, nakon tečaja u kojem su 20 sati

učili Storytelling Alice, kreiralo je računalne igrice u kojima postoje pravila, postoji cilj i opisan

je, svršetak je neizvjestan, postoji narativna napetost i emocionalna doza (Werner i dr., 2009.).

Trećina igrica imala je najmanje četiri od šest različitih aspekata algoritamskog razmišljanja:

događaje, grananja, ponavljanja, paralelizam, metode i varijable. Posebno iznenađuje što je

polovina igrica uključivala paralelizam. Taj je koncept težak za početnike u programiranju, no

očito je mnogo pristupačniji kada se koristi 3-D animacijski alat kao SA.

Gotovo porazne rezultate Alice je polučila u usporedbi s pseudo-kodom u dvotjednom,

uvodnom dijelu programerskog kolegija (Garlick i Cankaya, 2010.). Znatno slabije su prosječne

ocjene kvizova i ispita za grupu koja je koristila Alice, kao i samoprocjena sposobnosti

samostalnog rješavanja složenijih problema te razumijevanja kreiranja varijabli, odluka,

funkcija i prijenosa parametara. Studenti nisu doživjeli Alice „kao pravo programiranje“,

izrazili su želju da ne uče Alice okruženje jer „moraju počinjati ispočetka“ kad se prebacuju na

učenje Jave, misle da je Alice dizajnirana za mlađu publiku a ne za sveučilišnu razinu.

Alice 3 riješila je ključni nedostatak Alice 2, ona je omogućila bezbolni prijelaz iz grafičkog

okruženja oslobođenog sintaksnih pogreški u tekstualno kruženje programskih jezika opće

namjene. Program napisan u Alice 3 ne sliči Javi. Umjesto toga, jedan dodatak Java IDE

prevodi Alice apstraktno sintaksno stablo – AST u Java kod. Kod prelaska na Javu ne mijenja

Page 8: Poučavanje programiranja početnika pomoću Alice – utjecaj · PDF fileostvarili, 24% su bili tradicionalni zadaci iz udžbenika, ostalo su bile priče. Nije bilo razlika u izboru

se kontekst, to je i dalje isti program kojeg student može mijenjati u Java IDE. Eksperimentalno

je dokazano da su studenti koji su koristili Alice 3 u uvodnim tjednima prije Jave postigli

značajno bolje rezultate nego studenti koji su koristili samo Javu. Najveća razlika bila je za

tema kontrolne strukture i polja gdje je prosječni rezultat s 46% porastao na više od 80% (Dann

i dr,, 2011.).

U komparativnoj analizi efikasnosti različitih pristupa poučavanju programiranja učenika

drugog razreda gimnazije korišteni su Alice, NXT-G i Lego Mindstorms roboti te pseudo-kod.

(Boljat, Mladenović, 2013.). Najučinkovitiji u povećanju interesa prema izboru budućeg poziva

pokazao se Alice - 38% učenika povećalo je interes, a samo 4% smanjilo nakon rada s njim.

Pseudo-kod bio je najslabiji, po 15% popravilo je i pokvarilo stav. Kod provjere znanja

programiranja, Alice je bio nešto bolji od pseudo-koda i znatno bolji od robota (Kruskal-Wallis

test sig.=0,003).

Učinci prezentiranja Alice u splitskoj osnovnoj školi i gimnaziji

Hipoteze, uzorak, metode

Polazeći od rezultata prethodno navedenih istraživanja, postavljene su sljedeće hipoteze:

H1. Alice će učenicima omogućiti razumijevanje i usvajanje klasa, objekata i nasljeđivanja,

temeljnih koncepata objektno orijentiranog pristupa.

H2. Alice će ublažiti percepciju učenika da je programiranje jako teško.

H3. Rad s Alice povećat će motivaciju za nastavak učenja programiranja i povećati izglede za

izbor informatičke karijere.

Istraživanje je provedeno na malom uzorku 18 učenika osmog razreda osnovne škole koji su u

izbornoj nastavi informatike prethodno učili programski jezik Logo i 28 učenika trećeg razreda

opće gimnazije koji su na izbornoj nastavi uobičajeno radili Pascal.

Istraživanje se odvijalo kroz nekoliko etapa: ispunjavanje ulazne ankete, demonstracija razvoja

programa u Alice 2 okruženju, samostalan rad učenika, provjera usvojenosti osnovnih

koncepata te izlazna anketa.

Ulazna anketa ispitala je jesu li učenici motivirani učiti programirati, kakva je njihova

percepcija težine programiranja, bi li odabrali programiranje za budući poziv, koliko teškoća

su imali učeći programirati.

Page 9: Poučavanje programiranja početnika pomoću Alice – utjecaj · PDF fileostvarili, 24% su bili tradicionalni zadaci iz udžbenika, ostalo su bile priče. Nije bilo razlika u izboru

U poučavanju primijenjen je model kognitivnog šegrtovanja. U prva dva sata nastavnik je

predstavio programsko okruženje, objasnio rad sa svjetovima, objektima, metodama,

kontrolnim strukturama i događajima te realizirao program po zadanom scenariju iz knjige

snimanja. Učenicima je ukazano na mogućnost da učitaju i instaliraju Alice na kućno računalo

do sljedećeg predavanja. Indikativno je da su tu mogućnost iskoristili gotovo svi učenici

osnovne škole i samo dvoje gimnazijalaca. Na sljedećem su predavanju učenici, najprije uz

povremenu pomoć nastavnika, a zatim samostalno, izradili vlastite animacije. Na kraju, pisanim

putem provjerili smo jesu li naučili koje faze razvoja prolazimo programirajući u Alice, kako

su predstavljeni objekti, što su klasa, metoda i nasljeđivanje te koje su razlike između globalne

metode i metode klase.

Izlaznom anketom željelo se vidjeti jesu li i koliko učenici promijenili percepciju težine

programiranja, kakav dojam je na njih ostavila Alice, bi li je preporučili svojim prijateljima te

jesu li motivirani za učenje kompleksnijih programskih jezika.

Rezultati

Za statističku analizu korištene su neparametrijske metode jer je Kolmogorov-Smirnov test

pokazao da niti jedna varijabla nije normalno distribuirana.

Pokazalo se da su gotovo svi učenici naučili faze izrade programa u Alice. Podjednako uspješno,

na prirodan i intuitivan način, učenici osnovne i srednje škole su svladali pojmove klase i

objekata koji su vrlo teški i za mnoge studente koji u njima vide samo dio koda. Hipoteza H1

je potvrđena.

Tablica 1. Usporedba stavova učenika osnovne škole i gimnazijalaca

Škola N Prosjek Rang Mann-Whitney Sig.

ocjena programskog okruženja Alice

1-vrlo neprikladna …5- jako prikladna

osnovna 18 3,89 23,39 0.961

gimnazija 28 3,86 23,57

motivacija za programiranje prije Alice

1-posve nemotiviran…5-jako motiviran

osnovna 18 4,44 31,61 0.000

gimnazija 28 3,64 18,29

motivacija za programiranje poslije Alice

1-posve nemotiviran…5-jako motiviran

osnovna 18 4,11 27,83 0.063

gimnazija 28 3,57 20,71

težina programiranja prije Alice

1- uopće nije teško…5- jako teško

osnovna 18 3,67 28,28 0.038

gimnazija 28 2,71 20,43

Page 10: Poučavanje programiranja početnika pomoću Alice – utjecaj · PDF fileostvarili, 24% su bili tradicionalni zadaci iz udžbenika, ostalo su bile priče. Nije bilo razlika u izboru

Pomalo iznenađuje što su učenici osnovne i srednje škole podjednako ocijenili prikladnost Alice

za poučavanje programiranja početnika jer su za vrijeme istraživanja učenici osnovne škole

pokazali znatno veći angažman i entuzijazam. Ugodno okruženje, mogućnost da se pogreške

brzo i lako detektiraju i otklone, učinile su programiranje u Alice manje zastrašujućim za 44%

učenika osnovne škole i 28% gimnazijalaca (hi-kvadrat=0,010). Hipoteza H2 je potvrđena.

Motivacija za učenje programiranja prije rada s Alice, mjerena Liqertovom ljestvicom, značajno

je veća kod učenika osnovne škole nego kod gimnazijalaca (sig.=0,000 prema Mann-

Whitneyevom testu). Suprotno očekivanju, tijekom istraživanja motivacija za učenje

programiranja se smanjila u obje skupine, posebno kod učenika osnovne škole (Wilcoxonov

test, sig.=0,014). Hipoteza H3 nije se potvrdila. Objašnjenje bi možda mogli pronaći u

Vroomovoj teoriji očekivanja koja govori da jačina i usmjerenje djelovanja na određen način

ovisi o razini očekivanja da će djelovanje biti popraćeno određenim ishodom i o privlačnosti

toga ishoda za pojedinca.

.

Slika2. Motiviranost učenika za programiranje prije i poslije rada s Alice

Dvije trećine učenika osnovne škole i polovica gimnazijalaca mogli bi odabrati karijeru koja je

tijesno vezana za programiranje (hi-kvadrat=0,210). Rad s Alice nije znatnije promijenio

početne sklonosti.

Zaključak

Današnji su učenici „digitalni urođenici“, većina ih ne iskazuje interes ni oduševljenje za učenje

programiranja na tradicionalni način. Jako ih frustriraju pogreške u programima i brutalna

povratna informacija nakon takvih pogrešaka, stoga je jako korisno osigurati ugodna

0

2

4

6

8

10

12

bro

j uče

nik

a

nikakav nivo motivacije vrlo jak

Osnovna škola

prije Alice poslije Alice

0

5

10

15

20

bro

j uče

nik

a

nikakav nivo motivacije vrlo jak

Gimnazija

prije Alice poslije Alice

Page 11: Poučavanje programiranja početnika pomoću Alice – utjecaj · PDF fileostvarili, 24% su bili tradicionalni zadaci iz udžbenika, ostalo su bile priče. Nije bilo razlika u izboru

programska okruženja s grafičkim uređivačima koji sprječavaju sintaksne pogreške poput Alice.

Privlače ih vizualizacije, animacije, računalne igrice. Rezultati većine istraživanja pokazuju

veliki potencijal Alice u podizanju interesa za učenje programiranja, u povećanju ocjene

vlastitih programerskih vještina i smanjenju osjećaja težine programiranja. Naročito je

prikladna za poučavanje osnovnih koncepata objektno orijentirane paradigme jer nudi

intuitivan način upoznavanja s klasama, objektima, metodama, nasljeđivanjem. S druge strane,

rezultati poznavanja programiranja kod korištenja Alice u usporedbi s tradicionalnim pristupom

korištenjem pseudo-koda ili programskih jezika opće namjene su podjednaki ili nešto slabiji.

Značajan hendikep bila je i nemogućnost bezbolnog prijelaza s Alice na programski jezik opće

namjene poput Jave. Sve to činilo je Alice prikladnim, prije svega, za upotrebu u osnovnoj školi.

S pojavom inačice Alice 3 pokazan je veliki potencijal za njeno uspješno korištenje u uvodnom

dijelu kolegija objektno orijentiranog programiranja na sveučilišnoj razini. Jako brzo, praktički

bez ikakva znanja o objektnom programiranju, studenti su u stanju stvoriti zanimljive programe.

Njihovim prevođenjem iz Alice 3 u Javu mogu nastaviti mijenjati ih, dopunjavati i ponovno

vidjeti kako se te promjene manifestiraju u poznatom kontekstu. Ovaj pristup kombinira

najbolje iz svijeta programskih jezika za poučavanje programiranja i programskih jezika opće

namjene, potvrđen je u praksi i svakako se može preporučiti.

Literatura

Adams, J. C. (2006). Alice, middle schoolers & the imaginary worlds camps,, SIGCSE '07,

Proceedings of the 38th SIGCSE technical symp. on Computer science education, p. 307.-311.

Anewalt, K. (2008). Making CS0 fun: An active learning approach using toys, games and Alice,

Journal of Computing Sciences in Colleges, 23(3), p. 98-105.

Bell, S., Heeler, L., i Heeler, P. (2009). Computer programming with middle school students,

Journal of Computing Sciences in Colleges, 24(5), p. 161-165.

Boljat, I., Mladenović, S., (2013.). Usporedba Alice, NXT-G LegoMindstormsa i pseudo-koda

u poučavanju programiranja početnika (u pripremi)

Cliburn, D.C., Miller, M.S. (2008). Games, Stories, or Something More Traditional: The Types

of Assignments College Students Prefer, SIGCSE '08 Proceedings of the 39th SIGCSE

technical symposium on Computer science education p.. 138.-142.

Page 12: Poučavanje programiranja početnika pomoću Alice – utjecaj · PDF fileostvarili, 24% su bili tradicionalni zadaci iz udžbenika, ostalo su bile priče. Nije bilo razlika u izboru

Costelloe, E. (2004.). Teaching Programming: The State of the Art, Report , CRITE Technical

report, Institut of technology Tallaght, Dublin

Dann, W., Cosgrove, D., Slater, D., Culyba, D., and Cooper, S. (2012.). Mediated transfer:

Alice 3 to Java, In Proceedings of the 43thACM technical symposium on Computer Science

Education (SIGCSE '12), p. 141.-146.

Dann, P. W., Cooper, S., i Pausch, R. (2005.). Learning to Program with Alice. Prentice-Hall:

Upper Saddle River, NJ

Dougherty, J. P. (2007). Concept visualization in CS0 using ALICE, Journal of Computing

Sciences in Colleges, 22(3), p. 145.-152.

Garlick, R., i Cankaya, E. C. (2010.). Using Alice in CS1 a quantitative experiment, ITiCSE

'10 Proceedings of the fifteenth annual conference on Innovation and technology in computer

science education, p. 165.-168.

Hardnett, C.R. (2008.). Gaming for middle school students: Building virtual worlds, GDCSE

'08 Proceedings of the 3rd international conference on Game development in computer science

education p. 21.-25.

Kelleher, C. (2006.), Motivating Programming: using storytelling Alice to make computer

programming attractive to middle school girls, PhD thesis, Carnegie Mellon University

Kelleher, C. and R. Pausch (2005.). "Lowering the Barriers to Programming: a survey of

programming environments and languages for novice programmers." ACM Computing

Surveys 37(2): p. 83.-137.

Kelleher, C., Pausch, R., i Kiesler, S. (2007.). Storytelling Alice Motivates Middle School Girls

to Learn Computer Programming, , Proceeding CHI'07 Proceedings of the SIGCHI Conference

on Human Factors in Computing Systems p.. 1455.-1464.

Manilla. L., de Raadt,M.,(2006.), An Objective Comparison of Languages for Teaching

Introductory Programming, Baltic Sea '06, Proceedings of the 6th Baltic Sea conference on

Computing education research: Koli Calling 2006. p. 32.-37.

Mullins, P., Whitfield, D., i Conlon, M. (2008). Using Alice 2.0 as a first language, Journal of

Computer Science in Colleges, 24(3), p. 136.-143.

Page 13: Poučavanje programiranja početnika pomoću Alice – utjecaj · PDF fileostvarili, 24% su bili tradicionalni zadaci iz udžbenika, ostalo su bile priče. Nije bilo razlika u izboru

Raadt, de M., Watson, R., and Toleman, M.(2002.), Language Trends in Introductory

Programming Courses. In The Proceedings of Informing Science and IT Education Conference,

(Cork, Ireland, June 19-21, 2002), InformingScience.org, 2002, p. 329. - 337.

Rodger, S., Cooper, S., Dann, W., Slater, D., Lopez, M., Hayes, J., Lezin, G., Qin, H.,, Nelson,

D. and Tucker, R. (2009.). Engaging Middle School Teachers and Students with Alice in a

Diverse Set of Subjects. In Proceedings of the 40th SIGCSE Technical Symposium on

Computer Science Education, Chattanooga, TN, USA, march 4-7, 2009., SIGCSE '09

Stephenson, C., (2006.), A report on high school computer science education in five U.S. states.

2000; Available from: www.holtsoft.com/chris/HSSurveyArt.pdf

Werner, L., Denner, J., Bliesner, M., i Rex, P. (2009). Can middle-schoolers use Storytelling

Alice to make games? Results of a Pilot Study, FDG '09 Proceedings of the 4th International

Conference on Foundations of Digital Games, p. 207.-214.

Novices Programmers Teaching by Alice - Impact on Motivation and Choice of Career

Programming languages and environments designed for teaching novices programmers tends to

simplify the code and to use appropriate user interfaces. They have two potentially conflicting goals,

simultaneously to facilitate begin of programming and the transition to a general-purpose

programming language. Tools for program visualization preoccupy students, they can easy control

them, simply change the code and quickly see animated results. Full pedagogical potential of

program visualization is realized only if we implement a direct translation of the code in a general-

purpose programming language in which it continues to work.

Students of elementary and secondary schools were taught to programming using Alice

programming tools. The students have adopted the basic concepts of object-oriented programming

intuitively, programming considered less severe, but, contrary to expectations, did not increase

motivation for further learning programming or to choose careers related to programming.

Keywords: teaching programming; programming languages;, taxonomy; motivation; career