novi pristopi pri pou Čevanju programiranjapefprints.pef.uni-lj.si/997/1/kkolar_diploma.pdf · ki...

56
UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA Študijski program: Matematika in računalništvo NOVI PRISTOPI PRI POUČEVANJU PROGRAMIRANJA DIPLOMSKO DELO Mentor: Kandidatka: prof. dr. Jože Rugelj Karmen Kolar Ljubljana, junij 2012

Upload: others

Post on 11-Feb-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA

Študijski program: Matematika in računalništvo

NOVI PRISTOPI PRI POUČEVANJU PROGRAMIRANJA

DIPLOMSKO DELO

Mentor: Kandidatka: prof. dr. Jože Rugelj Karmen Kolar

Ljubljana, junij 2012

Page 2: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni
Page 3: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

   TEMA  DIPLOMSKEGA  DELA        V   diplomskem   delu   na   osnovi     rezultatov   raziskav,   objavljenih   v   strokovni  literaturi,   identificirajte   glavne   probleme,   s   katerimi   se   srečujejo   učenci   pri  učenju   računalniškega   programiranja.   Raziščite,   kako   se   učitelji   v   praksi    spopadajo   s   temi   problemi   z   obstoječimi   didaktičnimi   pristopi   in   kakšne  spremembe  za  izboljšanje  učinkovitosti  poučevanja  na  tem  področju  v  strokovni  literaturi  predlagajo  strokovnjaki.      Na   osnovi   rezultatov   študije   pripravite   ustrezna   didaktična   priporočila   in  predlagajte  primer  scenarija  za  izvedbo  učnih  aktivnosti.                       dr.  Jože  Rugelj,  izr.prof.                    Ljubljana,  februar  2012  

Page 4: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

POVZETEK

Programiranje je eno od pomembnejših področij v računalništvu in številnim učencem se tematika zdi precej težka in dolgočasna. V diplomski nalogi poskušamo identificirati probleme, ki jih imajo programerji začetniki, in poiskati predloge za uspešno učenje, ki je lahko tudi zabavno. V prvem delu naloge smo na podlagi obstoječih raziskav predstavili težave, ki jih imajo učenci pri učenju programiranja. Opisali smo tudi nekatere pristope tradicionalnega poučevanja, ki niso primerni za učence, ki imajo težave pri učenju. Obstaja veliko dejavnikov, ki povzročajo težave pri učenju, kot je pomanjkanje sposobnosti problemskega reševanja, abstrakcije in motivacije. Na osnovi študija strokovne literature smo v drugem delu opisali nekatere nove konstruktivistične načine poučevanja programiranja s problemskim reševanjem in vizualizacijo. Številnim učencem se zdi težko in dolgočasno uporabljati programski jezik, zato smo v diplomski nalogi predstavili nekatera vizualizacijska orodja, ki podpirajo učenje. Predlagali smo učenje na osnovi igranja računalniških igric, ki ima nekatere karakteristike uspešnega učenja, vendar ni dokazano, da je učinkovito. Predlagani pristopi so novi na tem področju izobraževanja in zato zahtevajo še nadaljnje raziskave. Ključne besede: učenje in poučevanje programiranja, motivacija, mentalni model, problemsko reševanje, programer začetnik, vizualizacija, orodja za programiranje, didaktična računalniška igra. Klasifikacija ACM:

� K.3 Računalništvo in izobraževanje � K.3.1 Uporaba računalnikov v izobraževanju � K.3.2 Poučevanje računalništva in informatike

Page 5: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

ABSTRACT

Programming is core subject in the Computer Science Education and many students find it very difficult and boring. In the thesis we are trying to identify the problems that novices are having and explore the solutions for effective learning, which can be fun as well. In the First section of the thesis we present, based on previous research, the problems students are faced with when they learn to program. We also describe some aspects of traditional way of teaching programming which are not suitable for students who have difficulties with learning. There are many factors that cause problems in learning such as lack of problem solving abilities, abstraction, and motivation. Based on literature study, we describe some new constructivist ways of teaching programming with problem solving and visualization in the second section. Many students find difficult and tedious to use programming languages, so in the thesis we present some visualization computer tools to support learning of programming. We have suggested game based learning, which has the characteristic for successful learning but is not proven to be effective. Suggested approaches are new in this area of education and they require further research. Key words: programming teaching and learning, motivation, mental model, problem solving, novice programmer, visualization, programming tools, didactic computer game. ACM Computing Classification System:

� K.3 Computers and education � K.3.1 Computer Uses in Education � K.3.2 Computer and Information Science Education

Page 6: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

KAZALO VSEBINE

1 Uvod .................................................................................................................................... 1 1.1 Pregled vsebine ...................................................................................................................... 1

I. PREDSTAVITEV PROBLEMATIKE ....................................................................... 3

2 Težave pri učenju programiranja .................................................................................... 3 2.1 Obstoječe raziskave ................................................................................................................... 4 2.2 Poučevanje programiranja ....................................................................................................... 11 2.3 Dilema programskega jezika ................................................................................................... 13

3 Mentalni model................................................................................................................. 14 3.1 Karakteristike programerjev začetnikov .................................................................................. 15

4 Psihologija programiranja .............................................................................................. 17 4.1 Merjenje znanja ....................................................................................................................... 17

5 Abstrakcija ....................................................................................................................... 22

II. OBRAVNAVA REŠITEV .......................................................................................... 24

6 Problemsko reševanje ...................................................................................................... 24 6.1 Problemsko zasnovano učenje ................................................................................................. 25 6.2 Raziskava ................................................................................................................................. 26

7 Vizualizacija ..................................................................................................................... 28 7.1 Obstoječe raziskave ................................................................................................................. 29 7.2 Uporaba vizualizacije algoritma .............................................................................................. 31 7.3 Vizualizacijska orodja ............................................................................................................. 33

7.2.1 Microworlds ..................................................................................................................... 34 7.2.1.1 Primerjava programskih okolij Greenfoot, Alice in Scratch ........................................ 37 7.2.1.2 Raziskava ...................................................................................................................... 38

8 Učenje z računalniško igrico ........................................................................................... 39 8.1 Računalniška igrica BomberMan............................................................................................. 40

9 Predlogi za izboljšanje poučevanja ................................................................................ 42

10 Sklep ................................................................................................................................ 45

11 Literatura........................................................................................................................ 46

Page 7: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

KAZALO SLIK

Slika 1: Ločevanje programskih jezikov ............................................................................................................. 13 Slika 2: Klasifikacijska shema ............................................................................................................................ 18 Slika 3: Faze pridobitve spretnosti ...................................................................................................................... 19 Slika 4: Klasifikacija matematičnih problemov .................................................................................................. 24 Slika 5: Učni model ............................................................................................................................................. 28 Slika 6: Želvji premiki......................................................................................................................................... 34 Slika 7: Greenfoot 'Wombat' scenarij .................................................................................................................. 35 Slika 8: Alice ....................................................................................................................................................... 36 Slika 9: Scratch ................................................................................................................................................... 37 Slika 10: Model didaktične računalniške igre ..................................................................................................... 40 Slika 11: Okno igrice BomberMan ..................................................................................................................... 40 Slika 12: Okvir petih korakov ............................................................................................................................. 43 Slika 13: Pot do uspešnega učenja ...................................................................................................................... 44

KAZALO GRAFOV Graf 1: Težavnost različnih konceptov v programiranju ....................................................................................... 5 Graf 2: Težavnost različnih vidikov v programiranju ........................................................................................... 6 Graf 3: Učinkoviti učni materiali .......................................................................................................................... 6 Graf 4: Področja učinkovitega učenja ................................................................................................................... 7 Graf 5: Težavnost tematik v programiranju .......................................................................................................... 8 Graf 6: Mentalni modeli nalog vrednostmi..........................................................................................................15 Graf 7: Mentalni modeli nalog z referencami ..................................................................................................... 15 Graf 8: Težave pri reševanju kompleksnih nalog ................................................................................................ 27 Graf 9: Kvalitete, ki oblikujejo programerja strokovnjaka .................................................................................. 27 Graf 10: Moč strinjanja (anketa index-card)........................................................................................................29 Graf 11: Moč strinjanja (anketa pre-conference) ................................................................................................ 29 Graf 12: Pogostost uporabe vizualizacije (anketa index-card) ............................................................................ 30 Graf 13: Uporaba vizualizacije (anketa pre-conference) ..................................................................................... 31 Graf 14: Povprečni rezultati kviza in testa .......................................................................................................... 38

KAZALO TABEL Tabela 1: Zbrane raziskave iz različnih virov ....................................................................................................... 4 Tabela 2: Rezultati po kriteriju GE ....................................................................................................................... 9 Tabela 3: Rezultati po kritetirju DoC .................................................................................................................. 10 Tabela 4: Primerjava različnih učnih metod ........................................................................................................ 12 Tabela 5: Avtorji o programerjih začetnikih ....................................................................................................... 16 Tabela 6: Merjenje pridobljenjega znanja ........................................................................................................... 21 Tabela 7: Avtorji o abstraktnosti ......................................................................................................................... 23 Tabela 8: Bloomova taksonomija za ugotavljanje učinkovitosti vizualizacije .................................................... 33 Tabela 9: Primerjava ........................................................................................................................................... 41

Page 8: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

1

1 UVOD

Programiranje je dandanes pomembno področje tako v industriji kot tudi v šolstvu, vendar za učence, ki se učijo začetnih konceptov, programiranje predstavlja tematiko, ki je lahko že v osnovni prezahtevna in dolgočasna. Takšni učenci se posledično ne odločajo za nadaljnji študij računalništva. Programiranja se ni enostavno naučiti, saj zahteva abstraktno razmišljanje, matematične sposobnosti, spretnosti problemskega reševanja ter znanje programskega jezika in programskih orodij. Ker programiranje vključuje toliko različnih aktivnosti, lahko v literaturi najdemo veliko študij, ki opisujejo številne težave, s katerimi se učenci soočajo pri učenju.

Ena izmed najstarejših je študija o programerjih začetnikih, zbirka raziskav različnih avtorjev, ki sta jih skupaj zbrala Soloway in Spohrer (1989). Raziskovalna skupina McCracken idr. (2001) je ugotovila, da imajo programerji začetniki slabe programerske sposobnosti po končanem predmetu uvod v programiranje. Obstajajo študije (Ma, Fergunson, Roper in Wood, 2007), v katerih so ugotovili, da imajo tudi neustrezne mentalne modele osnovnih programerskih konceptov. Največ raziskav o težavah pri učenju in poučevanju programiranja (Lahtinen, Ala-Mutka in Järvinen, 2005; Milne in Rowe, 2002) je predvsem s področja objektno-orientiranega programiranja in izbranih programskih jezikov, ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni pristop poučevanja programiranja ni najbolj učinkovit. Kot bodoče učitelje računalništva nas je zanimalo, kako poučevati programiranje, da bo zanimivo za učence in da bo hkrati učinkovito. Tudi splošno gledano so reforme pri poučevanju programiranja potrebne, če se dosedanje metode izkažejo za neučinkovite. Zato smo v diplomski nalogi ugotavljali, kaj je treba spremeniti, da bo učenje oz. poučevanje programiranja postalo učinkovitejše in hkrati zanimivo. Cilj diplomske naloge je obravnava vidikov, ki so pomembni za izboljšanje razumevanja konceptov programiranja. Vidike smo povezali v predlog za učenje programiranja z vizualnimi orodji, ki so lahko učinkovita in hkrati motivacijska, tudi s stališča ženskega spola. Nekateri avtorji so predlagali izboljšanje poučevanja z integracijo problemskega reševanja in vizualizacije. Raziskovalna skupina Naps idr. (2002) je ugotovila močno strinjanje glede koristnosti uporabe vizualizacije. V diplomski nalogi smo predstavili nekaj vizualizacijskih in didaktičnih orodij, ki bi lahko spremenila pristop do programiranja. Ker je uporaba teh orodij v šolah novost, je njihova učinkovitost v večini še neraziskana.

1.1 Pregled vsebine

Prvi del diplomskega dela z naslovom Predstavitev problematike smo razdelili na štiri poglavja. V drugem poglavju smo opisali težave pri učenju programiranja. Pri tem smo se oprli na obstoječe raziskave in problematiko poučevanja programiranja. Kakšne mentalne modele in karakteristike imajo programerji začetniki, smo predstavili v tretjem poglavju. Ker je programiranje kognitivni proces, smo v četrtem poglavju obravnavali psihologijo

Page 9: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

2

programiranja, pri čemer smo se osredotočili na učne rezultate. Pri programiranju morajo biti učenci sposobni abstraktnega razmišljanja, zato smo v petem poglavju predstavili vlogo abstrakcije.

V drugem delu, tj. Obravnava rešitev, smo raziskali možne rešitve predstavljenih problemov. Učenje s problemskim reševanjem smo obravnavali v šestem poglavju. Sledi obravnava vizualizacije, kjer smo opisali tudi nekaj najbolj znanih vizualizacijskih orodij za učenje programiranja. Novi pristop učenja programiranja z didaktično računalniško igrico smo predstavili v osmem poglavju. Nekaj predlogov in pristopov različnih avtorjev za boljše poučevanje smo zbrali v devetem poglavju. V desetem poglavju smo podali splošne zaključke.

Page 10: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

3

I. PREDSTAVITEV PROBLEMATIKE

2 TEŽAVE PRI UČENJU PROGRAMIRANJA

Katerim učencem je učenje programiranja oteženo? Morda tistim, ki nimajo sposobnosti problemskega reševanja in matematičnih sposobnosti? Ala-Mutka (2004, str. 4) meni, da je splošna inteligentnost in matematična sposobnost lahko povezana z uspešnostjo pri učenju programiranja. Jenkins (2002, str. 54) meni, da je lahko problem v odnosu do programiranja in da so študije pokazale, da programerske sposobnosti nimajo nobene povezave z matematičnimi sposobnostmi.

Du Boulay (1989, v Nuutila, Törma, Kinnunen in Malmi, 2008) klasificira pet področij oz. dimenzij učenja programiranja. To so tudi področja, kjer se pojavljajo težave (Nuutila, Törma, Kinnunen in Malmi, 2008, str. 51):

1. orientacija: kakšen je namen programov, tipi problemov ter programerske sposobnosti, ki so potrebne v določenih situacijah;

2. notacijski stroj: narava abstraktnega stroja; 3. notacija: sintaksa in semantika programskega jezika; 4. strukture: vzorci, načrti za doseg majhnih ciljev; 5. pragmatika: sposobnosti za specifikacijo, implementacijo, testiranje ter

razhroščevanje programov z uporabo ustreznih orodij.

Boothova (1992, str. 119) navede nekaj konceptov učenja programiranja: učenje programskega jezika, učenje pisanja programov v programskem jeziku ter učenje programiranja v paru. Namen predmeta uvod v programiranje je naučiti učence programiranja in ne določenega programskega jezika. Učencem je to težko razlikovati, saj ne zmorejo razmišljati o abstraktnih konceptih med učenjem novih konceptov programskega jezika. To je možno le takrat, ko ima programer opravka z več različnimi programskimi jeziki. Vendar se pri predmetu uvod v programiranje poučuje zgolj en programski jezik (Jenkins, 2002, str. 55–56). Tudi Robins, Rountreejeva in Rountree (2003) opazijo, da se vsebina predmeta in učbenikov osredotoča na določen programski jezik. Po Daviesu (1993, v Robins, Rountree in Rountree, 2003, str. 140), obstaja razlika med programerskim znanjem (npr. kako deluje zanka for) in programerskimi strategijami (npr. kako ustrezno uporabiti zanko for v programu). Težava je ravno v tem, da se pri takšnih predmetih usvoji le programersko znanje. Programerska sposobnost mora zajemati splošno znanje o računalnikih, programskih jezikih, programskih orodjih in metodah programiranja (prav tam, str. 140–147).

Jenkins (2002, str. 55) navaja, da programiranje ni ena sama sposobnost, temveč hierarhija sposobnosti. Učenec se mora najprej naučiti najnižje sposobnosti, kot je sintaksa, in nato napredovati na semantiko, strukturo in stil programiranja. Teh programerskih sposobnosti se ne da naučiti iz učbenikov, temveč le s konkretnim programiranjem.

Page 11: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

4

Če učitelji želijo učinkovito poučevati programiranje, morajo natančno razumeti, kaj je tisto, kar tako oteži učenje programiranja. Gomesova in Mendes (2007, str. 1) navajata različne vzroke:

� programiranje zahteva visoko stopnjo abstrakcije, � programiranje zahteva ustrezno stopnjo znanja in tehnike problemskega reševanja, � programiranje zahteva intenzivno praktično učenje, � poučevanje programiranja se težko individualizira, če je razred številčen, � programiranje je dinamično zgolj z uporabo statičnih učnih materialov, � učiteljeve metode pogosto ne vključujejo učenčevih učnih stilov, � večina programskih jezikov ima kompleksno sintakso brez pedagoških karakteristik,

saj so namenjeni za profesionalno uporabo.

Izkušnje kažejo, da ima veliko učencev težave pri razumevanju in uporabi določenih abstraktnih programerskih konceptov, ko rešujejo programerske probleme. Učenci so navajeni reševati majhne, zaprte probleme, ki jih učitelji vnaprej določijo in ki imajo navadno le eno pravilno rešitev. Tako ni nobene možnosti za preoblikovanje obstoječih rešitev v boljšo. Pri programiranju so problemi navadno odprto končni in imajo širok spekter rešitev. Nekatere rešitve so boljše, druge pa slabše (Nuutila idr., 2008, str. 51).

