Lühikokkuvõte: Õppijate käitumismustrid programmeerimisülesande lahendamisel: logifailide analüüs

Programmeerimise õppimisel on suur osa iseseisval ülesannete lahendamisel ja õpetajad näevad, millise tulemuseni on õppijad jõudnud, kuid enamasti ei ole ülevaadet, kuidas õppijad tulemuseni on jõudnud, eriti on see nii MOOC-idel (vaba juurdepääsuga e-kursustel). Programmeerimisülesannete lahendamise protsessi uurimine võib anda õpetajale väärtuslikku informatsiooni. Tartu Ülikooli õppejõu Aivar Annamaa loodud Pythoni programmeerimiskeskkond Thonny talletab programmeerimise käigus logifaili samm-sammult kasutaja tegevusi. Seega on logifailides olemas väärtuslik info, mida on võimalik analüüsida ja nii saada õppeprotsessi kohta uusi teadmisi.

Uurimuses seati eesmärgiks Thonny logifailide põhjal leida vastused järgmistele küsimustele: Millist informatsiooni on võimalik Thonny logifailidest koguda õppijate tegevuse kohta? Millised on õppijate erinevad käitumismustrid programmeerimisülesannete lahendamisel MOOC-i “Programmeerimise alused” kokkuvõtva arvestusülesande näitel? Milliseid õppijatüüpe saab eristada ülesande lahendamise käitumismustrite alusel? Õppeprotsessi uurimiseks kasutati Tartu Ülikooli 2017. aasta sügis-talvel toimunud vaba ligipääsuga e-kursuse “Programmeerimise alused” arvestusülesande logisid. Uurimus hõlmas 27 õppijat. Logidest koguti infot automatiseeritult, lisaks vaadati failid kasutussessiooni taasesitamise funktsionaalsust kasutades läbi.

Analüüsides ilmnes märgatav erinevus õppijate vahel sõltuvalt sellest, kas nad lahendasid ülesande järg-järgult või mitte, s.t kas nad kirjutasid programmi osade kaupa ja vahepeal ka testisid selle tööd või testisid esimest korda alles siis, kui olid suurema osa lahendusest valmis kirjutanud. 

Analüüsi tulemusel eristati selle uurimuse aluseks oleva MOOC-i kokkuvõtva arvestusülesande lahenduste kontekstis järgmisi õppijatüüpe:

1) “Müüriladujad”, kes lisasid koodi järk-järgult ja käivitasid esimest korda juba siis, kui üsna väike osa programmist oli valmis – funktsioon. Vigu parandasid nad järk-järgult ehitamise käigus ja kasutasid varasemate ülesannete lahenduste tuge vähe. Neil oli ülesande lahendamise käigus ülevaade, kas juba loodud osad töötasid õigesti või mitte. Neil läks “kiviraiujatest” vähem aega ning oli vähem veateateid ja korduvaid veateateid.

2) “Kiviraiujad”, kes kirjutasid valmis suurema osa ülesande lahendusest ja asusid alles siis programmi tööd testima ja koodi parandama. Kirjutamine aga ei tahtnud väga ladusalt sujuda, seega vajasid nad ülesande lahendamise ajal paljude varasemate ülesannete lahenduste faile. Neil läks lahendamiseks teiste gruppidega võrreldes rohkem aega ja tuli palju korduvaid veateateid. Pärast esimese tervikversiooni käivitamist kujunes põhitegevuseks leida korduvate käivitamiste ja parandamiste järel üles kõik vead, mis programmis olid.

3) “Meistrid”, kes kirjutasid valmis suurema osa ülesande lahendusest ja alles siis käivitasid esimest korda, aga kuna programmis oli vähe vigu või suutis õppija vead kiiresti parandada, siis kõik sujus. Neil läks “kiviraiujatega” võrreldes vähem aega ja nad vajasid teiste ülesannete lahenduste faile abivahendina vähem. Nende lahendamise sujuvus oli pigem sarnane “müüriladujatega”.

MOOC-i kokkuvõtva arvestusülesande lahenduste kontekstis saab öelda, et nendest seitsmest õppijast, kellel läks kõige kauem aega ning oli kõige rohkem veateateid ja korduvaid veateateid, ei töötanud keegi järk-järgult. On võimalik, et järk-järgulise lahendamise soovitamine võib aidata algajatel paremini mõista oma koodi ja leida vigu. See võib vähendada olukordi, kus koodis on korraga palju vigu ja sealjuures on raske aru saada, miks üks või teine veateade tuli.