Upload
hoangnhan
View
232
Download
0
Embed Size (px)
Citation preview
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.
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.
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.
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
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.
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.).
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
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.
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
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
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.
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.
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