S katerimi ovirami se soočajo učenci pri učenju programiranja? Zakaj jim spodleti? Raziskati moramo, kje so težave, kakšen pristop imajo učenci do programiranja in kakšen je njihov odnos do učenja.

2.1 Obstoječe raziskave

Tabela 1: Zbrane raziskave iz različnih virov

Avtorji Leto Raziskovalno vprašanje Lahtinen, Ala-Mutka, Järvinen

2005 Kateri so težavni koncepti in vidiki pri učenju programiranja in kako izboljšati poučevanje?

Milne in Rowe 2002 Kateri so težavni koncepti pri učenju programiranja?

McCracken, Almstrum, Diaz, Guzdial, Hagan, Kolikant, Laxer, Thomas, Utting, Wilusz

2001 Ali imajo učenci po končanem predmetu uvod v programiranje ustrezne programerske sposobnosti?

Lahtinenova, Ala-Mutka in Järvinen (2005) so v raziskavi ugotavljali, kateri so težavni koncepti in vidiki pri učenju programiranja ter kako izboljšati poučevanje. Vprašalnik je izpolnilo 559 učencev in 34 učiteljev različnih univerz predmeta uvod v programiranje. Uporabljali so ocenjevalno lestvico od 1 do 5, kjer 1 pomeni najlažji in 5 najtežji koncept za učenje. Učenci so se učili osnov programiranja z različnimi programskimi jeziki, kot so:

Page 12: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

5

C++, Java, Pascal in drugo. Več kot polovica (58,6 %) jih je imelo predhodne izkušnje s programiranjem. Cilj raziskave je bil ugotoviti razlike v konceptih učencev in učiteljev. V nadaljevanju navajamo nekaj raziskanih področij.

� Katere programske koncepte ste se težko naučili?

Graf 1: Težavnost različnih konceptov v programiranju

Zgornji graf prikazuje, da se je učencem najtežje naučiti kazalce, reference, operiranje napak v programu ter rekurzijo. Učitelji so te koncepte po težavnosti prav tako uvrstili visoko. Mnenje učiteljev je bilo dokaj podobno učencem, vendar so jih po težavnosti ocenili višje kot učenci. Pokazale so se tudi razlike med programskimi jeziki, saj so različne univerze poučevale različne programske jezike. Programski jezik C++ se je izkazal za težjega kot Java pri konceptih, kot so tabele, kazalci, reference (Lahtinen idr., 2005, str. 17).

� Kateri vidiki so pri učenju programiranja težki?

1,0

1,5

2,0

2,5

3,0

3,5

4,0

4,5

5,0

Težavnost

Učenci

Učitelji

Page 13: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

6

Graf 2: Težavnost različnih vidikov v programiranju

Vidiki, ki so po mnenju učiteljev in učencev najtežji: oblikovati program, da reši določeno nalogo, razdelati funkcionalnost programa v procedure ter poiskati hrošče v programu. Učitelji so vse vidike ocenili višje kot učenci z izjemo učenja sintakse programskega jezika (graf 2).

� Kateri materiali so/bi pomagali pri učenju programiranja?

Graf 3: Učinkoviti učni materiali

Po mnenju učencev in učiteljev so primeri programov najbolj v pomoč pri učenju programiranja (graf 3). Učitelji so visoko uvrstili tudi interaktivne vizualizacije, medtem ko so učencem ostali materiali po uporabnosti skoraj enakovredni. Avtorji raziskave menijo, da je visoka ocena interaktivnih vizualizacij lahko tudi subjektivna, saj se anketiranci zanimajo za razvoj vizualizacij.

1,0

1,5

2,0

2,5

3,0

3,5

4,0

4,5

5,0

Uporaba

programa v

programskem

okolju

Razumevanje

programskih

struktur

Učenje

sintakse

programskega

jezika

Oblikovati

program, da

reši določeno

nalogo

Funkcionalnost

razdelati v

procedure

Poiskati hrošče

v programu

Težavnost

Učenci

Učitelji

1,0

1,5

2,0

2,5

3,0

3,5

4,0

4,5

5,0

Učbenik

predmeta

Zapiski

predavanj

Vprašanja in

odgovori

nalog

Primeri

programov

Slike

programskih

struktur

Interaktivne

vizualizacije

Ocena

Učenci

Učitelji

Page 14: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

7

� Kdaj je učenje programiranja najbolj učinkovito?

Graf 4: Področja učinkovitega učenja

Učenci so po rezultatih ankete sodeč precej samozavestni, saj so najviše uvrstili samostojno reševanje nalog in samostojno učenje (graf 4). Po mnenju učiteljev se učenci največ naučijo pri laboratorijskih vajah. Ocenjujejo tudi, da je samostojno reševanje nalog učinkovitejše kot pa v skupinah. Učitelji so v splošnem visoko ocenili področja, kjer lahko vodijo učence. Zdi se, da samo učitelji menijo, da učenci potrebujejo vodenje.

Sklep avtorjev raziskave je, da je največji problem programerjev začetnikov uporaba osnovnih programerskih konceptov in ne razumevanje. Rezultati so pokazali, da se učiteljem in učencem praktično učenje zdi učinkovitejše. Drugi problem, ki se je pokazal, pa je, da se učiteljem zdijo vsi koncepti težavnejši kot učencem. Ali učitelji precenjujejo težavnost ali pa se je učenci ne zavedajo dovolj? Učenec v tem primeru ne pozna prave globine konceptov tako kot učitelj in potemtakem ne premore pravega razumevanja. Avtorji raziskave svetujejo, da je učence treba postaviti v različne učne situacije (Lahtinen idr., 2005, str. 17).

Milne in Rowe (2002) sta izvedla raziskavo v obliki spletnih vprašalnikov, ki je ugotavljala koncepte in tematike, ki se zdijo učencem in učiteljem težavne pri predmetu uvod v programiranje. Za preučevanje sta imela skupino 40 učencev iz univerze v Veliki Britaniji ter skupino 26 učiteljev računalništva iz različnih univerz. Učenci so že imeli predznanje iz programiranja, in sicer eno leto iz proceduralnega programiranja v programskem jeziku C. Učenci so izpolnili vprašalnik šele po končanem predmetu programiranja iz objektnega programiranja C++. V raziskavi so ugotavljali težavnostne koncepte objektno-orientiranega kot tudi proceduralnega programiranja.

Učenci so podali oceno, kako težko se je bilo naučiti določeno temo iz programiranja. Učitelji so prav tako ocenjevali stopnjo težavnosti pri učenju, ki naj bi jo po njihovem mnenju imeli učenci. Uporabili so težavnostno lestvico od 1 do 7, kjer 1 predstavlja zelo enostavno in 7 zelo težavno za učenje. Teme so bile izbrane iz večine konceptov programskega jezika C in C++: operatorji in njihove prednosti, operacije z zankami (for, while …), pogojne operacije (if, else ...), tabele, nizi, deklaracije spremenljivk oz. funkcij,

1,0

1,5

2,0

2,5

3,0

3,5

4,0

4,5

5,0

Na

predavanjih

Laboratorijske

vaje

Reševanje

nalog v

skupinah

Samostojno

reševanje

nalog

Samostojno

učenje

Ocena

Učenci

Učitelji

Page 15: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

8

prenos po vrednosti ter referenci, klici funkcij, kazalci, rekurzija, strukture, druge podatkovne strukture (seznami, drevesa), operacije z datotekami, razredi in objekti. Rezultati so prikazani v grafu 5.

Graf 5: Težavnost tematik v programiranju

Teme, ki se zdijo učencem najbolj težavne za učenje, so kazalci, rekurzije ter druge podatkovne strukture. Tudi učitelji so bili enakega mnenja, vendar iz grafa 5 opazimo, da se učiteljem zdijo vse teme težavnejše kot učencem. Sklep te raziskave je, da učenci ne prepoznajo svojih primanjkljajev. Raziskavi (Lahtinen idr., 2005; Milne in Rowe, 2002) sta pokazali, da se težave pojavljajo predvsem pri razumevanju kazalcev in pri konceptih, ki se nanašajo na dinamično spreminjanje v pomnilniku. Milne in Rowe menita, da si učenci ne znajo predstavljati, kaj se dogaja v spominu programa, zato si ne morejo zgraditi ustreznega mentalnega modela izvedbe programa. Na primer rekurzije so kritične zato, ker imajo nelinearno strukturo in si je zato težje vizualizirati izvedbo programa. Zaradi potrebe po vizualizaciji se je pojavila težnja po oblikovanju vizualizacijskih orodij, ki povečujejo učenčevo razumevanje (Milne in Rowe, 2002, str. 63).

Obe raziskavi sta tudi pokazali, da je razumevanje konceptov odvisno od programskega jezika. Učenci so na primer razumeli kazalce v C++ šele potem, ko so jih obravnavali v programskem jeziku Java (prav tam, str. 60). Ali je izbira programskega jezika torej pomembna? Goodova, Brna in Cox (1996) so v študiji o razumevanju programa programerjev začetnikov in strokovnjakov ugotovili, da je izbira programskega jezika odločilna za programerje začetnike. Zanimivo je tudi dejstvo, da so učenci pri obeh raziskavah precej prepričani v svoje znanje, saj so bile ocene težavnosti programerskih

1,0

1,5

2,0

2,5

3,0

3,5

4,0

4,5

5,0

5,5

6,0

6,5

7,0

Težavnost

Učenci

Učitelji

Page 16: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

9

konceptov nižje od učiteljevih. To je lahko zavajajoče, saj učenci lahko mislijo, da so se temo naučili in da jo dobro razumejo, vendar prakse kažejo, da so velikokrat v zmoti (Lahtinen idr., 2005, str. 17).

Raziskovalna skupina McCracken, Almstrum, Diaz, Guzdial, Hagan, Kolikant, Laxer,

Thomas, Utting in Wilusz (2001) je ugotavljala programerske kompetence, ki jih imajo učenci po končanem predmetu uvod v programiranje. Želeli so odgovoriti na vprašanje: »Ali znajo učenci po končanem predmetu uvod v programiranje programirati na pričakovani stopnji sposobnosti?« Za ugotavljanje programerskih sposobnosti so sestavili tri med seboj podobne programerske naloge za reševanje (P1, P2, P3), ki so jih rešili učenci računalništva različnih univerz (z oznakami S, T, U, V) ob koncu prvega leta študija. Naloge so bile sestavljene tako, da se je težavnost stopnjevala, in sicer so morali sprogramirati kalkulator z osnovnimi operacijami (+,−,×,÷,ˆ):

1. naloga P1, težavnostna stopnja 1: kalkulator z obrnjenim poljskim zapisom, ki deluje kot sklad;

2. naloga P2, težavnostna stopnja 2: kalkulator v infiksni oz. vmesni obliki brez upoštevanja operatorjev po prednosti;

3. naloga P3, težavnostna stopnja 3: kalkulator v infiksni obliki z upoštevanjem operatorjev po prednosti.

Učenci so lahko rešili naloge v katerem koli programskem jeziku. Kasneje se je izkazalo, da so uporabili Javo in C++. Učitelji, ki so dali učencem naloge v reševanje, so naloge ocenjevali po dveh kriterijih:

1. GE tj. splošna evalvacija (angl. General Evaluation) v štirih komponentah, kjer je bilo možno doseči skupaj 110 točk: � izvedba (ali se program lahko izvede), � preverjanje (ali program deluje, če vanj vstavimo različne podatke), � potrjevanje (ali je kalkulator ustrezen), � stil (ali ustreza standardom).

2. DoC tj. stopnja približka (angl. Degree of Closeness), ki se nanaša na izvorno kodo, in sicer na določeni 5- stopenjski lestvici ocenjuje, kako blizu je program ustrezni rešitvi.

V tabeli 2 so prikazani rezultati po kriteriju splošne evalvacije, v tabeli 3 pa rezultati po kriteriju stopnje približka.

Tabela 2: Rezultati po kriteriju GE

Naloga Št. učencev Univerza Povprečni rezultat P1 117 S, T, V 21,0

P2 77 U, V 24,1

P3 23 V 31,0

Page 17: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

10

Tabela 3: Rezultati po kriteriju DoC

Naloga Št. učencev Univerza Povprečna ocena

P1 118 S, T, V 2,2

P2 77 U, V 2,4

P3 23 V 2,0

Na nekaterih univerzah je bilo reševanje nalog prostovoljno, na drugih pa obvezno. Avtorji raziskave sklepajo, da se šibkejši učenci verjetno niso in tudi ne bi odločili za programiranje in so tako sodelovali le boljši učenci. Rezultati v tabelah kažejo, da so se učenci, potemtakem boljši učenci, odrezali nepričakovano slabo. Ali je razlog v tem, da so bile sestavljene naloge pretežke, ali niso ustrezale interesom učencev in njihovemu znanju ali niso imeli dovolj časa za reševanje?

Avtorji raziskave raziščejo nekaj možnih razlogov (McCracken idr., 2001, str. 134):

� Učenci s slabimi programerskimi navadami. Učenci brez programerskega predznanja obravnavajo izvorno kodo kot enostaven tekst namesto kot izvršljiv računalniški program, ki rešuje specifično nalogo.

� Učenje modernih objektno-orientiranih jezikov (npr. Java). Nekatere obstoječe raziskave kažejo, da učenje objektno-orientiranega jezika zahteva več časa, da učenci usvojijo programsko okolje za reševanje problemov, in zato ni časa za poučevanje skladov, vrst in dreves. Na določeni univerzi so bili slabi rezultati pri nalogi P1, ker še niso obravnavali sklada. Naloge so bile oblikovane tako, da je bil zanje primeren proceduralni in ne objektno-orientiran pristop.

� Omejen laboratorijski čas za reševanje. Učenci so v vprašalniku o nalogah izjavili, da so imeli premalo časa za reševanje. Nekateri učenci so naloge celo prvič reševali za računalnikom.

Odgovor na prvotno vprašanje, ali znajo učenci po končanem predmetu uvod v programiranje programirati na pričakovani stopnji sposobnosti, je po izvedeni raziskavi negativen. Učenci v tej raziskavi nimajo usvojenih tehničnih sposobnosti, ki so potrebne za programiranje.

Učenci morajo med procesom učenja dobiti povratno informacijo, da bi se lahko zavedali težav in omejitev, ki jih imajo. Imajo tudi napačno predstavo o tem, da se pri predmetu uvod v programiranje učijo sintakso programskega jezika. Aktivnosti, ki so pomembne in ki bi se jih učenci morali zavedati, so: planiranje, oblikovanje in testiranje. Učenci pogosto kar preskočijo proces problemskega reševanja, ker se jim mogoče zdi prezahtevno ali nepomembno (prav tam, str. 133).

Page 18: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

11

2.2 Poučevanje programiranja

Tradicionalni pristop je učenje deklaracije določenega programskega jezika, ki zajema naslednje aktivnosti: učenje sintakse, načrtovanje in oblikovanje programa. Toda raziskave kažejo, da so pomembni tudi drugi vidiki, kot na primer spreminjanje in testiranje spremenljivk v programu. Poglavitni vir težav ni v sintaksi in razumevanju njenih problemov, ampak v osnovnem načrtovanju programa. Po Winslowu (v Ala-Mutka, 2004, str. 3–4), učenci poznajo sintakso in semantiko posameznih izjav v programu, ne vedo pa, kako sestaviti delujoč program.

Učenci se v šolah začnejo učiti programirati v jeziku, ki je že določen v kurikulumu, saj velja prepričanje, da je enostaven. Učenci se s postopnim pisanjem programov učijo lastnosti in sintakso programskega jezika. Znanje se nadgrajuje s kombiniranjem več ukazov skupaj. Na začetku je poudarek na sintaksi programskega jezika, šele nato se osredotočijo na semantiko (Booth, 1992, str. 16) Programiranje ni preprosta sposobnost, ampak je kombinacija povezanih sposobnosti, kot so analiza, specifikacija, oblikovanje algoritma in konstrukcija programske kode. Pri učnih urah predmeta uvod v programiranje se učitelji osredotočajo na konstrukcijo kode. Poučevanje programiranja se zato hitro spreobrne v osredotočanje na vidike sintakse programskega jezika (Thomsen, 2008, str. 70). Tudi učbeniki posvečajo svojo vsebino predstavitvi znanja določenega programskega jezika (Robins idr., 2003, str. 140–141). Učbeniki pomagajo učencem razumeti programski jezik in strukturo programov, vendar ne pokažejo, kako programirati, kakšen je programski proces (Bennedsen in Caspersen, 2008, str. 10).

Cilj programiranja je, da se učenci naučijo sistematičnega pristopa oblikovanja računalniških programov. Proces programiranja mora biti učencem predstavljen že na začetku. Tradicionalno poučevanje poteka skozi učne materiale, kot so učbeniki, zapiski, tabla, PowerPoint predstavitve in podobno (tabela 4). Vendar to ni dovolj dobro za predstavitev procesa programiranja. Tradicionalni učni materiali so uporabni za predstavitev izdelka, kot je dokončan program, vendar ne za predstavitev dinamičnega procesa, kot je ustvarjanje programa. Z njimi lahko predstavimo idealne rešitve, ki so rezultat nelinearnega razvojnega procesa. To je problematično, saj učenci dobijo vtis, da obstaja linearna in neposredna pot do rešitve. Rešitve oblikujejo na podoben način, in ko ugotovijo, da ne zmorejo oblikovati pravilne rešitve, obtožujejo sebe in se počutijo nesposobne. Posledično izgubijo samozavest in motivacijo za učenje programiranja (Bennedsen in Caspersen, 2008, str. 6–7).

