V raziskavi preučujemo, kako študentje študijskega programa Dvopredmetni učitelj, smer računalništvo in matematika, na Pedagoški fakulteti Univerze v Ljubljani razvijajo konceptualno programersko znanje skozi implementacijo, prepoznavanje in razlago programskih vzorcev. Na podlagi več kot 500 programskih rešitev študentov prvega in drugega letnika se osredinjamo na štiri temeljne programske vzorce: linearno iskanje, zaščiteno linearno iskanje, štetje in iskanje ekstremnih vrednosti. V raziskavi je sodelovalo 70 študentov; 17 smo jih spremljali longitudinalno (od tri do štiri leta) ter analizirali njihovo zmožnost prepoznavanja in razlage logike delovanja izbranih programskih vzorcev ter oblikovanja nalog, ki pri reševanju zahtevajo njihovo uporabo. Izsledki kažejo, da so študentje postopoma izboljševali uporabo programskih vzorcev: v začetnih fazah so pogosto reševali naloge z odvečnimi deli kode ali napačnimi rešitvami, s časom pa so prehajali k pravilnim implementacijam. Napredek je bil neenakomeren med različnimi programskimi vzorci in uporabljenimi programerskimi konstrukti. Naloge, ki so vključevale uporabo zanke »while« pri zaščitenem linearnem iskanju, so se izkazale za zahtevnejše, saj so v zgodnjih fazah pogosteje vodile v napačne rešitve ali odvečne dele kode. Kljub izboljšavam pri implementaciji se je pri vseh skupinah študentov pokazal razkorak med tem, kar znajo implementirati s programsko kodo, in tem, kar znajo konceptualno razložiti. To kaže, da pravilna uporaba programskega konstrukta, na primer zanke »for«, še ne zagotavlja razumevanja ideje koncepta programskega vzorca, kar je še zlasti očitno pri zahtevnejših vzorcih, kot sta zaščiteno linearno iskanje in iskanje ekstremnih vrednosti. Zavedanje obstoja tega razkoraka je pri bodočih učiteljih še posebej pomembno. Poleg tega se je pokazalo, da ima sposobnost razlage delovanja programskega vzorca močen vpliv na kakovost oblikovanih nalog. To potrjuje, da konceptualno razumevanje neposredno podpira razvoj pedagoških kompetenc. Rezultati raziskave kažejo, da bi bilo v izobraževanju učiteljev računalništva smiselno bolj eksplicitno vključiti poučevanje programskih vzorcev. S tem bi prispevali k njihovi pravilni implementaciji, prav tako pa bi spodbujali globlje konceptualno razumevanje in s tem povezanih pedagoških kompetenc. Umeščanje programskih vzorcev kot konceptualnih orodij v programe pedagoških smeri računalništva lahko bodočim učiteljem omogoči natančnejšo analizo kode, boljše predvidevanje pogostih učnih težav in oblikovanje učinkovitih, na vzorcih temelječih programerskih nalog.
|