Page 19: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

12

Tabela 4: Primerjava različnih učnih metod

Učna metoda Prednosti Slabosti Programiranje na tabli

- Učenci lahko sledijo. - Interakcija med učiteljem

in učencem.

- Na tablo lahko pišemo le majhne programe.

Dokončani programi na prosojnicah

- Predstavimo večje in kompleksnejše programe.

- Razlaga je lahko prehitra in učenec ne sodeluje v procesu nastajanja.

Programiranje v živo (z uporabo računalnika in projektorja)

- Programe lahko zaženemo in testiramo s pomočjo orodij.

- Omejen čas v razredu. - Ni shranjevanja in

predstavitve s tem izginejo.

Proces snemanja (z uporabo računalnika, mikrofona in programa za snemanje)

- Vzamemo si čas, ki ga potrebujemo, da predstavimo kompleksni problem.

- Predstavitev si lahko ogledamo neštetokrat, saj je shranjena na spletu.

- Ni prikazana uporaba različnih orodij.

- Razlage v posnetkih so navadno popolne in ne prikazujejo napak ter možnih rešitev.

Vir: Bennedsen in Caspersen, 2008, str. 10–11.

Problemi, s katerimi se učitelji programiranja spopadajo, so (Kölling in Barnes, 2008, str. 18):

� Pri učni uri ni enostavno videti, kako se učenci zanimajo za programiranje in kako rešujejo probleme.

� Težko je narediti povezavo med učno uro in nalogo. � Težko je učencem vzbuditi zanimanje in jih motivirati za programiranje. � Učenci imajo različne izkušnje, zaradi katerih je treba prilagoditi poučevanje. � Programska okolja so kompleksa, dolgočasna in ne omogočajo dobre podpore

poučevanju. Problem je v tem, da se programiranja ne zna poučevati. To se počne, že odkar obstaja ta disciplina. Kljub temu se pri poučevanju pojavljajo težave, o katerih poročajo na konferencah in delovnih skupinah pod LTSN1. Rešitev je prepoznavanje problema, ki je v praksi poučevanja. Če najdemo problem v poučevanju, se moramo najprej vprašati, kakšen je izvor problema in kaj lahko naredimo, da izboljšamo razumevanje. Pomembno je, da se učiteljevo delo odraža na učencih in da preizkuša različne tehnologije, ki bi lahko imele pomembno vlogo pri poučevanju (Boyle, 2004, str. 184–185).

1 LTSN – Learning and Teaching Support Network. Izobraževalna mreža v Veliki Britaniji, ki pospešuje kakovostno učenje in poučevanje z oblikovanjem boljših praks in disciplin.

Page 20: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar

2.3 Dilema programskega jezika

Učitelji še vedno razpravljajoprogramiranja. Ali bi se moralObjektno-orientirani pristop zagovarjajo s tem, da je to naraven naresničnih problemov (Ala-Mo tem, ali je enostavnejši za umorajo učenci naučiti osnovnih struktur pro

Slika

Programski jezik Pascal je bil zasnovan leta 1970 predvsem v izobraževalne namene, saj je enostaven in dovolj zmogljiv za uporabo. Venajprimernejši za poučevanje programiranja (Lokar, 2001/2002, str. 24so pokazale, da so Java, C++ in C najbolj uporabljeni programski jeziki v izoprogramski jeziki pa niso bili oblikovani Pascal in Logo. Pri izbiri programskega jezika je smotrno razmisliti o pedagoških ovirah in prednostih, ki jih ima določen pMalmi, Mannila, Adams, Bennedsen, Devlin in Peterson, 2007, str. 207programski jezik zasnovan tako, da je dovolj enostaven in hkrati primeren za u

2 Paul Tymnn (2005); deRaadt idr. (2001,

Programski jeziki

Novi pristopi pri pouč

13

2.3 Dilema programskega jezika

itelji še vedno razpravljajo, kateri je najprimernejši programski jezik za poumoral najprej poučevati proceduralni ali objektni programski jezik?

ristop zagovarjajo s tem, da je to naraven način konceptualiziranja Mutka, 2004, str. 5). Tisti, ki uporabljajo ta pristopza učenje. Ne glede na to, kateri pristop bi moral biti prvi, se

iti osnovnih struktur programskega jezika (Lahtinen idr.

Slika 1: Ločevanje programskih jezikov

Programski jezik Pascal je bil zasnovan leta 1970 predvsem v izobraževalne namene, saj je enostaven in dovolj zmogljiv za uporabo. Večina učiteljev še danes smatra

evanje programiranja (Lokar, 2001/2002, str. 24–25)da so Java, C++ in C najbolj uporabljeni programski jeziki v izo

niso bili oblikovani za izobraževalne namene kot na primer Python, Pascal in Logo. Pri izbiri programskega jezika je smotrno razmisliti o pedagoških ovirah in

določen programski jezik. Po Schneiderju (1978, Malmi, Mannila, Adams, Bennedsen, Devlin in Peterson, 2007, str. 207–programski jezik zasnovan tako, da je dovolj enostaven in hkrati primeren za u

. (2001, 2003).

Nižji programski jeziki

Strojni jezik

Zbirni jezik

Višji programski jeziki

Delitev glede na

strukturo prevedenega

programa

Strukturirani (C, Java,

Nestrukturirani (Basic)

Delitev glede na

vsebino kodiranja

Postopkovni (C, Pascal,

Deklarativni (Prolog,

Delitev glede na

osnovni element

programiranja

Proceduralni (Pascal,

Objektni (Java, C++,

Novi pristopi pri poučevanju programiranja

programski jezik za poučevanje evati proceduralni ali objektni programski jezik?

čin konceptualiziranja Tisti, ki uporabljajo ta pristop, ne razmišljajo

kateri pristop bi moral biti prvi, se gramskega jezika (Lahtinen idr., 2005, str. 14).

Programski jezik Pascal je bil zasnovan leta 1970 predvsem v izobraževalne namene, saj je iteljev še danes smatra, da je Pascal

25). Toda raziskave2 da so Java, C++ in C najbolj uporabljeni programski jeziki v izobraževanju. Ti

izobraževalne namene kot na primer Python, Pascal in Logo. Pri izbiri programskega jezika je smotrno razmisliti o pedagoških ovirah in

1978, v Pears, Seidman, –208), bi moral biti

programski jezik zasnovan tako, da je dovolj enostaven in hkrati primeren za učenje osnov

Strukturirani (C, Java,

Pascal)

Nestrukturirani (Basic)

Postopkovni (C, Pascal,

Basic)

Deklarativni (Prolog,

Lisp)

Proceduralni (Pascal,

Basic, C)

Objektni (Java, C++,

Python)

Page 21: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

14

programiranja. Meni tudi, da mora biti cilj predmeta uvod v programiranje problemsko reševanje in oblikovanje algoritmov. Programske jezike, kot so Java, C++ in C, pa kritizira, češ da ne omogočajo dovolj algoritemskega razmišljanja, saj preveč vsiljujejo notacijo.

Howell (2003, v Chang in Chou, 2008, str. 222) trdi, da ni pomembno, kateri programski jezik se mora učiti kot prvi, temveč je pomemben pristop k učenju jezika.

3 MENTALNI MODEL

Mentalni model je prikaz uma, kognitivna struktura, ki podpira orazumljanje aktivnosti, kot je programiranje. Zdi se, da tradicionalni pristop poučevanja programiranja ni ravno idealen za konstrukcijo ustreznih mentalnih modelov konceptov programiranja (Ma, Ferguson, Roper, Ross in Wood, 2009, str. 166). To lahko sklepamo tudi iz raziskave, ki so jo opravili McCracken idr. (2001).

Mentalni modeli kontrole, podatkovnih struktur, prikaz podatkov, oblikovanja programa in problemske domene so zelo pomembni pri gradnji razumevanja. Pisanje programov vključuje vzdrževanje različnih oblik mentalnih modelov, kot so (Robins idr., 2003, str. 149, 158):

1. model znanja, 2. model razumevanja, 3. model problemskega reševanja, 4. abstraktni model računalnika (imenovan tudi notacijski stroj), 5. model oblikovanja.

Kakšne mentalne modele imajo programerji začetniki? Ma, Ferguson, Roper in Wood

(2007) so naredili raziskavo na tem področju. Ugotavljali so, kakšne mentalne modele osnovnih konceptov objektno-orientiranega programiranja imajo programerji začetniki. Preučevali so relacije mentalnih modelov in ugotavljali, kakšno zmožnost delovanja imajo mentalni modeli pri reševanju programerskih nalog. Po končanem predmetu uvod v programiranje na univerzi so izpeljali anketo med programerji začetniki in prostovoljno je sodelovalo 90 učencev. Vprašalnik je bil sestavljen iz odprtega dela in iz dela, kjer je bilo več možnih odgovorov. V odprtem delu so učenci opisali izvedbo manjšega programa, v drugem delu pa so predvideli rezultate manjšega programa. Naloge so bile sestavljene tako, da so odkrivale mentalne modele pri nalogah z vrednostmi in z referencami.

Page 22: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar

Graf 6: Mentalni modeli nalog z vrednostmi

Učence so kategorizirali kot razdelili na konsistetno primerno

Učenci, ki imajo ustrezen mentalni model, so tistiUčenci, ki imajo neustrezenskupini, ki je konsistentno neprimerna. Uspogojema:

1) primerno: mora se ujemati z modelom2) konsistentno: vedno se mora ujemati

Raziskava je pokazala, da ima tretjina uvrednostmi (graf 6) in 17 % u(graf 7). Učenci z ustrezno zmožnimi mentalnimi modeli programirajo precej bolje kot tisti, ki imajo neustrezne mentalne modele. Izkazalo se je, da modele, so celo zmogli izvajati upoštevati, da šibkejši učenci niso sodelovali v raziskavi.

3.1 Karakteristike programerjev za

Programerjem začetnikom primanjkuje znanjMutka, 2004, str. 2). Avtorji imajo razlistrokovnjak. Po Winslowu (programiranja. Po H. Dreyfusprogramer začetnik, napredni zaobvlada programiranje, in strokovnjak. Programerji strokovnjaki so hitrejši, natanuporabljajo različne vire znanja in Raziskave in študije na temo programerjev zaSpohrer (1989) sta skupaj zbrala programerjev začetnikov v zbirki študije

23%

14%63%

Mentalni modeli nalog z

vrednostmi

inkonsistentno

konsistentno neprimerno

konsistentno primerno

Novi pristopi pri pouč

15

: Mentalni modeli nalog z vrednostmi Graf 7: Mentalni modeli nalog z referencami

ence so kategorizirali kot inkonsistentne in konsistentne. Konsistentno skupino so konsistetno primerno in neprimerno skupino (vsaj en ustrezni mentalni model).

mentalni model, so tisti, ki so v konsistentno primerni skupini. en mentalni model, so tisti, ki so v inkonsistentni skupini oz.

skupini, ki je konsistentno neprimerna. Ustrezni mentalni model je takrat,

: mora se ujemati z modelom, kako programski koncept dejansko deluje: vedno se mora ujemati z dejanskim modelom.

da ima tretjina učencev neustrezen mentalni model pri nalogah z % učencev ustrezen mentalni model pri nalogah z referencami

enci z ustrezno zmožnimi mentalnimi modeli programirajo precej bolje kot tisti, ki imajo neustrezne mentalne modele. Izkazalo se je, da čeprav imajo neustrezne mentalne

celo zmogli izvajati nekatere napredne programerske konceptečenci niso sodelovali v raziskavi.

Karakteristike programerjev začetnikov

etnikom primanjkuje znanja in veščin programerjev strokovnjakov (AlaMutka, 2004, str. 2). Avtorji imajo različna mnenja, kdaj programer zastrokovnjak. Po Winslowu (1996, v Robins idr., 2003, str. 139), je potrebnih 10 let

Dreyfusu in S. Dreyfusu (1986, prav tam), obstaja pet stopenj: etnik, napredni začetnik, programer s kompetencami, programer

in strokovnjak. Programerji strokovnjaki so hitrejši, natanne vire znanja in učinkovite strategije.

kave in študije na temo programerjev začetnikov so predvsem iz 80. skupaj zbrala različne poglede, karakteristike in skupna nerazumevanja

etnikov v zbirki študije Studying the Novice Programer.

23%

14%

Mentalni modeli nalog z

vrednostmi

konsistentno neprimerno

konsistentno primerno

41%

42%

17%

Mentalni modeli nalog z

referencami

inkonsistentno

konsistentno neprimerno

konsistentno primerno

Novi pristopi pri poučevanju programiranja

: Mentalni modeli nalog z referencami

. Konsistentno skupino so skupino (vsaj en ustrezni mentalni model).

ki so v konsistentno primerni skupini. sistentni skupini oz.

trezni mentalni model je takrat, ko ustreza obema

kako programski koncept dejansko deluje;

mentalni model pri nalogah z encev ustrezen mentalni model pri nalogah z referencami

enci z ustrezno zmožnimi mentalnimi modeli programirajo precej bolje kot tisti, eprav imajo neustrezne mentalne

nekatere napredne programerske koncepte, vendar moramo

in programerjev strokovnjakov (Ala-amer začetnik postane

je potrebnih 10 let obstaja pet stopenj:

etnik, programer s kompetencami, programer, ki že in strokovnjak. Programerji strokovnjaki so hitrejši, natančni,

80. let. Soloway in skupna nerazumevanja

.

41%

Mentalni modeli nalog z

referencami

inkonsistentno

konsistentno neprimerno

konsistentno primerno

Page 23: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

16

Tabela 5: Avtorji o programerjih začetnikih

Avtorji Skupne karakteristike Linn in Dalbey (1989)

- premalo časa namenijo za načrtovanje in testiranje programske kode,

- majhni lokalni popravki v programu namesto rekonstrukcije programa.

Kurland, Pea, Clement in Mawby (1989)

- znanje je bolj v kontekstu kot pa splošno.

Winslow (1996)

- omejeni so na površinsko znanje, - znanje je površinsko organizirano, - primanjkuje jim podrobnega mentalnega

modela, - spodleti jim uporabiti pomembno znanje, - za reševanje problemov uporabljajo splošne

problemske strategije namesto specifičnih programerskih strategij,

- programirajo vrstico za vrstico, - poznajo sintakso in semantiko posameznih

izjav, vendar jih niso sposobni sestaviti v delujoč program,

- težave imajo pri prenosu ročnih problemov v računalniški program.

Widowski in Eyferth (1986)

- naenkrat lahko vidijo le eno vrstico, - programerji strokovnjaki imajo

fleksibilnejše strategije in so bolj sposobni prepoznati in se odzvati na nove situacije.

Perkins, Hancock, Hobbs, Martin in Simmons (1989)

- slabo sledijo kodi.

Vir: Povzeto po Robinsu idr., 2003, str. 137–172.

V splošnem imajo začetniki težave zaradi primanjkovanja specifičnega znanja in strategij programiranja. Pomembni vprašanji, ki si ju moramo zastaviti, sta: Kako se začetniki učijo programiranja? Zakaj imajo težave pri učenju? Odgovor leži v različnih področjih oz. aktivnostih, kot so: kognitivna psihologija, prikaz znanja, problemsko reševanje, delovni spomin itd. (Robins idr., 2003, str. 147; Nuutila idr., 2008, str. 50).

Page 24: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

17

4 PSIHOLOGIJA PROGRAMIRANJA

Kognitivna psihologija je pomembna zaradi funkcij, na katere se osredotoča: mišljenje, spomin, učenje, razumevanje, problemsko reševanje oz. vse, kar spada pod človeško procesiranje informacij. Procesiranje informacij v umu postane pri programiranju analogno z računalnikom. S človeškim umom modeliramo računalniški program. Informacija je predstavljena kot podatek v računalniškem sistemu in kognitivne funkcije so nujne za procesiranje podatkov. Znanje je informacija, ki se procesira v spomin in je dveh vrst: proceduralno in deklarativno. Učenje je prenos informacije iz deklarativne v proceduralno obliko (Booth, 1992, str. 40–41). Zato pravimo, da je programiranje kognitivni proces. Področja, ki nas zanimajo, so: razumevanje programa, mentalni modeli, potrebno znanje in sposobnosti za programiranje (Robins idr., 2003, str. 139). Kognitivni faktor, ki ga je treba upoštevati, je tudi učni stil. Ena izmed poznanih klasifikacij učnih stilov deli učenje na površinsko in globoko (razumevanje). Globoko razumevanje se osredotoča na razumevanje teme, medtem ko je površinsko učenje na pamet. Najustreznejša strategija za programiranje leži med obema učnima stiloma, saj je površinsko učenje uporabno pri sintaksi, globinsko pa je potrebno za razvoj nadaljnjih kompetenc. Oba učna stila morata biti uporabljena istočasno, saj se moramo najprej naučiti pravil sintakse določenega programskega jezika in jih šele nato konkretno uporabiti. Učitelj mora upoštevati različne učne stile in uporabiti različne pristope poučevanja, ki so primerni za določen učni stil (Jenkins, 2002, str. 54). Splošno gledano obstajajo učenci, ki se učijo brez pretiranega truda (efektivni), in tisti, ki se ne učijo, če jih snov ne pritegne (neefektivni). Na uspeh pri učenju programiranja vpliva motivacija in strategije učenja. Strategije učenja zaznamujejo in oblikujejo učenca v efektivnega ali neefektivnega. Predhodno znanje je lahko tudi poglavitni vir napak, še posebej pri prenosu iz problemskega reševanja v naravnem jeziku v programiranje v programskem jeziku. Primer: nekateri učenci razumejo, da se pogoj v zanki while mora preverjati nenehno, namesto da se preveri le enkrat na iteracijo (Ala-Mutka, 2004, str. 3). Kako spreobrnemo neefektivnega učenca v efektivnega? Pomembni faktorji, ki jih moramo pri tem upoštevati, so: motivacija, splošno in specifično znanje, strategije in mentalni modeli (Robins idr., 2003, str. 165).

4.1 Merjenje znanja

Za dobro poučevanje se moramo vprašati, ali so cilji poučevanja doseženi. Vrednotenje izobraževanja je pomembna komponenta oblikovalno-izobraževalnega modela. Na žalost pa ni nobenega modela, s pomočjo katerega bi lahko evalvirali učenje. Kraiger, Ford in Salas (1993) domnevajo, da je rezultat učenja večdimenzionalen, tj. sprememba v kognitivni, čustveni in spretnostni sposobnosti. V svoji študiji predlagajo tri kategorije učenčevega pridobljenega znanja (slika 2) z upoštevanjem Bloomove (1956) in Gagnejeve (1984) taksonomije (Kraiger, Ford in Salas, 1993, str. 313–314):

Page 25: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

18

Slika 2: Klasifikacijska shema

1. Kognitivni izidi

Cilj kognitivnega znanja je izgradnja teoretičnega modela, kako človek funkcionira. Kognitivna perspektiva se osredotoča na statične in tudi na dinamične procese pridobljenega znanja. Za merjenje kognitivnih izidov so avtorji Kraiger idr. prilagodili Gagnejeve (1984) tri kategorije evalvacijskih merjenj (v Kraiger idr., 1993, str. 313-316):

a) Verbalno znanje

Gre predvsem za deklarativno znanje (informacija o čem). Razvoj verbalnega znanja je potreben (vendar ne zadosten) za oblikovanje sposobnosti na višjem nivoju.

b) Organizacija znanja

Mišljeno je predvsem proceduralno znanje (informacija kako). Bolj kot količina znanja je pomembna organizacija znanja v spominu, ki jo opišemo z mentalnim modelom. Ne organizirajo se samo obstoječe informacije, ampak tudi novopridobljeno znanje. S pomočjo mentalnega modela lahko odkrivamo razlike med programerji začetniki in strokovnjaki. Programerji strokovnjaki nove informacije shranjujejo v mentalnem modelu na način, kot je obstoječe znanje organizirano. Sposobni so hitro dostopati do strategij za reševanje problemov in tako hitreje reševati probleme.

c) Kognitivne strategije

Andersonova teorija (1982) pravi, da je razvijanje sposobnosti nadaljevalni proces. Bolj ko se znanje in procesi sestavijo, bolj elegantno se strategije prikazujejo. (v Kraiger idr., 1993, str. 315) Kognitivne strategije se nanašajo na strategije, ki pospešijo pridobivanje in aplikacijo znanja. Metakognitivne sposobnosti kot načrtovanje, opazovanje in pregled ciljev so pomemben člen pri oblikovanju kognitivnih sposobnosti in dobro kazalo učenja. Te

Page 26: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar

sposobnosti so močnejše pri programerjih strokovnjakih. V nasprotju z zaimajo strokovnjaki mo

� opustijo problemsko reševanje, � dobro ocenijo težavnost novih problemov,� so bolj sposobni

opravljanju naloge.

2. Spretnosti

Ta kategorija se nanaša na razvijanje tehnirazvijanju sposobnosti v splošnem predpostavljajo tri definirane faze (318):

a) Začetna pridobitev sposobnosti

Prehod znanja iz deklarativnega v proceduralno. Na tej fazi so uokrnjene in delo zato poteka poda je ponavljajoča se vaja in urjenje ustrezna tehnika za uprogramskega jezika.

b) Kompilacija sposobnosti

Na tej stopnji je delo hitrejše in napak je manj. Uizvajati aktivnosti. Po kompilacija rezultat dveh medsebojnih procesov: proceduralizacije in kompozicije. V proceduralizaciji učenec oblikuje metodo, ki je specifina primer programer se naupri različnih tipih problemov. V kompilaciji pa je usposobnost je ustrezna v dolo

c) Avtomatičnost sposobnosti

Začetne sposobnosti postanejo prilagodljive v praksi. Navadučenci imajo na voljo veopazovanja. Na primer med vožnjo avtomobila je šofer sposoben spreminjati hitrost, menjati prestave, opazovati cesto, reagirati na okolico, se pogovarj317–318)

3. Čustveni izidi

a) Vedenjsko znanje

Začetna

pridobitev

sposobnosti

Novi pristopi pri pouč

19

čnejše pri programerjih strokovnjakih. V nasprotju z zaimajo strokovnjaki močnejše metakognitivne sposobnosti, saj:

pustijo problemsko reševanje, če se izkaže za neuspešno,dobro ocenijo težavnost novih problemov, so bolj sposobni oceniti število poskusov, ki bi jih morali izvršiti pri opravljanju naloge.

Ta kategorija se nanaša na razvijanje tehničnih ali mehaničnih sposobnosti. Teorije o razvijanju sposobnosti v splošnem predpostavljajo tri definirane faze (prav tam

Slika 3: Faze pridobitve spretnosti

etna pridobitev sposobnosti Prehod znanja iz deklarativnega v proceduralno. Na tej fazi so učenokrnjene in delo zato poteka počasneje. Parsons in Hadenova (2006, str. 1) menita,

ča se vaja in urjenje ustrezna tehnika za uprogramskega jezika.

Kompilacija sposobnosti Na tej stopnji je delo hitrejše in napak je manj. Učenec je sposoben vzporedno izvajati aktivnosti. Po Andersonu (1982, v Kraiger idr., 1993kompilacija rezultat dveh medsebojnih procesov: proceduralizacije in kompozicije. V

čenec oblikuje metodo, ki je specifična za produkcijo spretnosti na primer programer se nauči uporabljati določene metode za odstranjevanje napak

nih tipih problemov. V kompilaciji pa je učenec sposoben presoditi, katera sposobnost je ustrezna v določeni situaciji.

nost sposobnosti etne sposobnosti postanejo prilagodljive v praksi. Navade postanejo avtomati

enci imajo na voljo večje kognitivne vire. Naloge se izvedejo brez zavestnega opazovanja. Na primer med vožnjo avtomobila je šofer sposoben spreminjati hitrost, menjati prestave, opazovati cesto, reagirati na okolico, se pogovarj

pridobitev

sposobnostiKompilacija Avtomatičnost

Novi pristopi pri poučevanju programiranja

nejše pri programerjih strokovnjakih. V nasprotju z začetniki

e se izkaže za neuspešno,

oceniti število poskusov, ki bi jih morali izvršiti pri

nih sposobnosti. Teorije o prav tam, str. 316–

Prehod znanja iz deklarativnega v proceduralno. Na tej fazi so učenčeve sposobnosti (2006, str. 1) menita,

a se vaja in urjenje ustrezna tehnika za učenje sintakse

enec je sposoben vzporedno v Kraiger idr., 1993, str. 316), je

kompilacija rezultat dveh medsebojnih procesov: proceduralizacije in kompozicije. V na za produkcijo spretnosti –

ene metode za odstranjevanje napak enec sposoben presoditi, katera

e postanejo avtomatične, je kognitivne vire. Naloge se izvedejo brez zavestnega

opazovanja. Na primer med vožnjo avtomobila je šofer sposoben spreminjati hitrost, menjati prestave, opazovati cesto, reagirati na okolico, se pogovarjati. (prav tam, str.

Avtomatičnost

Page 27: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

20

Po Gagneju (1984, v Kraiger idr., 1993, str. 318), je vedenje znanje, ki ga pridobimo, in notranje stanje, ki vpliva na odločitve posameznikovih dejanj. Na vedenje posameznika lahko vplivamo na primer z oglaševanjem. To je dokaz, da je vedenje lahko spremenljivo. Raziskava teorije vedenjskega modela razkriva, da morajo biti sposobnosti najprej razvite z opazovanjem, vajo, nato okrepitvijo. Vedenjski rezultati, ki bi lahko bili pridobljeni s poučevanjem, so: individualnost, kreativnost, organiziranost in ločevanje, kar je pomembno za učenje, tolerantnost za raznolikost, notranja rast, samozavedanje itd. (prav tam). Po Perkinsu (1989, v Ala-Mutka idr., 2004, str. 3), obstajata dva vedenjska tipa pri soočanju problemskih situacij. Prvi, stopper, se v problemski situaciji ustavi in izgubi vse upe za reševanje problema. Drugi, mover, pa z rekonstrukcijo kode poskuša rešiti problem in napake obravnava kot povratno informacijo. Ekstremni mover, tinkerer, ne zmore slediti svojemu programu ter na slepo dela spremembe v programski kodi.

b) Motivacija

Imamo več vrst motivacije, kot je na primer notranja, zunanja in socialna motivacija. V splošnem so programerji motivirani, da uspejo napisati delujoč program in ne spodletijo namerno (Jenkins, 2002, str. 54). Po Gagnejevi klasifikaciji (1984, v Kraiger idr., 1993, str. 318), je motivacija notranje stanje, ki vpliva na posameznikove navade. Motivacijska sprememba je rezultat poučevanja, kar pomeni, da so rezultati pričakovani. Avtorji Kraiger, Ford in Salas so se v članku osredotočili na tri motivacijske rezultate, ki so sekundarni objekti izobraževanja (1993, str. 320–321):

� Motivacijska dispozicija

Raziskava kognitivnega razvoja pri otrocih je pripeljala do spoznanja, da obstajata dve motivacijski dispoziciji: orientacija oblasti in delovna orientacija. Prva povečuje tekmovalnost, ki se nanaša na nalogo. Druga pa se nanaša na to, da naredimo nekaj dobro. Bolj zmogljivi učenci so sposobni obvladovati motivacijsko nagnjenje, tj. privzeti orientacijo, ki je primerna za določeno situacijo.

� Samoučinkovitost

Nanaša se na posameznikovo zaznavanje delovnih zmožnosti v določeni aktivnosti, tj. napor, ki ga porabi v aktivnosti, vztrajnost in učinek, ki ga pridobi iz aktivnosti. Spremembe v učenčevi samoučinkovitosti bi lahko bile indikator učenja in razvijanja sposobnosti med procesom izobraževanja.

� Postavljanje ciljev

Določanje ciljev je pomemben dejavnik, ki vpliva na prenos naučenih navad za delo. Pri postavljanju ciljev se kažejo razlike med začetniki in strokovnjaki. Slednji si namreč postavijo težje, hierarhično strukturirane cilje in so predani uresničitvi cilja. Začetniki določajo cilje na podlagi že poznanih metod. Ne oblikujejo svojih metod, ki bi morebiti bile primernejše za reševanje problema.

V tabeli 6 so predstavljeni načini, kako lahko merimo posamezne kategorije učenčevega pridobljenega znanja.

Page 28: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

21

Tabela 6: Merjenje pridobljenega znanja

Kategorija Konstrukti učenja

Merjenje

Kognitivni izidi

Verbalno znanje

Deklarativno znanje

Testi, s katerimi merimo znanje: - test moči, ki ugotavlja točnost, - test hitrosti, ki ugotavlja, kako

hiter je dostop do znanja.

Organizacija znanja

Mentalni modeli V tej kategoriji se preverja razumevanje znanja.

Kognitivne strategije

Metakognitivne sposobnosti

Učenci opišejo in predstavijo, kaj naredijo na vsakem koraku. Koraki razkrivajo, ali so učenci testirali vse hipoteze, delovali pod določenimi cilji in razumeli, ali je bil kakšen napredek k rešitvi.

Spretnosti Kompilacija Kompozicija Proceduralizacija

Slediti je treba učenčevem oblikovanju sposobnosti. To vključuje opazovanje in opisovanje določenih navad posameznikov: na kaj se učenci osredotočajo, kako rešijo nalogo. Učenec lahko demonstrira, kako je reševal določeno nalogo.

Avtomatičnost Avtomatično procesiranje

Več možnosti: - učenec paralelno rešuje dve

nalogi, - učenec rešuje nalogo, ki vsebuje

napačne objekte, katere naj bi avtomatično prepoznal.

Čustveni izidi

Vedenje Vedenjska moč Primer: uporaba samoporočil, s katerimi se ugotovi, kakšna prepričanja in poglede imajo ter kako pogosto razmišljajo o določenem vidiku.

Motivacija Motivacijska dispozicija Samoučinkovitost Postavljanje ciljev

Ena od tehnik: učencem se pokažejo naloge, ki se razlikujejo po zahtevnosti. Sami izberejo naloge, za katere menijo, da jih znajo rešiti.

Vir: Kraiger idr., 1993, str. 323.

Page 29: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

22

5 ABSTRAKCIJA

Programiranje zahteva specifičen tip razmišljanja, ki ga začetniki ne obvladajo. Premisliti je treba vse možne situacije, objekte, s katerimi se mora program ukvarjati. Zato morajo biti programski mehanizmi dobro razumljeni, da so lahko uporabljeni pri pisanju programa. Vendar ti mehanizmi niso nekaj, kar bi učenci razumeli že vnaprej. Veliko je novih, abstraktnih konceptov, ki se jih morajo začetniki naučiti in razumeti (Nuutila idr., 2008, str. 50–51).

Pri programiranju se od učencev zahteva, da so sposobni izvajati problemske naloge, abstraktno razmišljati, oblikovati vzorce in analizirati. Veliko učencev ni sposobnih kompleksnega razmišljanja in izdelovanja modelov, saj jim je identifikacija problema v algoritmu pretežka. Moramo se vprašati: V čem je problem? Česa jim primanjkuje? Ali je kriva nižja inteligenca? Kramer (2007, str. 36) meni, da je ključ v abstraktnosti, in sicer v sposobnosti za izvajanje abstraktnega mišljenja in kazanju abstraktnih sposobnosti. S tem se strinja tudi Blackwell (2002, v Nuutila idr., 2008, str. 50), ki pravi, da težave izhajajo iz potrebe po abstrakciji računalniškega programiranja. Torej je abstraktnost poglavitna sposobnost za izvajanje matematike in programiranja (Kramer, 2007, str. 36). Toda ali je učenca sploh možno naučiti abstraktnosti?

V stopnji formalno logičnega mišljenja (teorija kognitivnega razvoja po Piagetu3), ki traja od 12. leta do odraslosti, se razvijejo sposobnosti za abstraktno, sistematično in hipotetično mišljenje. Uporabljajo se simboli, ki predstavljajo abstraktne koncepte, na primer v matematiki in računalništvu. Na tej stopnji so posamezniki lahko sposobni abstraktnega in znanstvenega mišljenja. Da bi lahko učence naučili abstraktnega mišljenja in spretnosti, Huitt in Hummel (2003, v Kramer, 2007, str. 41) predlagata uporabo različnih tehnik pri poučevanju. Učencem moramo dati možnost, da raziščejo hipotetična vprašanja in da razložijo, kako rešiti problem. Ala-Mutka (2004) meni, da je pri učenju abstraktnosti koristna uporaba vizualizacije.

Čeprav je matematika poglavitni predmet za učenje abstraktnega mišljenja, se mora abstraktnost poučevati tudi preko drugih tem. V računalništvu učenci niso le sposobni obvladovanja simbolike, ampak so sposobni narediti tudi prevod neformalnega resničnega sveta v poenostavljen abstraktni model. Učitelji morajo poskrbeti, da bo poučevanje programiranja učinkovito. Sami morajo imeti ustrezne abstraktne sposobnosti. Učenčeve abstraktne sposobnosti pa lahko izmerimo tako, da pogledamo ocene glede na prejšnja leta, ocene skupinskega dela, laboratorijskega dela in testov. S pomočjo teh podatkov lahko prilagodimo tehnike poučevanja glede na učenčeve sposobnosti (Kramer, 2007, 42–44).

Kaj pravijo različni avtorji o abstraktnosti (povzeto po Kramer, 2007; Nuutila idr., 2008), je prikazano v tabeli 11.

3 Jean Piaget (1896-1980), švicarski psiholog in filozof.

Page 30: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

23

Tabela 7: Avtorji o abstraktnosti

Avtorji

Devlin »Ko se enkrat zavedamo, da je računalništvo pravzaprav konstrukt, manipulacija in razumevanje abstraktnosti, nam postane jasno, da je to predpogoj za dobro pisanje računalniških programov, ki je pravzaprav sposobnost za obvladovanje abstraktnosti.«

Wing »Abstraktnost je v računalniškem mišljenju pomembna, tj. treba je misliti na več ravneh abstrakcije.«

Ghezzi, Jazayeri, Mandrioli

»Abstrakcija je temeljno načelo za obvladovanje kompleksnosti pri razvoju programske opreme.«

Blackwell

»Oblikovanje programa zahteva definicijo novih abstrakcij, kar zahteva posebno kognitivno delovanje.«

Page 31: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

24

II. OBRAVNAVA REŠITEV

6 PROBLEMSKO REŠEVANJE

Več avtorjev (Ala-Mutka, Gomes in Mendes, Kölling in Barnes, Schneider) se strinja, da je cilj predmeta uvod v programiranje razviti sposobnosti problemskega reševanja. Programski jezik je lahko sredstvo za reševanje problemov (Gomes in Mendes, 2007, str. 1). Linnova in Dalbey (1989, str. 78) trdita: »Programiranje je lahko bogat vir izkušenj problemskega reševanja.«

V programiranju imamo odprtokončne probleme. Rešitev ni posamezna, vendar je več možnih, ki so bodisi boljše ali slabše. Obstoječo rešitev lahko na različne načine tudi izboljšamo, s tem ko jo naredimo podrobnejšo, učinkovitejšo, elegantnejšo, razumljivejšo in podobno (Nuutila idr., 2008, str. 62).

Slika 4: Klasifikacija matematičnih problemov

Vir: Frobisher, 1994.

Linnova in Dalbey (1989, str. 58–62) navajata idealno verigo kognitivnih dosežkov: v prvem členu se programerji začetniki začnejo učiti posamezne konstrukte programskega jezika. V drugem členu se oblikujejo sposobnosti postopnega načrtovanja, testiranja in preoblikovanja kode. Nato napredujejo tako, da usvojene sposobnosti uporabijo za reševanje določenega programskega problema. Znanje in strategije, pridobljene iz poučevanega programskega jezika, se lahko prenesejo v druge programske jezike in situacije.

Page 32: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

25

6.1 Problemsko zasnovano učenje

Kaj je problemsko zasnovano učenje t. i. PBL (angl. Problem Based Learning) (Nuutila idr., 2008, str. 47)?

� Po Schmidtu (1983, prav tam): »Učenje, ki je simulirano z opisi resnično življenjskih

problemov.« Potrebna je pojasnitev določenega primera, ki ga je treba razumeti, da ga lahko rešimo. Bistvo je v pridobivanju znanja, da problem razumemo brez neposrednega reševanja.

� Učenje z ustvarjanjem rešitev resnično življenjskih problemov

Rešitve predstavljajo računalniški programi. Učenci delajo v skupinah in oblikujejo rešitve za probleme, ki imajo več možnih rešitev. Namen je razvijati sposobnosti za reševanje problemov.

� Učenje z delovanjem na kompleksnih, resnično življenjskih nalogah

Učenje na osnovi problema zajema različne faze: analiza, sinteza, implementacija, predstavitev.

Problem mora biti zasnovan tako, da spodbuja razvoj metakognitivnih sposobnosti (Barg, Fekete, Greening, Hollands, Kay, Kingston in Kathryn, 1999, str. 6). Resničnost problema ima kar nekaj prednosti. Po Haflerjevi (1998, v Nuutila idr., 2008, str. 60–61), vsebuje element presenečenja, ki opisuje nekaj, kar je v nasprotju s pričakovanjem učencev. Če je problem izmišljen, ne spodbudi učenčeve radovednosti. Resničnost pomaga zagotoviti pomembnost problema in posledično pomaga učencem prenesti učni material v določeno situacijo. Aktivira se prejšnje znanje iz primerov, kjer se je bilo treba naučiti abstraktnih konceptov. Haflerjeva (1998, prav tam) pravi tudi, da potreba po resničnosti vodi k pedagoškemu in učinkovitejšemu problemu. Resničnost vsebuje protislovja, ki prisili učence, da razmišljajo bolj poglobljeno in odprtokončno.

Problemsko zasnovano učenje predstavlja problem, vprašanje ali uganko, ki jo učenci želijo rešiti. Je odprtokončni problem, ki vodi k učenju. Učenje je samostojno ali v skupini. Vloga učitelja je, da spodbuja učence pri delu. Problem predstavlja naloga, začetna aktivnost, ki se osredotoča na določen vidik v snovi. Učenci uporabljajo učni material, s pomočjo katerega preučijo problem, ki je (če je mogoče) predstavljen v resnično življenjskem kontekstu. Učenec je lahko dodeljen v majhno problemsko skupino, ki nato interaktivno sodeluje z učenci in učiteljem. Med sabo si izmenjujejo znanje in razpravljajo o različnih pristopih za razrešitev problema (povzeto po Barg idr., 1999, str. 4–6). V skupini učenec išče, razpravlja in upošteva možne rešitve ne glede na programski jezik. Šele nato, ko je algoritemska rešitev oblikovana, se jo predstavi s sintakso programskega jezika (Deek, Kimmel in McHugh, 1998, str. 314). Problemsko zasnovano učenje po metodi 7 korakov (Nuutila idr., 2008, str. 54–57):

1. Pregled problema: učenci se spoznajo s materialom določenega problema. 2. Identifikacija problema.

Page 33: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

26

3. Viharjenje (angl. Brainstorming): asociacije, ideje, ki jih imajo učenci o problemu. S tem se aktivira prejšnje znanje o temi. Viharjenje je divergentna4 aktivnost.

4. Skica opisanega modela: zbrano znanje učenci sestavijo v model, ki pojasnjuje, kaj se dogaja v problemu. Skiciranje modela je konvergentna5 aktivnost, saj učenci sistematizirajo material, ki so ga generirali z viharjenjem, v povezano celoto. Pri skiciranju modela oz. pri zbiranju idej se vzpostavijo nove abstrakcije in relacije.

5. Vzpostavitev učnih ciljev: vzpostavijo se učni cilji, ki so zasnovani v modelu. 6. Individualno učenje: vsak učenec se individualno uči, da doseže vse učne cilje. 7. Izdelava: razlaga konceptov, analiza materiala, evalvacija.

Učitelj je pasivni opazovalec in ne sme biti preveč aktiven. Ne sme biti odgovoren za učenčevo učenje, vendar je njegova prisotnost pomembna pri premagovanju ovir in preprečevanju razpada skupine. Svetuje učencem, kaj je treba izboljšati, česa primanjkuje, katere ideje privedejo do rešitve. Učenci so tisti, ki morajo imeti nadzor od začetka do konca (Nuutila idr., 2008, str. 62).

Problemsko zasnovano učenje stremi k naslednjim ciljem (Barg idr., 1999, str. 21–22):

� samostojnost in iniciativa učenca, � kritično mišljenje in sposobnost problemskega reševanja, � sposobnost dela v skupini, � komunikacijske sposobnosti, � sposobnost planiranja.

Problemi, s katerimi se učenci soočajo (Nuutila idr., 2008, str. 64):

� novi abstraktni koncepti in mehanizmi, � nenehno reševanje problema in sprotno oblikovanje, � stroga sintaksa in semantika programskega jezika, � programsko orodje in delovne navade.

6.2 Raziskava

Zanimiva je raziskava, ki jo je izvedel Rolandsson (2009) v obliki vprašalnikov. Zanimalo ga je predvsem, kako učitelji reflektirajo svoje poučevanje, kakšno mnenje imajo o problemskem reševanju in kakšne sposobnosti imajo učenci pri učenju programiranja. Vprašalnik je izpolnilo 104 učiteljev različnih srednjih šol na Švedskem. Avtor je zasnoval vprašanja po modelu kognitivne verige dosežkov (Linn in Dalbey, 1989) in sicer tako, da je izbiro odgovorov razdelil na tri stopnje (Rolandsson, str. 366–367):

1. Stopnja: osnovni konstrukti programskega jezika. 2. Stopnja: sposobnosti oblikovanja in postopnega načrtovanja. 3. Stopnja: Sposobnosti problemskega reševanja.

4 Divergentna aktivnost – aktivnost, ki rešuje problem na več možnih načinov. Rešitev je neskončno. 5 Konvergentna aktivnost – aktivnost, ki je usmerjena k iskanju rešitve problema z eno samo možno rešitvijo.

Page 34: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar

Poglejmo si dve vprašanji:

� Kaj je glavni razlog, da u

Graf 8

Učitelji so mnenja (59%), da in/ali strukturiranega razmišabstraktnem, matematičnem ali problemskem razmiodstotek učiteljev meni, da je tevprašati tudi, kako si učitelji interpretirajo

� Katere znanja so potrebna

Graf 9: Znanja

Iz zgornjega grafa lahko razberemo, da je problemskega reševanja oblikujejo programerja v strokovnjaka. Veučiteljev pa je mnenja, da so klju(stopnja 2). Avtor raziskave meni, da je razlog

19%

13%

33%

Novi pristopi pri pouč

27

mo si dve vprašanji:

je glavni razlog, da učenci niso sposobni reševati kompleksnih nalog

8: Težave pri reševanju kompleksnih nalog

, da največji problem leži v sposobnosti analitišljanja (stopnja 2). Le 19% učiteljev je mnenja, da je te

nem ali problemskem razmišljanju (stopnja 3). Zakaj tako nizek iteljev meni, da je težava v sposobnosti problemskega reševanja

itelji interpretirajo problemsko reševanje?

Katere znanja so potrebna, da programer postane strokovnjak?

Znanja, ki oblikujejo programerja strokovnjaka

Iz zgornjega grafa lahko razberemo, da je 33% učiteljev mnenja, da sposobnosti evanja oblikujejo programerja v strokovnjaka. Več kot polovica (

so ključne sposobnosti oblikovanja in postopnega . Avtor raziskave meni, da je razlog za tako visok odstotek dejstvo

9%

59%

13%

Osnovni konstrukti

programskega jezika

Sposobnosti oblikovanja in

postopnega načrtovanja

Sposobnosti problemskega

reševanja

Drugo mnenje

9%

56%

2%Osnovni konstrukti

programskega jezika

Sposobnosti oblikovanja in

postopnega načrtovanja

Sposobnosti problemskega

reševanja

Drugo mnenje

Novi pristopi pri poučevanju programiranja

iso sposobni reševati kompleksnih nalog?

i v sposobnosti analitičnega, logičnega iteljev je mnenja, da je težava v

ljanju (stopnja 3). Zakaj tako nizek evanja? Smiselno se je

, ki oblikujejo programerja strokovnjaka

iteljev mnenja, da sposobnosti kot polovica (56%)

sposobnosti oblikovanja in postopnega načrtovanja za tako visok odstotek dejstvo, da ima vsak

Sposobnosti oblikovanja in

postopnega načrtovanja

Sposobnosti problemskega

Sposobnosti oblikovanja in

postopnega načrtovanja

Sposobnosti problemskega

Page 35: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar

drugi učitelj sposobnosti analiti(Ronaldsson, str. 367). Zanimivo bi bilo raziskatiučitelji za doseganje učenčevega

7 VIZUALIZACIJA

Pomembnost uporabe vizualizacije so opazili razli2001; Pears, 2010). Tudi Milne in Rowe (2005) razumevanju osnovnih konceptov programiranja. CodeWitzvizualizacijskih orodij pri pou Shu (1988, v Cooper, Dann indelovati obe polovici možganov, saj se in s tem deluje tudi umetniška polovica možganov. računalniški program rešuje problem. Vendar veliko uizvedbe programa in zato posldeluje. Najpogostejša metoda za ugotavljanje napak je sled programa, vendar lahko predstavlja še večjo zmešnjavo. Po 109), je največja težava progkonstrukte uporabiti in kako z njimi upravljati. Animacija izvedbe programa lahko pomaga učencem »postaviti te koščke skupaj Veliko programerjev začetnikov ni sposobnih vzdrževati mentalnih modelov osnovnih konceptov programiranja, kar lahko omejuje razvoj programerskih sposobnosti. To odkritje predlaga bolj konstruktiven pristop k pouAvtorji Ma idr. (2009, str. 166) predlagajo začetnikom oblikovati ustrezen mentalni model.

Ta učni model integrira strategijo kognitivnega konflikta in programa Kognitivni konflikt se uporablja, ko u

6 CodeWitz projekt – mednarodni projekt za boljše programerske sposobnosti (http://www.codewitz.net/)

kognitivni

konflikt

Novi pristopi pri pouč

28

itelj sposobnosti analitičnega, logičnega in strukturiranegaZanimivo bi bilo raziskati, kakšne didaktične pristope učevega globljega učenja.

Pomembnost uporabe vizualizacije so opazili različni avtorji (Ala-Mutka, 2004; BenMilne in Rowe (2005) menita, da je vizualizacija pomembna

razumevanju osnovnih konceptov programiranja. CodeWitz6 projekt predlaga uporabo vizualizacijskih orodij pri poučevanju.

Cooper, Dann in Pausch, 2000, str. 110) smatra, da morata delovati obe polovici možganov, saj se morajo pri procesu programiranja vklju

udi umetniška polovica možganov. Učenci se naučijounalniški program rešuje problem. Vendar veliko učencev ne zmore vizualizirati korak

izvedbe programa in zato posledično ne morejo ugotoviti, kaj je narobejša metoda za ugotavljanje napak je sled programa, vendar lahko

jo zmešnjavo. Po Solowayu (1986, v Cooper, Dann in Pausch, 2000ja težava programerjev začetnikov »sestavljanje kosov«, tj.

orabiti in kako z njimi upravljati. Animacija izvedbe programa lahko pomaga čke skupaj«.

četnikov ni sposobnih vzdrževati mentalnih modelov osnovnih konceptov programiranja, kar lahko omejuje razvoj programerskih sposobnosti. To odkritje predlaga bolj konstruktiven pristop k poučevanju programiranja, ki vključAvtorji Ma idr. (2009, str. 166) predlagajo model poučevanja, ki pomaga programerjem

etnikom oblikovati ustrezen mentalni model.

Slika 5: Učni model

ni model integrira strategijo kognitivnega konflikta in programa Kognitivni konflikt se uporablja, ko učenci napačno razumejo določen koncept. U

mednarodni projekt za boljše programerske sposobnosti (http://www.codewitz.net/)

program

vizualizacije Mentalni model

Novi pristopi pri poučevanju programiranja

strukturiranega razmišljanja ne pristope uporabljajo ti

Mutka, 2004; Ben-Ari, , da je vizualizacija pomembna pri

projekt predlaga uporabo

morata za programiranje morajo pri procesu programiranja vključiti tudi slike

enci se naučijo, zakaj in kako encev ne zmore vizualizirati korakov

kaj je narobe, da program ne jša metoda za ugotavljanje napak je sled programa, vendar lahko

Cooper, Dann in Pausch, 2000, str. , tj. ugotoviti, katere

orabiti in kako z njimi upravljati. Animacija izvedbe programa lahko pomaga

etnikov ni sposobnih vzdrževati mentalnih modelov osnovnih konceptov programiranja, kar lahko omejuje razvoj programerskih sposobnosti. To odkritje

evanju programiranja, ki vključuje vizualizacijo. , ki pomaga programerjem

ni model integrira strategijo kognitivnega konflikta in programa vizualizacije. čen koncept. Učitelj

mednarodni projekt za boljše programerske sposobnosti (http://www.codewitz.net/).

Page 36: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar

izzove njihovo razumevanje (z nasprotujorazumevanja. Učenci morajo imeti ustrezno podporo za pravilno konstrukcijomodela (Ma, 2009, str. 167). Benpredlaganem modelu (prav tam

1. Predhodna faza: raziščneustrezni.

2. Faza kognitivnega konflikt

3. Faza konstrukcije modela

vizualizacije. 4. Faza aplikacije: u

novokonstruiranega modela.

7.1 Obstoječe raziskave

Raziskovalna skupina Naps, Rößling, Almstrum, Dann, Fleischer, Hundhausen, Korhonen,

Malmi, McNally, Rodger, Velázquez

računalništvu s triletno anketo (2000anketi, in sicer t. i. pre-conference

card anketo (junij 2000) med u

Nekaj ugotovitev ankete:

� Vizualizacija pripomore k boljšemu u

Graf 10: Moč strinjanja (anketa index card)

Anketa je ugotavljala moč strinjanja. odgovorilo 67 anketirancev, pri izrazilo nestrinjanja, temveč so bili nevtralanketo, ki je pokazala 100računalništva ni nihče oporekalkoncepte.

43%

49%

8%

Novi pristopi pri pouč

29

izzove njihovo razumevanje (z nasprotujočimi podatki) in povzročenci morajo imeti ustrezno podporo za pravilno konstrukcijo

(Ma, 2009, str. 167). Ben-Ari (2001, prav tam) za to predlaga vizualizacijo. prav tam):

: raziščemo modele, ki jih imajo učenci, in identificiramo, kateri so

Faza kognitivnega konflikta: ustvarimo kognitivni konflikt. Faza konstrukcije modela: učenci konstruirajo ustrezen model s pomo

: učenci rešujejo programerski problem z uporabo novokonstruiranega modela.

e

Naps, Rößling, Almstrum, Dann, Fleischer, Hundhausen, Korhonen,

Velázquez-Iturbide (2002) je preučevala uporabo vizualizacije v unalništvu s triletno anketo (2000–2002) in obširno študijo literature. Izvedli

conference online anketo (april–junij 2000) in unij 2000) med učenci in učitelji računalništva.

Vizualizacija pripomore k boljšemu učenju računalniških konceptov

strinjanja (anketa index card) Graf 11: Moč strinjanja (anketa pre

č strinjanja. Graf 8 velja za index card anketo, na katero je odgovorilo 67 anketirancev, pri čemer se jih kar 92 % strinja s trditvijo. Od tegaizrazilo nestrinjanja, temveč so bili nevtralni oz. brez mnenja. Graf 9 velja za anketo, ki je pokazala 100 % strinjanje med 29 anketiranci. Od vseh 96 u

e oporekal, da vizualizacija pomaga učencem razumeti ra

Močno

strinjanje

Strinjanje

Nevtralnost

59%

41%

Novi pristopi pri poučevanju programiranja

imi podatki) in povzroči rekonstrukcijo enci morajo imeti ustrezno podporo za pravilno konstrukcijo mentalnega

) za to predlaga vizualizacijo. Faze v

enci, in identificiramo, kateri so

enci konstruirajo ustrezen model s pomočjo

enci rešujejo programerski problem z uporabo

Naps, Rößling, Almstrum, Dann, Fleischer, Hundhausen, Korhonen,

evala uporabo vizualizacije v 2002) in obširno študijo literature. Izvedli so dve

t. i. informal index

unalniških konceptov

strinjanja (anketa pre-conference)

anketo, na katero je . Od tega jih 8 % ni

velja za pre-conference 29 anketiranci. Od vseh 96 učiteljev

encem razumeti računalniške

Močno

strinjanje

Strinjanje

Page 37: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar

Čeprav ne obstajajo raziskave, ki bi podprle ukoristnost njene uporabe (McCracken idr., 2002, str. 140).

� Pogostost uporabe vizualizacije algoritmov pri pou

Graf 12: Pogostost uporabe vizualizacije (anketa index

Graf 10 ponazarja anketo index card

računalništva, ki sodelujejo v ITiCSEpogosto, čeprav verjamejo v njeno koristnost, so ovire vizualizacijske tehnologije. Slabosti, katere je pokazala anketa pre

kot je inštalacija programov za delovanje, integracija v proces učne ure. ne bo tako pedagoško učinkovita. vredno uporabiti. »Ne glede na to, kako dobro je vizualizacijska tesestavljena, ima majhno poučidr., 2002, str. 131).

� Uporaba (dinamične) vizualizacije

7 ITiCSE – SIGCSE konferenca o pou

28%

Novi pristopi pri pouč

30

eprav ne obstajajo raziskave, ki bi podprle učinkovitost vizualizacije, uč(McCracken idr., 2002, str. 140).

Pogostost uporabe vizualizacije algoritmov pri poučevanju

: Pogostost uporabe vizualizacije (anketa index-card)

index card, na katero je odgovorilo 64 anketirancev, uunalništva, ki sodelujejo v ITiCSE7. Razlogi, zakaj vizualizacije ne uporabljajo tako

eprav verjamejo v njeno koristnost, so ovire vizualizacijske tehnologije. Slabosti, pre-conference, je čas, ki ga porabijo pri izgradnji vizualizacije,

kot je inštalacija programov za delovanje, čas, da se naučijo uporabljati programne ure. Z učenčevega vidika pa vizualizacijska tehnologija lahko da činkovita. Z učiteljskega vidika je z njo preveč dela

vredno uporabiti. »Ne glede na to, kako dobro je vizualizacijska tehnologija na, ima majhno poučno vrednost, če učencev ne zaposli v aktivno

ne) vizualizacije

konferenca o poučevanju računalništva, ki se izvaja od leta 1996 v razli

3%

24%

45%

Skoraj vsak teden

Vsak drugi teden

Enkrat do dvakrat v

ocenjevalnem obdobju

Nikoli

Novi pristopi pri poučevanju programiranja

inkovitost vizualizacije, učitelji verjamejo v

card)

na katero je odgovorilo 64 anketirancev, učiteljev zakaj vizualizacije ne uporabljajo tako

eprav verjamejo v njeno koristnost, so ovire vizualizacijske tehnologije. Slabosti, as, ki ga porabijo pri izgradnji vizualizacije,

ijo uporabljati program, ter evega vidika pa vizualizacijska tehnologija lahko da

preveč dela, da bi jo bilo hnologija načrtovana in

ne zaposli v aktivno učenje« (Naps

unalništva, ki se izvaja od leta 1996 v različnih državah.

Page 38: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar

Graf 13: Uporaba vizualizacije (anketa pre

Graf 11 ponazarja anketo pre

računalništva. Največkrat (31podatkovne strukture modificirane s podanim algoritmom. primere uporabe vizualizacije:

� algoritmi za sortiranj� uporaba diagramov za prikaz algoritmov, � uporaba podatkovnih modelov, � algoritmi v obliki diagrama poteka, relacijskih shem ali diagrama entitetnih

relacij. � uporaba animacij v PowerPointu

Smiselno se je vprašati, koliko so uRaziskava Lahtinenove, Järvinen

ki nimajo težav pri učenju programiranja, niso potrebovali vizualizacije. Prav tako uporabljali vizualizacije tisti, ki so imeli veliko težav, saj predstavlja dodatno oviro pri imajo nekaj znanja o tem, kako programi delujejovizualizacije mora biti skrbno na

7.2 Uporaba vizualizacije algoritma

Za boljše sodelovanje učencev pri uporabi vizualizacdefinirajo taksonomijo učenčmenijo, da ima velik učinek na razvoj animacijskih orodij in uporabo v praksi. Taksonomija ima šest korakov zaposlitve (Naps idr.,

1. Ni ogleda, kjer se vizualizacija ne uporablja.2. Ogled, kjer se vizualizacija uporabi

21%

14%

Novi pristopi pri pouč

31

: Uporaba vizualizacije (anketa pre-conference)

pre-conference, v kateri je sodelovalo 29 anketirancev, ukrat (31 %) učenec sam konstruira vizualizacijo, da prikaže, kako so

podatkovne strukture modificirane s podanim algoritmom. Anketiranci so navedli tudi uporabe vizualizacije:

lgoritmi za sortiranje, predstavljeni s skodelicami kopic ter z Java appleti,uporaba diagramov za prikaz algoritmov,

podatkovnih modelov, algoritmi v obliki diagrama poteka, relacijskih shem ali diagrama entitetnih

uporaba animacij v PowerPointu in flash filmčkov.

Smiselno se je vprašati, koliko so učenci motivirani, da sami naredijo vizualizacijo. , Järvinena in Melakoski-Vistbackove (2007) je pokazala, da uenju programiranja, niso potrebovali vizualizacije. Prav tako

tisti, ki so imeli veliko težav, saj uporaba dodatnih orodij vlja dodatno oviro pri učenju. Vizualizacijski materiali so dobri za u

imajo nekaj znanja o tem, kako programi delujejo, in si želijo raziskati veskrbno načrtovana, da bo za učence učinkovita.

vizualizacije algoritma

čencev pri uporabi vizualizacije algoritma Naps idr.čenčeve zaposlitve z vizualizacijsko tehnologijo. Pears idr. (2007)

inek na razvoj animacijskih orodij in uporabo v praksi. Taksonomija ima šest korakov zaposlitve (Naps idr., 2002, str. 142–143):

, kjer se vizualizacija ne uporablja. kjer se vizualizacija uporabi (npr. animacija).

10%

31%

24%

14%

Učenec ne uporablja

vizualizacijo direktno

Učenec mora konstruirati

vizualizacijo

Učenec ima na voljo

vizualizacijska orodja za

konstrukcijo vizualizacije

Učitelj spodbudi učence da

ustvarijo vizualizacijo

Ostalo

Novi pristopi pri poučevanju programiranja

conference)

29 anketirancev, učiteljev enec sam konstruira vizualizacijo, da prikaže, kako so

Anketiranci so navedli tudi

i kopic ter z Java appleti,

algoritmi v obliki diagrama poteka, relacijskih shem ali diagrama entitetnih

enci motivirani, da sami naredijo vizualizacijo. je pokazala, da učenci,

enju programiranja, niso potrebovali vizualizacije. Prav tako niso uporaba dodatnih orodij

enju. Vizualizacijski materiali so dobri za učence, ki že in si želijo raziskati več. Uporaba

ije algoritma Naps idr. (2002) cijsko tehnologijo. Pears idr. (2007)

inek na razvoj animacijskih orodij in uporabo v praksi. Taksonomija

Učenec mora konstruirati

vizualizacijska orodja za

konstrukcijo vizualizacije

Učitelj spodbudi učence da

Page 39: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

32

3. Odziv zajema odgovarjanje na vprašanja, ki se tičejo vizualizacije. Primer, postavimo vprašanje: »Katera izvorna koda predstavlja to vizualizacijo?«

4. Spreminjanje. Učencu zastavimo nalogo, da spremeni obnašanje vizualizacije. Primer: učenec naj vnese različne podatke, ki spremenijo delovanje algoritma, ki se prikaže v animaciji.

5. Konstrukcija. Učenec sam naredi vizualizacijo algoritma. Primer: učenec sam naredi vizualizacijo algoritma, lahko uporablja program za urejanje animacije ali kakšen drug program. Lahko skonstruira algoritem na papir. V tej kategoriji je pomembna vizualizacija algoritma in ne kodiranje algoritma, še posebej pri ročni (na papir) vizualizaciji.

6. Predstavitev. Učenec predstavi lastno vizualizacijo razredu. Pomembno vlogo ima razprava in povratna informacija sošolcev in učitelja.

Sama vizualizacija ni tako pomembna kot pa naloge, ki se nanašajo na njo. Naloge proizvajajo znanje. Vloga vizualizacije je, da si učenci bolje predstavljajo, kaj koda v programu naredi. Učence je laže pridobiti za reševanje nalog skozi vizualizacijske naloge, kot so animacije. Veliko ljudi je oblikovalo orodja za vizualizacijo in/ali animacijo. Slabosti, ki so se pojavile, so, da so oblikovalci pozabili, kakšno vlogo ima orodje (prav tam, 2002, str. 141). Pri ugotavljanju učinkovitosti vizualizacije za definiranje učenčevega razumevanja Naps idr. (2002, str. 143–144) predlagajo Bloomovo8 taksonomijo znanja, ki strukturira globino učenčevega razumevanja in linearno napredovanje v šestih stopnjah:

1. Poznavanje: kaže se kot priklic brez razumevanja, kaj je v ozadju. 2. Razumevanje: učenec razume, kaj je v ozadju, in dojema smisel. 3. Uporaba: uporaba naučenega znanja tudi v novih situacijah. 4. Analiza: učenec je sposoben identificirati posamezne dele kompleksnega problema in

ga razčleniti. 5. Sinteza: učenec je iz naučenega sposoben posplošiti in sestaviti nove zaključke. 6. Vrednotenje – evalvacija: učenec je sposoben različne ideje in metode primerjati in

razlikovati med seboj. Računalniški algoritem v Bloomovi taksonomiji:

8 Bloomova taksonomija klasificira učne cilje v izobraževanju.

Page 40: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

33

Tabela 8: Bloomova taksonomija za ugotavljanje učinkovitosti vizualizacije

Stopnja v Bloomovi taksonomiji

Učenec

Poznavanje - Prepozna in definira specifične elemente algoritma.

Razumevanje - Razume vlogo algoritma. - Prepozna lastnosti algoritma. - Razume ključne koncepte v algoritmu. - Implementira algoritem v programskem jeziku. - Razume obnašanje algoritma v najboljšem in

najslabšem primeru. - Sposoben je slediti in ponoviti najboljšo in najslabšo

analizo primera v algoritmu.

Uporaba - Prilagodi prejšnje študije algoritma za določene aplikacije, okolja ali predstavitve podatka.

- Konstruira najboljši in najslabši primer analize osnovnega algoritma.

Analiza - Razume povezavo algoritma z drugimi algoritmi, ki rešujejo enak ali podoben problem.

- Razume invariacije v kodi algoritma. - Zagovarja oz. dokaže popravke algoritma. - Analizira kompleksen problem in ga razčleni na

manjše kose.

Sinteza - Oblikuje rešitve za kompleksen problem, kjer so potrebne različne podatkovne in tehnične strukture.

- Analizira učinkovitost kompleksnih kombiniranih struktur.

- Določi kriterij za primerjavo različnih rešitev.

Razumevanje - Argumentira, kako in zakaj bi določeni algoritmi bili modificirani ali kombinirani z drugimi.

- Razpravlja o prednostih in slabostih različnih algoritmov, ki rešujejo enak ali podoben problem.

- Naredi evalvacijo analize. Vir: Naps idr., 2002, str. 145–146.

7.3 Vizualizacijska orodja

Omenjena raziskava raziskovalne skupine Naps idr. (2002) je pokazala, da se učenci, če so v aktivnosti zaposleni z vizualizacijsko tehnologijo, učijo bolje.

Programerji morajo, ne glede na izkušnje, programirati v okolju, ki omogoča dostop do orodij, s katerimi lahko dokončajo nalogo z izvedbo programa. Integrirano razvojno okolje, t. i. IDE (angl. Integrated Development Enviroment), ima napredne lastnosti, kot sta samodejno obarvanje kode in integracija z dodatnimi orodji. Toda takšno programsko okolje

Page 41: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

34

ni primerno za programerje začetnike. Za slednje so razvita dodatna orodja, posebej oblikovana za učenje posebnih programskih konceptov, kot je npr. BlueJ

9 za učenje

programskega jezika Java (Pears idr., 2007, str. 210). Vizualizacijska orodja so bila oblikovana posebej za potrebe programerjev začetnikov. Orodji, ki grafično prikažeta strukturo in izvedbo kode, je na primer Jeliot

10 (za učenje programskega jezika Java) in Vince (za učenje programskega jezika C) (prav tam, str. 209). Prvi poskusi vizualizacije so bili tako grafični paketi oz. knjižnice, ki delujejo v programskem okolju. Slabost je bila ravno v tem, da so se nanašale na določen programski jezik, ki ga morajo učenci obvladati (Cooper idr., 2000, str. 110).

7.2.1 Microworlds

Pojem mikrosvet (angl. Microworld) je skovala skupina Media Lab na Tehnološkem inštitutu Massachusettsa oz. MIT. Predstavlja majhen svet, katerega lahko učenec raziskuje in o njem razmišlja, kot da je resničen (Microworlds, 2011). Ta majhen svet je vizualizacija resničnega sveta na računalniškem zaslonu. Razlikujejo se po programskem jeziku, metaforah in stopnji programske podpore, ki jo omogoča (Pears idr., 2007, str. 211). Logo

Logo je programski jezik za poučevanje, ustvarjen 1967. Je adaptacija programskega jezika Lisp (angl. List Processing Language) in je znan predvsem po želvji grafiki. Želvja grafika je glavna lastnost programskega jezika Logo, ki jo je dodal Seymour Papert (What is Logo?, 2011). Vsi ukazi temeljijo na premikanju želve, ki se riše po zaslonu. Pri tem so vidne transformacije pri spremembi stanja programa (Ala-Mutka, 2004, str. 4).

Slika 6: Želvji premiki

Logo učencem omogoča, da razvijejo koncepte v matematiki oz. geometriji, saj se želva pomika po polarnem koordinatnem sistemu. Logo ni namenjen samo za enostavno risanje geometrijskih oblik, lahko se uporabi tudi za kompleksne grafične objekte, probleme in algebro. Obstaja veliko Logo implementacij, ki so otrokom tudi grafično privlačnejše. Kurzor na zaslonu je dandanes nadomestila dejanska želva in tako omogočila uporabo barv (Logo Lessons, 2011).

9 http://www.bluej.org/index.html. 10 http://cs.joensuu.fi/jeliot/.

Page 42: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

35

Greenfoot Greenfoot je prostodostopno objektno orientirano programsko okolje za učenje programskega jezika Java. Vizualizacija in interakcija sta vgrajeni v okolje. Z razredi kot sta svet (angl. world) in igralec (angl. actor) lahko ustvarimo igrice, simulacije in druge grafične programe. Igralci so programirani v Java kodi, da delajo določeno stvar (npr. vombat poje list). Imamo lahko različne igralce oz. objekte: mravlje, vombate, želve, rake idr. s svojimi scenariji. Nad temi objekti izvajamo ukaze. Spodnja slika prikazuje scenarij z vombati, ki v svojem svetu jedo liste (About Greenfoot, 2011).

Slika 7: Greenfoot 'Wombat' scenarij

Greenfoot je primeren za starostno skupino 14+ let. Za mlajše od tega leta ni primeren zato, ker je sintaksa za njih preveč abstraktna. Greenfoot ima namreč objektni model Jave, kjer lahko programiramo večje računalniške probleme (Utting, Cooper, Kölling, Maloney in Resnick, 2010, str. 2). Alice

Alice je 3-D prosto dostopno programsko okolje, ki učence uči računalniškega programiranja kot uvod v objektno orientirano programiranje (Java, C++, C#). Omogoča enostavno ustvarjanje animacij, igric ali videoposnetkov. 3D-objekti (ljudje, živali, motorna vozila idr.) ustvarijo virtualni mikrosvet in učenci ustvarijo program, ki animira te objekte. Omogoča takojšnje razumevanje odnosa med programskimi izjavami in obnašanjem objekta v animaciji (What is Alice?, 2011). Cilj projekta Alice je bil oblikovati zanimivo 3-D okolje za programerje začetnike, saj lahko takoj vidijo, kako deluje njihov animiran program. Slabost je lahko ravno v tem, da so nekatere stvari lažje v 2-D kot pa v 3-D. Omogoča takojšnjo povratno informacijo in učenci lahko povežejo koščke programa z akcijami animacije. To vodi k delovanju različnih programskih konstruktov, kot so: akcije, funkcije, rekurzije, zanke, dogodki itd. Učenci

Page 43: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

36

lahko takoj vidijo, kaj je šlo narobe, in enostavno popravijo napake. Prednosti, ki jih ima Alice, sta, da se učenci dobro spoznajo s 3-D koordinatnim sistemom in da jim ni treba razmišljati o spremenljivkah, ki se v programu ne uporabljajo (Cooper idr., 2000, str. 111–116).

Slika 8: Alice

Scratch

Scratch je vizualni programski jezik, ki omogoča ustvarjanje animacij, interaktivnih zgodb in iger. Preko ustvarjanja se učenci spoznajo z osnovami programiranja. Deluje na principu »povleci in spusti« (angl. drag and drop) grafičnih ploščic, ki ustvarjajo program in nastavljajo akcije objektom, kot so ljudje, živali, vozila itd. (About Scratch, 2011).

Scratch je primeren za starostno skupino od 8. do 16. leta ter tudi za otroke, ki se že zgodaj želijo začeti učiti programiranja. Scratch je vizualno privlačen in omogoča kreativnost in aktivno učenje. Slabost, ki jo ustvarjalci Scratcha vidijo, je v tem, da ni razredov in tako ne poskuša učiti objektno orientiranega programiranja. Malloney in Resnick (2010, str. 2) menita: »Učenje programiranja je kot učenje pisanja.« Otroci bi se morali začeti učiti programiranja kot tudi pisanja, takoj ko pokažejo zanimanje za to (Utting idr., 2010).

Page 44: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

37

Slika 9: Scratch

7.2.1.1 Primerjava programskih okolij Greenfoot, Alice in Scratch

Razprava avtorjev programskih okolij Greenfoot, Alice in Scratch (povzeto po Utting idr.,

2010, str. 1–11)

Če si pogledamo vse tri sisteme, imajo vsi skupno lastnost, da zaposlijo uporabnika tako, da mu omogočajo pisanje programov, ki so povezani z njegovimi interesi (zgodbe, igre, simulacije itd.). Učenec je oblikovalec, avtor in ne pasivni opazovalec učiteljeve animacije. Lahko oblikuje nekaj svojega na podlagi tega, kar mu program ponuja. Vsi se osredotočajo na ročno reševanje problemov in vsi so primerni za uvod v programiranje. Spodbudijo lahko tudi učence, ki navadno niso zainteresirani za predmet poučevanja. Vsi omogočajo takojšnjo povratno informacijo, saj so rezultati vidni takoj. Možno je dobiti takojšen vpogled v delovanje objektov v programu. Izvedba programa se pokaže v poziciji, velikosti, rotaciji in drugih vidnih stanjih objekta. To je moč vizualizacije. V Alice in Scratch se izognemo napakam v sintaksi, kar ima lahko tudi slabo plat. Učencem ni treba razmišljati o morebitnih napakah, zaradi katerih program ne bi deloval. Greenfoot ima večjo vlogo učitelja, saj pripravi učenca, da naredi nekaj poučnega, česar sam običajno ne bi. Vodilo, ki ga predlagajo avtorji v razpravi: »Pusti jim, da najprej igrajo, omogoči jim, da dosežejo nekaj, omogoči kreativnost in nato zahtevaj razlago o tem, kaj se dogaja, medtem ko delajo na sistemu.«

Učenje programiranja preko animacij predstavlja aktivno učenje, ki je vizualno privlačno, in z ustvarjanjem le-teh se izraža lastna kreativnost. Takšen način pisanja programov se poveže z interesi učenca in ima moč abstrakcije, saj je učenec oblikovalec z nadzorom in ne pasivni opazovalec. Nudi takojšnjo ter razumljivo povratno informacijo. V animaciji je moč vizualizacije, saj so rezultati takoj vidni. V primeru, če animacija ne dela, se lahko takoj razbere, kje v kodi je napaka.

Page 45: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar

7.2.1.2 Raziskava

Garlick in Cankaya (2010)

tradicionalnim pristopom. Želela sta ugotoviti, ali se uali jih motivira, da sami raziskujejo tematiko. Raziskavo sta izvedla v štirih razredihfakulteti pri programerskih predkonceptov programiranja potekalo preko tradicionalne psevdokode, medtem kdveh (82 učencev) uporabljali Alice. Obdobje primerjave je obsegalo prva dva tedna predmeta. V vseh razredih spogojni stavki, funkcije ter prehod na programski jezik Java)reševanje skupni kviz, ki je preverjal znanje o zankah in pogojnih stavkih. Nato so morali narediti program, ki se je nanašal na kviz. Po 2test za reševanje. Kvize in naloge, ki so bile vredne najveučitelj, ne da bi vedel, kateri skupini uda so se učenci v tradicionalnih skupinah odrezali bolje:

Graf

Vir:

Učenci so imeli težave pri prehodu z Alice na Javo, kar želijo ustvarjalci programa popraviti tako, da bi bil bolj osredotoanimacij. Nekateri učenci so videli Alice kot nepravo programiranje in so mnenjaAlice oblikovan bolj za mlajšo starostno skupino. Avtorjaverjetno le pričakujejo bolj konvencionalno metodo uin da zato nisi bili tako navdušeni nad Alice (Garlick in Cankaya, 2010, str

0

20

40

60

80

100

Novi pristopi pri pouč

38

(2010) sta ugotavljala, kakšen učinek ima Alice v primerjavi s tradicionalnim pristopom. Želela sta ugotoviti, ali se učenci več naučijo z uporabo Alice in

da sami raziskujejo tematiko. Raziskavo sta izvedla v štirih razredihfakulteti pri programerskih predmetih. V dveh razredih (72 učencev) je poukonceptov programiranja potekalo preko tradicionalne psevdokode, medtem k

uporabljali Alice. Obdobje primerjave je obsegalo prva dva tedna . V vseh razredih so bile obravnavane enake tematike (spremenljivke, zanke,

pogojni stavki, funkcije ter prehod na programski jezik Java). Vse skupine so dobile reševanje skupni kviz, ki je preverjal znanje o zankah in pogojnih stavkih. Nato so morali

se je nanašal na kviz. Po 2–3 tednih predmeta so učtest za reševanje. Kvize in naloge, ki so bile vredne največ 100 točk, je ocenil samo en

kateri skupini učenec pripada. Rezultati v spodnjem grafu prikazujejo, enci v tradicionalnih skupinah odrezali bolje:

Graf 14: Povprečni rezultati kviza in testa

Vir: Garlick in Cankaya, 2010, str. 167.

enci so imeli težave pri prehodu z Alice na Javo, kar želijo ustvarjalci programa bolj osredotočen na logično programiranje in manj na ustvarjanj

enci so videli Alice kot nepravo programiranje in so mnenjaAlice oblikovan bolj za mlajšo starostno skupino. Avtorja raziskave

jo bolj konvencionalno metodo učenja programiranja skozi psevdokodo in da zato nisi bili tako navdušeni nad Alice (Garlick in Cankaya, 2010, str

kviz

test

75,5670,3

81,6976,5

Alice Tradicionalno

Novi pristopi pri poučevanju programiranja

inek ima Alice v primerjavi s čijo z uporabo Alice in

da sami raziskujejo tematiko. Raziskavo sta izvedla v štirih razredih na encev) je poučevanje osnovnih

konceptov programiranja potekalo preko tradicionalne psevdokode, medtem ko so v drugih uporabljali Alice. Obdobje primerjave je obsegalo prva dva tedna

enake tematike (spremenljivke, zanke, Vse skupine so dobile v

reševanje skupni kviz, ki je preverjal znanje o zankah in pogojnih stavkih. Nato so morali 3 tednih predmeta so učenci dobili skupen

čk, je ocenil samo en enec pripada. Rezultati v spodnjem grafu prikazujejo,

enci so imeli težave pri prehodu z Alice na Javo, kar želijo ustvarjalci programa Alice no programiranje in manj na ustvarjanje

enci so videli Alice kot nepravo programiranje in so mnenja, da je menita, da učenci

enja programiranja skozi psevdokodo in da zato nisi bili tako navdušeni nad Alice (Garlick in Cankaya, 2010, str. 165–168).

Page 46: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

39

8 UČENJE Z RAČUNALNIŠKO IGRICO

Didaktične računalniške igrice predstavljajo didaktičen model, usmerjen v učenca, ki ima aktivno vlogo (Garris, Ahlers in Driskell, 2002, str. 441). Programiranje je samo po sebi dolgočasno. Naloge so večinoma sestavljene iz matematičnih problemov, športnih statistik, bančnih računov, delnic itd. Jenkins (2002, str. 56) navaja, da naj bo programiranje kreativno, v užitek in naj učence navdihne. Nekateri učenci potrebujejo motivacijo za programiranje in dinamično učno okolje, kot je lahko orodje, ki je narejeno samo za poučevanje oz. učenje. Učenci, ki niso motivirani, ne bodo uspeli (prav tam, str. 54–55). Razlog, zakaj uporabiti računalniške igrice pri učenju, leži v motivaciji. Učenci, ki so motivirani, se učijo učinkoviteje, saj motivacija vodi do večje pozornosti in večjega obstanka znanja. Elementi notranje motivacije so izziv, radovednost in domišljija, vse, kar lahko uporabimo pri oblikovanju računalniških iger (Garris idr., 2002, str. 443–445). Pomembni elementi, ki motivirajo učenca, so logika, spomin, vizualizacija in problemsko reševanje (Chang in Chou, 2008, str. 221).

Chang in Chou (2008, str. 221) poimenujeta učenje z računalniško igrico Game-based

digital learning t. i. GBL. Računalniške igrice omogočajo učiteljem poživiti učno okolje, ki je za učence hkrati tudi tekmovalno (prav tam). Lahtinenova idr. (2007, str. 260) navajajo, da so učenci v vizualizacijskem sistemu najbolj zaposleni preko interakcije. Učenci se dandanes bolj odzivajo na interaktivno učenje.

Cilj je narediti računalniško igro, ki je posvečena učenju. Največja slabost je, da lahko ustvarimo igrico, ki ni niti didaktična niti ne zaposli učencev. Lahko je dolgočasna ali pa ne vključuje izobraževalnih elementov. Didaktična računalniška igrica povezuje dva med sabo izključujoča se pojma: igranje in učenje. Igranje igre je prostovoljno, neproduktivno in se ločuje od resničnega življenja. Učenje pa je tipično neprostovoljno (Garris idr., 2002, str. 441–442, 459). Pomembno je, da združimo izobraževalno vsebino z določeno lastnostjo računalniške igrice, ki zaposli učence, in s tem doseže izobraževalne cilje. Po Garrisovi, Ahlersu in Driskellu (2002, str. 445), mora model didaktičnih računalniških iger vključevati:

� izobraževalno vlogo in karakteristike računalniške igre (domišljija, pravila, izziv, skrivnost, čutni dražljaj, nadzor);

� cikel igre (z uporabniško presojo, obnašanjem in povratno informacijo dosežemo zaposlitev uporabnika);

� tipe znanja, ki jih lahko dosežemo.

Page 47: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar

Slika

8.1 Računalniška igrica

Chan in Chou (2008) sta oblikovala didaktiv programskem jeziku C na osnovi že obstojeoblikovala v izobraževalno orodje, ki poverazmišljanja in programiranja. Pri oblikovanju sta upoštevalaprogramskega jezika le majhni deli programiranja in dadane probleme.

Slika 11 je okno izobraževalnega komponentami (Chang in Chou, 2008, str. 223

Novi pristopi pri pouč

40

Slika 10: Model didaktične računalniške igre

Vir: Garris idr., 2002, str. 445.

unalniška igrica BomberMan

Chan in Chou (2008) sta oblikovala didaktično računalniško igrico za učv programskem jeziku C na osnovi že obstoječe računalniške igrice Bomberman. Igrico sta oblikovala v izobraževalno orodje, ki povečuje spretnosti problemskega reševanja, logirazmišljanja in programiranja. Pri oblikovanju sta upoštevala, da so sintaksa in konstrukti

le majhni deli programiranja in da je pomembno oblikovati rešitve

Slika 11: Okno igrice BomberMan

evalnega orodja BomberMan. Na levi strani okna so opcije s šestimi komponentami (Chang in Chou, 2008, str. 223–229):

Novi pristopi pri poučevanju programiranja

unalniško igrico za učenje programiranja unalniške igrice Bomberman. Igrico sta

uje spretnosti problemskega reševanja, logičnega , da so sintaksa in konstrukti

oblikovati rešitve za

strani okna so opcije s šestimi

Page 48: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

41

1. »Road map«: načrt poučevanja določenih poglavij iz učbenika. Vsak grad predstavlja učni material poglavja, primere za raziskovanje, naloge za vajo in teste. Učenec lahko napreduje na naslednjo stopnjo igre oz. učnega poglavja, ko uspešno konča na prejšnji stopnji.

2. »Presentation«: predstavitev učnih materijalov preko diaprojekcij. 3. »Example«: primeri demonstracij igre BomberMan, kjer se lahko raziskujejo

osnovne programerske paradigme. Učenci berejo kodo, ki je predstavljena v igri kot majhen del, ki nadzoruje premike škrata BomberMana.

4. »Exercise«: naloge v strukturiranem laboratorijskem delu, da učenci vadijo osnovne programerske paradigme, medtem ko igrajo igro. Učenci pišejo kodo in tako sami upravljajo s škratom.

5. »Test«: preverjanje učnih rezultatov s problemskim reševanjem. Učenci testirajo ideje in koncepte na podlagi prejšnjega znanja in izkušenj komponent 1–4. Merjen je čas reševanja. Učenci so postavljeni v novo situacijo, kjer rešujejo različne probleme, kot npr. škrat BomberMan se lahko premika le do spodnjega desnega kota. Na poti lahko poje nešteto sadežev, vendar se ne sme dotakniti bomb.

6. »Progress Evaluation«: poročilo o učenčevem dosežku, ki določa, kakšni so bili učinki testov. Rezultati se lahko primerjajo z drugimi člani skupine.

Avtorja sta primerjala orodje s programskim okoljem Scratch ter s tradicionalnimi razvojnimi programskimi okolji (IDE), kot so Turbo C, Dev C++, Visual C++ in C++ Builder. Razvojna programska okolja so pokazala enake rezultate, zato naj bodo združena v skupino, imenovano IDE C/C+ (tabela 9).

Tabela 9: Primerjava

BomberMan Scratch IDE C/C++ Interaktivnost Visoka Visoka Nizka Zabava, užitek Visoka Visoka Nizka Enostaven za uporabo Visoka Visoka Nizka

Uporaba formalnega programskega jezika

���� ���� ����

Kombiniranje z učnimi materiali

���� ���� ����

Učenje »korak za korakom«

���� ���� ����

Analiza ���� ���� ����

Zgodba ���� ���� ���� Vir: Chang in Chou, 2008, str. 230.

Pri vizualnem programskem okolju Scratch smo predvsem pogrešali integrirane učne materiale. Poleg tega mora učitelj sam oblikovati postopno učenje. Učenec sam oblikuje

Page 49: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

42

zgodbo, ki jo želi, pri igrici BomberMan pa je zgodba že vnaprej določena, tako da BomberMan ne omogoča tolikšne kreativnosti kot Scratch.

Razvojna programska okolja (IDE) so namenjena za profesionalno uporabo in zato nimajo pedagoških karakteristik (Chang in Chou, 2008, str. 229). S tega vidika je zato za nas zanimiva le primerjava med programoma Scratch in BomberMan.

Veliko je že raziskav o tem, kako poučevati programiranje s pomočjo vizualnih orodij, ki zaposlijo učenca v obliki računalniških igric. Manj je dokazov o tem, ali imajo ti načini učinek na učenje. Učenci uživajo v igranju, učne ure jim bodo zanimive, vendar to še ne pomeni, da so se kaj naučili (Jenkins, 2002, str. 53).

9 PREDLOGI ZA IZBOLJŠANJE POUČEVANJA

Nekaj karakteristik, ki jih mora imeti okolje za učenje programiranja (Gomes in Mendes, 2007, str. 3–4; Jenkins, 2002, str. 54):

� pri izbiri aktivnosti se morajo upoštevati učenčevi učni stili, � uporaba različnih pristopov poučevanja, � uporaba programerskih ugank

11, s pomočjo katerih učenci utrdijo sposobnosti logičnega in problemskega reševanja,

� vključitev didaktičnih iger, ki lahko izboljšajo sposobnosti problemskega reševanja skozi atraktivne in stimulativne aktivnosti.

Projekt, imenovan CodeWitz, oblikuje rešitve, ki bi bile v korist za poučevanje in učenje programiranja. Projekt stremi k izboljšanju učenja osnovnih konceptov programiranja in struktur programskih jezikov, kot so spremenljivke, zanke in pogojni stavki (Lahtinen idr., 2005, str. 14). Ala-Mutka (2004, str. 8–9) predlaga:

� učitelj naj učne pristope izbere skrbno (z upoštevanjem morebitnih napak, ki jih delajo programerji začetniki),

� uporaba pristopov, kot je problemsko reševanje, � skrbna izbira dinamičnega vizualnega učnega gradiva.

Tudi Kölling in Barnes (2008, str. 20) trdita, da naj bo pristop poučevanja voden problemsko. Najprej se naj predstavi praktičen programerski problem in nato pregledajo možne rešitve. Učno uro mora voditi problem v nalogi in ne programski jezik. Parsons in Hadenova (2006, str. 1) pa menita, da je poudarek na sintaksi in mehaničnem učenju, ker programov ne moremo pisati brez znanja sintaktičnih pravil programskega jezika. Trdita, da je učenje programiranja na nek način enako učenju novega jezika. V obeh primerih se mora obvladati sintaksa. Tradicionalen pristop, kjer programski jezik vodi kurikulum, je po mnenju več avtorjev (Ala-Mutka, 2004; Kölling in Barnes, 2008; Robins idr., 2003; Thomsen, 2008), neustrezen.

11 Najbolj uporabljene spletne strani s programerskimi ugankami (po Six Revision): http://sixrevisions.com/resources/10-puzzle-websites-to-sharpen-your-programming-skills/.

Page 50: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

43

Raziskovalna skupina McCracken idr. (2001, str. 126) je iz raziskave zaključila, da bi za uspešno učenje programerskih učnih objektov učenci morali slediti petim korakom:

Slika 12: Okvir petih korakov

Učenje programiranja bi moralo zajemati učenje pisanja programa kot tudi zmožnost branja programa. Učenci bi morali znati slediti programski kodi, da si lahko zgradijo mentalni model programa in s tem predvidijo vedenje programa. To bi se moralo razviti že pri stopnji razumevanja programiranja, na primer »najdi in odstrani napake v programu« (Ala-Mutka, 2004, str. 5). Učence je treba naučiti razvoja programov ter prikazati, kakšen je razvojni proces (prav tam, str. 7):

� pri programiranju je potrebnih veliko majhnih korakov, � rezultat vsakega koraka mora biti testiran, � predhodne odločitve je morda treba razveljaviti in kodo preoblikovati, � tudi programerji strokovnjaki delajo napake, � napake prevajalnika so lahko zavajajoče ali napačne, � obstaja sistematična nelinearna pot razvijanja rešitev.

Raziskava Lahtinenove idr. (2005) je pokazala, da so učencem primeri programov najbolj v pomoč pri učenju programiranja. Učencem moramo pokazati primere dobrega programiranja, tj. dobre kode, in jim omogočiti širok dostop do teh virov. Z uporabo vizualizacijskih orodij naj učenci raziskujejo obnašanje programa. V reševanje jim moramo dati naloge, kjer lahko raziskujejo kodo. Vadenje ima veliko vlogo, tako da je treba učence zaposliti z dodatnimi nalogami (Pears, 2010, str. 2). Kölling in Barnes (2008, str. 7) prav tako označujeta pomembnost branja kode. Pristop, ki ga predlagata, obsega:

1. branje kode, 2. modificiranje kode, 3. učenci naj sami nekaj ustvarijo.

Tegauejeva (2009) je ugotavljala, kakšen pristop imajo učenci do programiranja. Na podlagi razgovorov s štirimi naključno izbranimi učenci je ugotovila, da je ravnovesje med odnosom do programiranja, samozavestjo in odločnostjo ključ do uspešnega učenja programiranja. Samozavest je pomemben dejavnik za uspešne učne rezultate, vendar ne napoveduje uspeha.

Iz opisa oblikuj problem

Ustvari pod-probleme

Pod-problemom določi rešitve

Rešitve sestavi v delujoč program

Testiraj

Page 51: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar

Odločnost za dosego cilja, za katerega je uuspehu na kateri koli stopnji odnosa. Predlagaučnimi stili oblikovali taksonomijo kot pedagoško orodje za poulahko povečamo samozavest in motivacijov paru. Za učence ima kar nekaj pedagoških koristi, kot je aktivno uprogrami (Tegaue, 2009, str. 177

Novi pristopi pri pouč

44

nost za dosego cilja, za katerega je učenec motiviran, igra pomembno vlogo koli stopnji odnosa. Predlaga, da bi samozavest in odlo

aksonomijo kot pedagoško orodje za poučevanje. Pristop, s katerim amo samozavest in motivacijo, je sodelovalno učenje, natančence ima kar nekaj pedagoških koristi, kot je aktivno učenje in bolj

(Tegaue, 2009, str. 177–178).

Slika 13: Pot do uspešnega učenja

odločnost

odnos

samozavest

Novi pristopi pri poučevanju programiranja

enec motiviran, igra pomembno vlogo pri odločnost skupaj z

evanje. Pristop, s katerim enje, natančneje programiranje

čenje in bolj kakovostni

Page 52: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

45

10 SKLEP

Raziskovalni problem je bil ugotoviti, katere so rešitve za izboljšanje razumevanja programiranja in pritegnitev tematike. Avtorji, ki obravnavajo to tematiko, se strinjajo v tem, da:

� predmeti, kot je uvod v programiranje, ne smejo temeljiti na poučevanju določenega programskega jezika, ampak na problemskemu reševanju;

� namen teh predmetov je pridobivanje spretnosti problemskega reševanja, ki je osnova za usvojitev veščine programiranja;

� poučevanje naj bo konstruktivistično, pri čemer je pomemben dejavnik motivacije in refleksije na učenje. Učne ure morajo biti skrbno načrtovane, oblikovane za različne učne stile in morajo odkrivati neustrezne mentalne modele;

� učitelj mora poznati karakteristike programerjev začetnikov in jih znati prepoznati. Učencem mora nuditi različne učne materiale, kot so primeri dobrih programov ter vizualizacija programerskih konceptov.

Programiranje morajo poučevati učitelji, ki znajo poučevati programirati, in ne učitelji, ki znajo le programirati.

Razlike v obravnavani literaturi se kažejo predvsem pri izbiri programskega jezika. Kateri jezik je najbolj primeren za učenje, objektno orientirani ali proceduralni? Avtorji se strinjajo, da izbira programskega jezika ne sme temeljiti na tem, kar se uporablja v industriji. Obstajajo vizualizacijska orodja, ki so bila oblikovana prav za učenje programiranja. Za uvod v programiranje predlagamo, da bi učence lahko motivirali z izobraževalnimi vizualnimi orodji, kot je Scratch (izbira je odvisna od skupine učencev), šele nato bi lahko napredovali na programski jezik. Študija literature je pokazala, da imajo vizualizacijska orodja lastnosti, ki izboljšajo učenje programiranja, in sicer: spodbudijo kognitivni konflikt, vsebujejo vizualizacijo, učenec je avtor, ki rešuje določen problem, in v osnovi ne poučujejo določenega programskega jezika. Kljub temu da veliko učiteljev verjame v njihove pozitivne učinke, raziskava o Alice (Garlick in Cankaya, 2010) kaže ravno nasprotno. Toda rezultatov te raziskave ne moremo posplošiti na vsa vizualizacijska orodja.

Učenje programiranja z igranjem računalniških igric bi lahko bila rešitev za uspešno učenje, saj vsebujejo vse potrebne karakteristike za uspešno učenje, kot je: zaposlitev, izziv, problemsko reševanje, motivacija, pridobivanje samozavesti, odločnosti, povratna informacija, popravljanje napak. Vendar zagotovo ne moremo zatrditi, da so učinkovite. To področje še ni dovolj raziskano, ker je računalniških igric za učenje programiranja zelo malo. Ideja predstavlja premik v izobraževalnem polju, saj pritegne učenčevo zanimanje, ga zaposli v aktivno vlogo in hkrati dosega izobraževalne cilje. Verjamemo, da bodo v bodoče oblikovane nove didaktične igrice za učenje programiranja, ki bodo izhodišče za nadaljnje raziskave.

Page 53: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

46

11 LITERATURA

Ala-Mutka, K. (2004). Problems in Learning and Teaching Programming – a literature

study for Developing Visualizations in the Codewitz-Minerva project. Pridobljeno 12. 9. 2011 s spletne strani http://www.cs.tut.fi/~edge/.

Barg, M., Fekete, A., Greening, T., Hollands, O., Kay, J., Kingston, J. H., Crawford, K.

(2000). Problem-Based Learning for Foundation Computer Science Courses. Computer

Science Education, 10 (2), 109–128. Bennedsen, J., Caspersen, M. (2008). Exposing the Programming process. V J. Bennedsen,

M. E. Caspersen, M. Kölling (Ur.), Reflections on the Teaching of Programming.

Methods and Implementations (str. 6–16). Berlin: Springer. Booth, S. B. Sc. (1992). Learning to program, a phenomenographic perspective. Göteborg:

Studies in Educational Sciences 89. Boyle, T. (2004). Technology and the reflective practitioner. V A. Irons, S. Alexander (Ur.),

Effective Learning and Teaching in Computing (str. 184–185). New York: RoutledgeFalmer Taylor & Francis Group.

Chang, W. C., Chou, Y. M. (2008) Introductory C Programming Language with Game-

Based Digital Learning. ICWL '08 Proceedings of the 7th international conference on

Advances in Web Based Learning (str. 221–231). Heidelberg: Springer-Verlag Berlin. Cooper, S., Dann, W., Pausch, R. (2000). Alice: A 3-D Tool for Introductory Programming.

V CCSC '00 Proceedings of the fifth anual CCSC Northeastern Conference on The

journal of Computing in Small Colleges, 15 (5), 108–117. Deek, F. P., Kimmel, H., McHugh, J. A. (1998) Pedagogical changes in the delivery of the

first-course in computer science: Problem solving, then programming. Journal of

Engineering Education, 87 (3), 313–320. Frobisher, L. (1994). Problems, Invesigations and an Investigative Approach. V A. Orton,

G. Wain (Ur.), Issues in Teaching Mathematics (poglavje 10). New York: Cassell Education.

Garlick, R., 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 Eduaction (str. 165–168). New York: ACM.

Page 54: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

47

Garris, M., Ahlers, R., Driskell, J. (2002). Games, Motivation, and Learning: A Research and Practice Model. Simulation & Gaming, 33 (4), 441–467.

Gomes, A., Mendes, A. J. (2007). An Environment to Improve Programming Education.

CompSysTech '07 Proceedings of the 2007 International Conference on Computer

Systems and Technologies, št. 88. New York: ACM. Good, J., Brna, P., Cox, R. (1997). Novices and Program Comprehension: Does Language

make a difference? V P. Langley, M.G. Shafto (Ur.), Proceedings of 19th Annual

Conference of the Cognitive Science Society (str. 936). New Jersey: Stanford University. Jenkins, T. (2002). On the Difficulty of Learning to Program. Pridobljeno 28. 10. 2011 s

spletne strani http://www.ics.heacademy.ac.uk/Events/conf2002/menu.html. Kölling, M. (2008). Using BlueJ to introduce Programming. V J. Bennedsen, M .E.

Caspersen, M. Kölling (Ur.), Reflections on the Teaching of Programming. Methods and

Implementations (str. 98–115). Berlin: Springer. Kölling, M., Barnes, D. (2008). Apprentice – Based Learning Via Integrated Lectures and

Assignments. V J. Bennedsen, M. E. Caspersen, M. Kölling (Ur.), Reflections on the

Teaching of Programming. Methods and Implementations (str. 17–29). Berlin: Springer. Kraiger, K., Ford, J. K., Salas, E. (1993). Application of Cognitive, Skill-Based, and

Affectiove Theories of Learning Outcomes to New Methods of Training Evaluations. Jurnal of Applied Psychology, 78 (2), 311–328.

Kramer, J. (2007). Is Abstraction Key to Computing? Communication of the ACM, 50 (4),

36–42. Lahtinen, E., Ala-Mutka, K., Järvinen, H.-M. (2005). A Study of the Difficulties of Novice

Programmers. ITiCSE '05 Proceedings of the 10th

annual SIGCSE conference on

Innovation and technology in Computer Science Education (str. 14–18). New York: ACM.

Lahtinen, E., Järvinen, H.M., Melakoski-Vistbacka, S. (2007). Targeting Program

Visualizations. ITiCSE '07 Proceedings of the 12th annual SIGCSE conference on

Innovation and Technology in Computer Science Education (str. 256–260). New York: ACM.

Linn, M. C., Dalbey, J. (1989). Cognitive consequences of programming instructions. V E.

Soloway, J. C Spohrer (Ur.), Studying the novice programmer (str. 57–81). Hillsdale, NJ: Lawrence Erlbaum.

Lokar, M. (2001). Programski jezik Pascal. Presek, 29 (1), 24–27.

Page 55: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

48

Ma, L., Ferguson, J., Roper, M., Ross, I., Wood, M. (2009). Improving the Mental Models

Held by Novice Programmers Using Cognitive Conflict and Jeliot Visualisations. ITiCSE

'09 Proceedings of the 14th annual ACM SIGCSE conference on Innovation and

Technology in Computer Science Education (str. 166–170). New York: ACM. Ma, L., Ferguson, J., Roper, M., Wood, M. (2007). Investigating the Viability of Mental

Models Held by novice Programmers. SIGCSE '07 Proceedings of the 38th SIGCSE

technical Symposium on Computer Science Education (str. 499–503). New York: ACM. McCracken, M., Almstrum, V., Diaz, D., Guzdial, M., Hagan, D., Kolikant, Y. B. D., Laxer,

C., Thomas, L., Utting, I., Wilusz, T. (2001). A multi-national, multi-instutional study of assessment of programming skills of first-year CS students. ITiCSE-WGR '01 Working

Group Reports from ITiCSE on Innovation and Technology in Computer Science

Education (str. 125–140). New York: ACM.

Milne, I., Rowe, G. (2002). Difficulties in Learning and Teaching Programming – Views of Students and Tutors. Education and Information Technologies, 7 (1), 55–66.

Naps, T. L., Rößling, G., Almstrum, V., Dann, W., Fleischer, R., Hundhausen, C.,

Korhonen, A., Malmi, L., McNally, M., Rodger, S., Velázquez-Iturbide, J. Á. (2002). Exploring the Role of Vizualization and Engagement in Computer Science Education. Proceeding ITiCSE-WGR '02 Working Group Reports from ITiCSE on Innovation and

Technology in Computer Science Education (str. 131–152). New York: ACM. Nuutila, E., Törma, S., Kinnunen, P., Malmi, L. (2008). Learning Programming with the

PBL Method – Experiences on PBL Cases and tutoring. V J. Bennedsen, M. E. Caspersen, M. Kölling (Ur.), Reflections on the Teaching of Programming. Methods and

Implementations (str. 47–67). Berlin: Springer. Parsons, D., Haden, P. (2006). Parson's Programming Puzzles: A Fun and Effective

Learning Tool for First Programming Course. ACE '06 Proceedings of the 8th Australian

Conference on Computing Education – Volume 52 (str. 157–163). Australia: Australian Computer Society.

Pears, A.N. (2010). Enchancing Student Engagement in a Introductory Programming

Course. Proceedings of the 40th

ASEE/IEEE Frontiers in Education Conference (str. F1E-1-F1E-2). Piscataway, NJ: IEEE.

Pears, A., Seidman, S., Malmi, L., Mannila, L., Adams, E., Bennedsen, J., Devlin, M.,

Paterson, J. (2007). A Survey of Literature on the Teaching of Introductory Programming. ITiCSE-WGR '07 Working group reports on ITiCSE on Innovation and

Technology in Computer Science Education (str. 204–223). New York: ACM.

Page 56: NOVI PRISTOPI PRI POU ČEVANJU PROGRAMIRANJApefprints.pef.uni-lj.si/997/1/KKOLAR_diploma.pdf · ki se uporabljajo v industriji, kot je na primer C++ ali Java. Zdi se, da tradicionalni

Karmen Kolar Novi pristopi pri poučevanju programiranja

49

Robins, A., Rountree, J., Rountree, N. (2003). Learning and Teaching Programming: A Review and Discussion. Computer Science Education, 13 (2), 137–172.

Rolandsson, L. (2009). Teachers′ perceptions about learning programming. Pridobljeno 19. 5. 2012 s spletne strani http://www.iteea.org/Conference/PATT/PATT22/Rolandsson.pdf.

Teague, D. (2009). A People-First Approach to Programming. ACE '09 Proceedings of the

Eleventh Australian Conference on Computing Education – Volume 95 (str. 171–180). Australia: Australian Computer Society.

Thomsen, B. (2008). Using On - LineTutorials in Introductory IT courses. V J. Bennedsen,

M.E. Caspersen, M. Kölling (Ur.), Reflections on the Teaching of Programming. Methods

and Implementations (str. 68). Berlin: Springer. Utting, I., Cooper, S., Kölling, M., Maloney, J. & Resnick, M. (2010). Alice, Greenfoot, and

Scratch - A Discussion. ACM Transactions on Computing Education, 10 (4), 1–11. Internetni viri:

� Logo Lessons (b. d.). Pridobljeno 10. 9. 2011 s spletne strani http://www.rationa l american.com/rp.org/archives/LOGOlessons.html.

� About Greenfoot (b. d.). Pridobljeno 10. 9. 2011 s spletne strani http://www. green foot.org/overview.

� About Scratch (b. d.). Pridobljeno 13. 10. 2011 s spletne strani http://info. scratch. mit.edu/About_Scratch.

� What is Alice? (b. d.). Pridobljeno 13. 10. 2011 s spletne strani http://www. alice. org/index.php?page=what_is_alice/what_is_alice.

� Microworlds (b. d.). Pridobljeno 25. 11. 2011 s spletne strani http://www.umcs. maine. edu/~larry/microworlds/microworld.html.

� What is Logo? (b. d.). Pridobljeno 10. 9. 2011 s spletne strani http://el.media.mit. edu/ logo-foundation/logo/index.html.

Slikovni viri: � Scratch. Pridobljeno 2. 11. 2011 s spletne strani http://onedublin.files. wordpress.

Com /2010/01/scratch-computer-programming-example.jpg. � Alice. Pridobljeno 2. 11. 2011 s spletne strani http://jesstern.com/wp-content/

uploads/ 2011/08/alice-2-screenshot.jpeg. � BomberMan. Chang W.C., Chou Y.M. (2008) Introductory C Programming

Language with Game-Based Digital Learning. � Greenfoot. Pridobljeno 2. 11. 2011 s spletne strani http://www. greenfoot. org/

overview. � Logo. Pridobljeno 4. 11. 2011 s spletne strani http://www.thesmartbean.com/wp-

content/uploads/2010/08/logo_mit.png.