Lausete arv: 226 - Sõnade arv: 3956
Analüüsiks kulunud aeg: 96.439 sekundit
Uus analüüsÕpilasega seotud mõjurite all on eelkõige mõeldud faktoreid, mida saab õpilane ise kontrollida ning mille alla Wilson liigitas 2002. aastal järgmised tegurid: õpilase taust, selle juures matemaatiline ja programmeerimise taust, vähene arvuti kasutamise oskus, inglise keele oskus ja halb varasem arvuti kasutamise kogemus [16].
Tulemused peale kursuse muutmist olid positiivsed, õpilaste tagasisidest tuli välja, kui olulised on nende jaoks teadmised, miks programmeerimine on kasulik, ja langes ka kursuselt väljalangemise protsent.
Nende vigade põhjuseks võib olla asjaolu, et kõik õppurid ei kasuta Thonnyt oma programmi silumiseks ja alustavad ülesande lahendamist Moodle’i keskkonnas ning seetõttu ei jõua jälile mõningatele näpuvigadele, mille kohta automaakontroll ei anna tagasisidet (vt Lisa V, Trüki- ja süntaksivead).
Näiteks sellise lahendustüübi puhul, kus puudub if-lause, mis kontrollib summasse liidetava arvu väärtust (vt alapeatükk 4.3, Tabel 5: Lahendus 2, Lahendus 4).
Sageli esines ka olukordi, kus lillede summa suurendamine töötas vastavalt tsükli tüübile valesti ja see põhjustas seisundi, kus hakati otsima lahendust algse summa muutuja väärtuse muutmisest, mille tõttu õppurid sai lõpuks mõlemad vead andmetabelisse kirja.
Enamasti tähendas see viga seda, et väljundlause oli paigutatud tsükli sisse, mitte tsüklist väljapoole, mis põhjustas summa väljastamise igal tsükli läbimise korral ning mida automaatkontroll õigeks ei lugenud, kuna ülesanne nõudis vaid lõpliku lillede summa väärtuse väljastamist.
Poolt-tarind on võõrapärane vorm, mis jätab lauses tegija tagaplaanile.
Antud uuring viidi läbi kursuse juhendajate abiga, kes märkisid üles kõik õpilaste poolt küsitud küsimused, mis hiljem kategoriseeriti.
Analüüsi käigus vaadati läbi kummagi ülesande puhul kõik lahendused, mille esituste arv Moodle’is oli suurem kui üks kord, seega vaatluse alla ei kuulunud esmasel esitusel automaatkontrolli poolt arvestatuks loetud lahendused.
Öeldistäiteks olev v- või tav- kesksõna võib mõjuda bürokraatlikult.
Märgib omaduste või seisundite juhuslikkust, ajutist iseloomu.
Parem on
kasutada kindlamat kõneviisi.
2016. aastal toimus teine MOOC, milleks oli „Programmeerimise alused”.
Töö eesmärgiks on välja selgitada tingimuslause ja tsükli teemade keerulisemate ülesannete vead ja erinevad lahendused ning selle põhjal anda soovitusi vastavate teemade materjalide ja ülesannete tekstide täiendamiseks, et vähendada edaspidi osalejate muresid ja küsimusi.
Töö eesmärgiks on välja selgitada tingimuslause ja tsükli teemade keerulisemate ülesannete vead ja erinevad lahendused ning selle põhjal anda soovitusi vastavate teemade materjalide ja ülesannete tekstide täiendamiseks, et vähendada edaspidi osalejate muresid ja küsimusi.
Kursuse sihtrühmaks on õppijad, kellel kokkupuude programmeerimisega puudub või on vähene.
Mõlemad ülesanded olid kohustuslikud kursuse läbimiseks.
Esimese kahe kursuse sihtrühmaks on inimesed, kellel puudub eelnev kogemus programmeerimisega ning õppimist alustatakse baasteadmistest.
Mõlema kursuse eesmärgiks on tutvustada üldiselt programmeerimist ja algoritmilist mõtteviisi.
Kursusel osalemiseks ei ole kohustuslik läbida varasemalt kursus „Programmeerimisest maalähedaselt“, kuid see on soovituslik, kuna kursuse jooksul käsitletakse põhjalikumalt kursusel „Programmeerimisest maalähedaselt“ läbitud teemasid ning lisaks õpitakse ka uusi teemasid [3].
Töö valimiks on need osalejad ja vastavalt nende osalejate ülesannete „Spämm“ ja „Lillede arv“ lahendused, mis ei saanud esimese Moodle’i keskkonda esitatud esitusega automaatkontrollilt arvestavat hinnet.
Kõikide lahenduste puhul olid valedeks operaatoriteks >=, < ja ==.
Õigeks operaatoriks võis sõltuvalt lahendusest olla vastavalt ülesandes nõutud tingimusele kas > või vastandlahenduse korral eelmisele vastupidine tingimus ehk <=.
See viga märgiti tabelisse siis, kui vähemalt ühele tingimustest oli vastavusse pandud väljund, mis pidi olema väljundiks vastandtingimuse puhul.
Probleemi esines kõige enam faili olemasolu kontrolli puhul, kui küsitud sisendi tüübiks oli sõne, kuid tingimuslauses kontrolliti kas kasutaja sisestas tõeväärtuse.
Nende vigade põhjuseks võib olla asjaolu, et kõik õppurid ei kasuta Thonnyt oma programmi silumiseks ja alustavad ülesande lahendamist Moodle’i keskkonnas ning seetõttu ei jõua jälile mõningatele näpuvigadele, mille kohta automaakontroll ei anna tagasisidet (vt Lisa V, Trüki- ja süntaksivead).
Samamoodi võib selle põhjuseks olla Pythoni süntaksi vähene tundmine kursuse teisel nädalal.
Võrreldes veaga 4, milleks oli vale loenduri algse väärtuse omistamine, esines seda viga siiski vähem kordi, 46 korda (9,7%).
Kuna ülesanne koosneb kahest erinevast muutuja suurendamisest, siis võimalik, et õppuritele võib olla abiks soovitus esmalt tsükkel tööle panna ja seejärel alles mõelda, kuidas summa suurendamine selles tsüklis toimuma peaks vastavalt ülesande tingimustele.
Ülesandes „Lillede arv” lahendustes esines kõige rohkem viga, milleks oli vale summa liidetava kasutamine või summa liidetava puudumine, mida tehti 68 korda ja mis moodustas 14,3% kõikidest selles ülesande lahendustes tehtud vigadest.
Mine-vormi kasutus koos tühiverbiga.
Tartu Ülikoolis toimus esimene programmeerimise MOOC aastal 2014, mille nimeks sai „Programmeerimisest maalähedaselt” ning mis osutus ootamatult populaarseks.
Kuna ülesanne koosneb kahest erinevast muutuja suurendamisest, siis võimalik, et õppuritele võib olla abiks soovitus esmalt tsükkel tööle panna ja seejärel alles mõelda, kuidas summa suurendamine selles tsüklis toimuma peaks vastavalt ülesande tingimustele.
Esines rohkem lahendusi, kus loenduri suurendamine toimus alles pärast summa suurendamist.
Esines rohkem lahendusi, kus loenduri suurendamine toimus alles pärast summa suurendamist.
|
loendur 13x |
Nimelt esines selliseid lahendusi, kus loenduri algne väärtus oli negatiivne ja seetõttu oli tsükli sees loenduri suurendamine enne summa suurendamist (vt Lisa IV, Lahendus 2b), kuid sellegipoolest õige lahendus. Nimelt esines selliseid lahendusi, kus loenduri algne väärtus oli negatiivne ja seetõttu oli tsükli sees loenduri suurendamine enne summa suurendamist (vt Lisa IV, Lahendus 2b), kuid sellegipoolest õige lahendus. Seejuures vale loenduri liidetav ehk viga 9 esines vaid 31 korda (6,5%). Võrreldes veaga 4, milleks oli vale loenduri algse väärtuse omistamine, esines seda viga siiski vähem kordi, 46 korda (9,7%). Selle põhjal saab öelda, et jällegi tekitas lillede summa osalejatele rohkem probleemi kui loendur. Loenduriga esines sarnaseid situatsioone. Lisaks esines viga 7, summa ja loenduri suurendamist vales järjekorras, mida loeti kokku 44 korda (9,3%). Sellegipoolest, ei saa kindlalt öelda, kumb lahendusviis on õige, kas summa suurendamine enne loenduri suurendamist või vastupidi, sest mõlemat viisi kasutades on võimalik ülesanne õigesti ära lahendada. Esines rohkem lahendusi, kus loenduri suurendamine toimus alles pärast summa suurendamist. Kasutades aga eelnevale vastupidist lahendust, tuleb õige tulemuse saamiseks loenduri algväärtuseks omistada -1 või summa algseks väärtuseks omistada 1. Lisaks esines vigu, mida tehti vähem kui 10 korda (alla 2%) (vt Lisa VI): summa või loenduri üleväärtustamine vales kohas, trüki- või süntaksivead, vigane if-tingimus, lahendus for- tsükliga ja probleem tüüpidega. Ülesande „Lillede arv” puhul tehti vigu seoses while-tsükli tingimuse ja selle võrdlusoperaatoriga, loenduri ja summa algse väärtuse omistamisega, loenduri ja summa väärtuse suurendamisega ning väljundlause sisu ja asukohaga. Ülesande „Lillede arv” puhul tehti vigu seoses while-tsükli tingimuse ja selle võrdlusoperaatoriga, loenduri ja summa algse väärtuse omistamisega, loenduri ja summa väärtuse suurendamisega ning väljundlause sisu ja asukohaga. | |||||||
|
Lisaks esines viga 7, summa ja loenduri suurendamist vales järjekorras, mida loeti kokku 44 korda (9,3%). Sellegipoolest, ei saa kindlalt öelda, kumb lahendusviis on õige, kas summa suurendamine enne loenduri suurendamist või vastupidi, sest mõlemat viisi kasutades on võimalik ülesanne õigesti ära lahendada. Esines rohkem lahendusi, kus loenduri suurendamine toimus alles pärast summa suurendamist. Kasutades aga eelnevale vastupidist lahendust, tuleb õige tulemuse saamiseks loenduri algväärtuseks omistada -1 või summa algseks väärtuseks omistada 1. | |||||||
|
programmeerimine 53x |
Tartu Ülikoolis toimus esimene programmeerimise MOOC aastal 2014, mille nimeks sai „Programmeerimisest maalähedaselt” ning mis osutus ootamatult populaarseks. Jälgides viimaste aastate statistilisi andmeid Tartu Ülikoolis pakutavate IT-alaste MOOCide kohta [3], võib öelda, et inimeste huvi infotehnoloogia ja programmeerimise vastu pole kahanenud. 2017. aasta sügissemestril toimunud kursuse „Programmeerimise alused” osalejate arv küündis 1518 huviliseni ning populaarsuselt esimese koha saavutas samal aastal kursus „Programmeerimisest maalähedaselt”, kus osales 2247 inimest. 2017. aasta sügissemestril toimunud kursuse „Programmeerimise alused” osalejate arv küündis 1518 huviliseni ning populaarsuselt esimese koha saavutas samal aastal kursus „Programmeerimisest maalähedaselt”, kus osales 2247 inimest. Töös analüüsitakse Tartu Ülikooli arvutiteaduse instituudi MOOCi „Programmeerimise alused” kahe kohustusliku ülesande lahendusi. Töös analüüsitud kursuse „Programmeerimise alused” kestus on kaheksa nädalat ja kursus on mahus 3 EAP ehk 78 tundi iseseisvat tööd. Kursuse sihtrühmaks on õppijad, kellel kokkupuude programmeerimisega puudub või on vähene. Lõpuks analüüsib autor kursuse „Programmeerimise alused” kahe valitud ülesande lahendusi ning esitab analüüsi tulemused. Arvutiteaduse instituut pakub kolme programmeerimisteemalist MOOCi: „Programmeerimisest maaähedaselt”, „Programmeerimise alused” ning „Programmeerimise alused II”. Arvutiteaduse instituut pakub kolme programmeerimisteemalist MOOCi: „Programmeerimisest maaähedaselt”, „Programmeerimise alused” ning „Programmeerimise alused II”. Esimese kahe kursuse sihtrühmaks on inimesed, kellel puudub eelnev kogemus programmeerimisega ning õppimist alustatakse baasteadmistest. Mõlema kursuse eesmärgiks on tutvustada üldiselt programmeerimist ja algoritmilist mõtteviisi. „Programmeerimisest maalähedaselt” toimus juba kaheksandat korda [7]. Kuna kursus kestab vaid neli nädalat ja on mahus 1 EAP ehk 26 tundi tööd, siis võib ka see olla üks põhjustest, miks kursus on Tartu Ülikooli programmeerimise MOOCide hulgas kõige populaarsem. „Programmeerimise alused” toimus esimest korda 2016. aasta kevadsemestril ning viimane 2017. aasta sügissemestril, kokku on kursus toimunud neli korda. Kursusel osalemiseks ei ole kohustuslik läbida varasemalt kursus „Programmeerimisest maalähedaselt“, kuid see on soovituslik, kuna kursuse jooksul käsitletakse põhjalikumalt kursusel „Programmeerimisest maalähedaselt“ läbitud teemasid ning lisaks õpitakse ka uusi teemasid [3]. Kursusel osalemiseks ei ole kohustuslik läbida varasemalt kursus „Programmeerimisest maalähedaselt“, kuid see on soovituslik, kuna kursuse jooksul käsitletakse põhjalikumalt kursusel „Programmeerimisest maalähedaselt“ läbitud teemasid ning lisaks õpitakse ka uusi teemasid [3]. Kursusele „Programmeerimise alused” pakub Tartu Ülikooli arvutiteaduse instituut ka jätkukursust „Programmeerimise alused II”, mis on suunatud inimestele, kellel eelnevalt on olemas kokkupuude programmeerimisega vähemalt kursuse „Programmeerimise alused” mahus [9]. Kursusele „Programmeerimise alused” pakub Tartu Ülikooli arvutiteaduse instituut ka jätkukursust „Programmeerimise alused II”, mis on suunatud inimestele, kellel eelnevalt on olemas kokkupuude programmeerimisega vähemalt kursuse „Programmeerimise alused” mahus [9]. Kursusele „Programmeerimise alused” pakub Tartu Ülikooli arvutiteaduse instituut ka jätkukursust „Programmeerimise alused II”, mis on suunatud inimestele, kellel eelnevalt on olemas kokkupuude programmeerimisega vähemalt kursuse „Programmeerimise alused” mahus [9]. Kursusele „Programmeerimise alused” pakub Tartu Ülikooli arvutiteaduse instituut ka jätkukursust „Programmeerimise alused II”, mis on suunatud inimestele, kellel eelnevalt on olemas kokkupuude programmeerimisega vähemalt kursuse „Programmeerimise alused” mahus [9]. Nii kursus „Programmeerimise alused” kui „Programmeerimise alused II” kestab kaheksa nädalat ja on mahus 3 EAP ehk 78 tundi iseseisvat tööd [8, 9]. „Programmeerimise alused II” keskendub varasemalt omandatud teadmiste kordamisele, süvendamisele, programmide koostamisele ja testimisele [9]. Kui 2016. aastal toimunud kursuse „Programmeerimisest maalähedaselt” osalejad saatsid õppejõududele üle 1250 meili, siis 2017. kursusel „Programmeerimisest maalähedaselt” oli kirjade arv 750 [11]. Kui 2016. aastal toimunud kursuse „Programmeerimisest maalähedaselt” osalejad saatsid õppejõududele üle 1250 meili, siis 2017. kursusel „Programmeerimisest maalähedaselt” oli kirjade arv 750 [11]. Teadaolevalt on programmeerimine seotud nii väga paljude teadus- kui ka eluvaldkondadega. Viimastel aastatel on huvi ja nõudlus programmeerimise õppimise järele oluliselt suurenenud ning samuti on suurenenud programmeerimisalaste MOOCide osalejate arv [14]. Vaatamata suurele huvile on enamikul algajatest programmeerijatest raskusi juba esimeste programmeerimisse sissejuhatavate kursustega, mida näitab ka programmeerimise MOOCide ja sissejuhatavate kursuste pidevalt kõrge väljalangemise protsent. Vaatamata suurele huvile on enamikul algajatest programmeerijatest raskusi juba esimeste programmeerimisse sissejuhatavate kursustega, mida näitab ka programmeerimise MOOCide ja sissejuhatavate kursuste pidevalt kõrge väljalangemise protsent. Järgnev lõik annab ülevaate, mis tegurid võivad mõjutada õpilaste tulemusi programmeerimise sissejuhatavas kursuses. Õpilasega seotud mõjurite all on eelkõige mõeldud faktoreid, mida saab õpilane ise kontrollida ning mille alla Wilson liigitas 2002. aastal järgmised tegurid: õpilase taust, selle juures matemaatiline ja programmeerimise taust, vähene arvuti kasutamise oskus, inglise keele oskus ja halb varasem arvuti kasutamise kogemus [16]. Wilson väidab, et palju suuremat rolli õpilaste programmeerimisalaste soorituste juures kui matemaatiline taust omab õpilaste mugavus ja enesekindlus õppida programmeerimist ja seda just naissoost õpilaste hulgas. Uurimus tehti Queenslandi ülikooli programmeerimisse sissejuhatava kursuse ümberstruktureerimisest eesmärgiga motiveerida õpilasi programmeerima ja vähendada kursuse kõrget väljalangevuse protsenti. Tulemused peale kursuse muutmist olid positiivsed, õpilaste tagasisidest tuli välja, kui olulised on nende jaoks teadmised, miks programmeerimine on kasulik, ja langes ka kursuselt väljalangemise protsent. Tänu sellele, et kursuse sissejuhatav osa tehti pikemaks ja üldisemaks, selgitamaks õpilastele probleeme, mida saab lahendada programmeerimise abil, tõsteti õpilaste motivatsioonitaset lahendada programmeerimise ülesandeid ja osaleda kursusel lõpuni. Tänu sellele, et kursuse sissejuhatav osa tehti pikemaks ja üldisemaks, selgitamaks õpilastele probleeme, mida saab lahendada programmeerimise abil, tõsteti õpilaste motivatsioonitaset lahendada programmeerimise ülesandeid ja osaleda kursusel lõpuni. Usutakse, et programmeerimine on oskus, mis vajab palju keskendumist ja harjutamist [18]. Sarnaselt on leitud ka 2005. aastal läbi viidud küsitluses, mis viidi läbi programmeerimise baaskursuse läbinud erinevate ülikoolide tudengite hulgas [19], mille tulemusel selgus, et õpilased hindasid üksinda õppimist efektiivsemaks kui loengutes osalemist ja üksi kursuse materjalidega töötamist kasulikumaks kui seminarides osalemist. Kusjuures tegu oli üliõpilastega, kellest üle poolte olid enne kursuse algust kokku puutunud programmeerimisega. Teisisõnu võib öelda, et programmeerimist ei ole võimalik „ära õppida” lühikese perioodi jooksul. Programmeerimise oskus kujuneb välja pikema aja jooksul pidevalt uute probleemidega tegelemise, analüüsi ja lahendamise oskuse arendamise abil. Antud töös on vaatluse all Tartu Ülikooli 2017. aasta sügissemestril toimunud MOOCi „Programmeerimise alused” kaks kohustuslikku ülesannet. 2017. aasta sügissemestril osales „Programmeerimise alused” kursusel kokku 1518 õppurit. Andmete kogumiseks kasutati 2017. aasta sügissemestril kursuse „Programmeerimise alused” läbinud osalejate kahe erineva ülesande lahendusi. Garneri jt läbi viidud uuringus selgus [21], et õpilastel esines mitme nädala jooksul probleeme baasmehhanismidega ning selles osas ühtivad uuringu tulemused antud ülesande analüüsi tulemustega, kuna „Spämm” ülesanne hõlmas erinevaid programmeerimise baasteadmisi, näiteks: muutujad, andmetüübid, tingimuslaused, loogilised tehted ja avaldised. Ühtlasi vastanduvad selle ülesande lahenduste analüüsi tulemused Garneri jt koostatud Java sissejuhatava programmeerimise kursuse analüüsi tulemustele, kus selgus, et tsüklite teema seminar oli üks raskematest algajate programmeerijate jaoks [21. Tartu Ülikool pakub kolme erinevat programmeerimise MOOCi: „Programmeerimisest maalähedaselt”, „Programmeerimise alused” ja „Programmeerimise alused II”. Tartu Ülikool pakub kolme erinevat programmeerimise MOOCi: „Programmeerimisest maalähedaselt”, „Programmeerimise alused” ja „Programmeerimise alused II”. Tartu Ülikool pakub kolme erinevat programmeerimise MOOCi: „Programmeerimisest maalähedaselt”, „Programmeerimise alused” ja „Programmeerimise alused II”. Vaatamata sellele, et varem on püütud Tartu Ülikooli programmeerimise MOOCil osalejatel ülesannete lahendamisel tekkinud küsimusi ja muresid erinevatel viisidel lahendada ja ülesannete raskusastet ühtlustada, näiteks murelahendaja abil, on mõned programmeerimise ülesanded siiski osalejatele raskemad kui teised. Vaatamata sellele, et varem on püütud Tartu Ülikooli programmeerimise MOOCil osalejatel ülesannete lahendamisel tekkinud küsimusi ja muresid erinevatel viisidel lahendada ja ülesannete raskusastet ühtlustada, näiteks murelahendaja abil, on mõned programmeerimise ülesanded siiski osalejatele raskemad kui teised. Antud töös analüüsiti kursuse „Programmeerimise alused” kahe kohustusliku ülesande lahendusi, kus esimene ülesanne oli seotud tingimuslausetega ja teine while-tsükliga. Antud tööd saab kasutada programmeerimise MOOCide materjalide ja ülesannete täiendamisel või muutmisel kui ka uute MOOCide loomisel, keskendudes rohkem töös analüüsitud ülesannete teemade sagedasemate vigade ennetamisele. | |||||||
|
Arvutiteaduse instituut pakub kolme programmeerimisteemalist MOOCi: „ Programmeerimisest maaähedaselt”, „ Programmeerimise alused” ning „Programmeerimise alused II”. Esimese kahe kursuse sihtrühmaks on inimesed, kellel puudub eelnev kogemus programmeerimisega ning õppimist alustatakse baasteadmistest. Mõlema kursuse eesmärgiks on tutvustada üldiselt programmeerimist ja algoritmilist mõtteviisi. „ Programmeerimisest maalähedaselt” toimus juba kaheksandat korda [7]. Kuna kursus kestab vaid neli nädalat ja on mahus 1 EAP ehk 26 tundi tööd, siis võib ka see olla üks põhjustest, miks kursus on Tartu Ülikooli programmeerimise MOOCide hulgas kõige populaarsem. „ Programmeerimise alused” toimus esimest korda 2016. aasta kevadsemestril ning viimane 2017. aasta sügissemestril, kokku on kursus toimunud neli korda. Kursusel osalemiseks ei ole kohustuslik läbida varasemalt kursus „ Programmeerimisest maalähedaselt“, kuid see on soovituslik, kuna kursuse jooksul käsitletakse põhjalikumalt kursusel „ Programmeerimisest maalähedaselt“ läbitud teemasid ning lisaks õpitakse ka uusi teemasid [3]. Kursusele „ Programmeerimise alused” pakub Tartu Ülikooli arvutiteaduse instituut ka jätkukursust „ Programmeerimise alused II”, mis on suunatud inimestele, kellel eelnevalt on olemas kokkupuude programmeerimisega vähemalt kursuse „ Programmeerimise alused” mahus [9]. Nii kursus „ Programmeerimise alused” kui „ Programmeerimise alused II” kestab kaheksa nädalat ja on mahus 3 EAP ehk 78 tundi iseseisvat tööd [8, 9]. [...] „Programmeerimise alused II” keskendub varasemalt omandatud teadmiste kordamisele, süvendamisele, programmide koostamisele ja testimisele [9 | |||||||
|
Kui 2016. aastal toimunud kursuse „ Programmeerimisest maalähedaselt” osalejad saatsid õppejõududele üle 1250 meili, siis 2017. kursusel „ Programmeerimisest maalähedaselt” oli kirjade arv 750 [11]. Teadaolevalt on programmeerimine seotud nii väga paljude teadus- kui ka eluvaldkondadega. Viimastel aastatel on huvi ja nõudlus programmeerimise õppimise järele oluliselt suurenenud ning samuti on suurenenud programmeerimisalaste MOOCide osalejate arv [14]. Vaatamata suurele huvile on enamikul algajatest programmeerijatest raskusi juba esimeste programmeerimisse sissejuhatavate kursustega, mida näitab ka programmeerimise MOOCide ja sissejuhatavate kursuste pidevalt kõrge väljalangemise protsent. [...] Järgnev lõik annab ülevaate, mis tegurid võivad mõjutada õpilaste tulemusi programmeerimise sissejuhatavas kursuses | |||||||
|
Tartu Ülikool pakub kolme erinevat programmeerimise MOOCi: „ Programmeerimisest maalähedaselt”, „ Programmeerimise alused” ja „Programmeerimise alused II”. Vaatamata sellele, et varem on püütud Tartu Ülikooli programmeerimise MOOCil osalejatel ülesannete lahendamisel tekkinud küsimusi ja muresid erinevatel viisidel lahendada ja ülesannete raskusastet ühtlustada, näiteks murelahendaja abil, on mõned programmeerimise ülesanded siiski osalejatele raskemad kui teised. Antud töös analüüsiti kursuse „ Programmeerimise alused” kahe kohustusliku ülesande lahendusi, kus esimene ülesanne oli seotud tingimuslausetega ja teine while-tsükliga. | |||||||
|
andmetabel 14x |
Liigitatud vigade analüüsiks ning statistika koostamiseks koostas autor kummagi ülesande jaoks kaks andmetabelit, millest üks oli arvestatud lahenduste ja teine mittearvestatud lahenduste jaoks. Andmetabelitesse märgiti kõik vastavas esituses esinenud vead. Ülesannete lahenduste vead on autori ja juhendaja kokkuleppel andmetabelitesse märgitud iga õppuri enda lahendusest lähtuvalt, kuna mõlema analüüsitud ülesande puhul on olemas palju võimalikke lahendusi ning õiged lahendused võisid olla vastandlikke tingimusi või muutujaid nõudvad. Iga läbivaadatud lahenduse juures märkis autor lisaks tehtud vigadele andmetabelisse vastavalt sobiva lahendustüübi (vt Lisa I). Näiteks kui õppur oli lahendamist alustanud lahenduse 4 suunas, kuid viimane arvestatuks loetud lahendus oli lahendus 1, siis märgiti andmetabelisse vastavalt tüübiks lahendus 1. Sageduselt järgmine oli viga 3, mida märgiti andmetabelisse 320 korda (14,7%). Viga 5 ehk vastupidise väljundi kasutamise kohta vastavalt tingimusele tehti andmetabelisse 169 märget (7,7%). Viga 8 ehk tingimuste osaline puudumine märgiti andmetabelisse kokku 100 korda (4,6%). Viga 9 ehk probleem muutuja tüüpidega märgiti andmetabelisse kokku 64 korda (2,9%). Viga 11, milleks oli küsitud sisendite üleväärtustamine enne if-plokki, märgiti andmetabelisse vaid 10 korda (0,5%). Kuid samuti leidus trüki- ja süntaksivigu ehk viga 10, mida märgiti andmetabelisse 19 korda (0,9%). Kõige sagedasem oli viga 1, vale lillede summa liidetava väärtuse määramine, mida märgiti andmetabelisse 68 korda (14,3%). Sageli esines ka olukordi, kus lillede summa suurendamine töötas vastavalt tsükli tüübile valesti ja see põhjustas seisundi, kus hakati otsima lahendust algse summa muutuja väärtuse muutmisest, mille tõttu õppurid sai lõpuks mõlemad vead andmetabelisse kirja. Esines ka print-lause väljastamist vales kohas ehk viga 3, millele tehti 61 märget (12,8%) andmetabelisse. | |||||||
|
järjend 7x |
Samuti toodi välja probleem tsüklite ja järjenditega, mis tuleb väga selgelt välja vastava seminari analüüsigraafikust [21]. Kõige rohkem esines probleeme järjenditega, mille alla loeti õpilaste järgnevad küsimused: järjend kui andmestruktuur, järjendi sisu, järjendi defineerimine, järjendi indekseerimine. Kõige rohkem esines probleeme järjenditega, mille alla loeti õpilaste järgnevad küsimused: järjend kui andmestruktuur, järjendi sisu, järjendi defineerimine, järjendi indekseerimine. Kõige rohkem esines probleeme järjenditega, mille alla loeti õpilaste järgnevad küsimused: järjend kui andmestruktuur, järjendi sisu, järjendi defineerimine, järjendi indekseerimine. Kõige rohkem esines probleeme järjenditega, mille alla loeti õpilaste järgnevad küsimused: järjend kui andmestruktuur, järjendi sisu, järjendi defineerimine, järjendi indekseerimine. Kõige rohkem esines probleeme järjenditega, mille alla loeti õpilaste järgnevad küsimused: järjend kui andmestruktuur, järjendi sisu, järjendi defineerimine, järjendi indekseerimine. Nimetatud teemade probleemid olid kõikides seminarides loendatud vigadest kõige suurema esinemiste arvuga ühe seminari kohta, millest võib järeldada, et seminar „Tsüklid ja järjendid” valmistas õpilastele kõige rohkem probleeme. | |||||||
|
Samuti toodi välja probleem tsüklite ja järjenditega , mis tuleb väga selgelt välja vastava seminari analüüsigraafikust [21]. Kõige rohkem esines probleeme järjenditega , mille alla loeti õpilaste järgnevad küsimused: järjend kui andmestruktuur, järjendi sisu, järjendi defineerimine, järjendi indekseerimine. | |||||||
|
alune 20x |
2016. aastal toimus teine MOOC, milleks oli „Programmeerimise alused”. 2017. aasta sügissemestril toimunud kursuse „Programmeerimise alused” osalejate arv küündis 1518 huviliseni ning populaarsuselt esimese koha saavutas samal aastal kursus „Programmeerimisest maalähedaselt”, kus osales 2247 inimest. Töös analüüsitakse Tartu Ülikooli arvutiteaduse instituudi MOOCi „Programmeerimise alused” kahe kohustusliku ülesande lahendusi. Töös analüüsitud kursuse „Programmeerimise alused” kestus on kaheksa nädalat ja kursus on mahus 3 EAP ehk 78 tundi iseseisvat tööd. Lõpuks analüüsib autor kursuse „Programmeerimise alused” kahe valitud ülesande lahendusi ning esitab analüüsi tulemused. Arvutiteaduse instituut pakub kolme programmeerimisteemalist MOOCi: „Programmeerimisest maaähedaselt”, „Programmeerimise alused” ning „Programmeerimise alused II”. Arvutiteaduse instituut pakub kolme programmeerimisteemalist MOOCi: „Programmeerimisest maaähedaselt”, „Programmeerimise alused” ning „Programmeerimise alused II”. „Programmeerimise alused” toimus esimest korda 2016. aasta kevadsemestril ning viimane 2017. aasta sügissemestril, kokku on kursus toimunud neli korda. Kursusele „Programmeerimise alused” pakub Tartu Ülikooli arvutiteaduse instituut ka jätkukursust „Programmeerimise alused II”, mis on suunatud inimestele, kellel eelnevalt on olemas kokkupuude programmeerimisega vähemalt kursuse „Programmeerimise alused” mahus [9]. Kursusele „Programmeerimise alused” pakub Tartu Ülikooli arvutiteaduse instituut ka jätkukursust „Programmeerimise alused II”, mis on suunatud inimestele, kellel eelnevalt on olemas kokkupuude programmeerimisega vähemalt kursuse „Programmeerimise alused” mahus [9]. Kursusele „Programmeerimise alused” pakub Tartu Ülikooli arvutiteaduse instituut ka jätkukursust „Programmeerimise alused II”, mis on suunatud inimestele, kellel eelnevalt on olemas kokkupuude programmeerimisega vähemalt kursuse „Programmeerimise alused” mahus [9]. Nii kursus „Programmeerimise alused” kui „Programmeerimise alused II” kestab kaheksa nädalat ja on mahus 3 EAP ehk 78 tundi iseseisvat tööd [8, 9]. Nii kursus „Programmeerimise alused” kui „Programmeerimise alused II” kestab kaheksa nädalat ja on mahus 3 EAP ehk 78 tundi iseseisvat tööd [8, 9]. „Programmeerimise alused II” keskendub varasemalt omandatud teadmiste kordamisele, süvendamisele, programmide koostamisele ja testimisele [9]. Antud töös on vaatluse all Tartu Ülikooli 2017. aasta sügissemestril toimunud MOOCi „Programmeerimise alused” kaks kohustuslikku ülesannet. 2017. aasta sügissemestril osales „Programmeerimise alused” kursusel kokku 1518 õppurit. Andmete kogumiseks kasutati 2017. aasta sügissemestril kursuse „Programmeerimise alused” läbinud osalejate kahe erineva ülesande lahendusi. Tartu Ülikool pakub kolme erinevat programmeerimise MOOCi: „Programmeerimisest maalähedaselt”, „Programmeerimise alused” ja „Programmeerimise alused II”. Tartu Ülikool pakub kolme erinevat programmeerimise MOOCi: „Programmeerimisest maalähedaselt”, „Programmeerimise alused” ja „Programmeerimise alused II”. Antud töös analüüsiti kursuse „Programmeerimise alused” kahe kohustusliku ülesande lahendusi, kus esimene ülesanne oli seotud tingimuslausetega ja teine while-tsükliga. | |||||||
|
Kursusele „Programmeerimise alused ” pakub Tartu Ülikooli arvutiteaduse instituut ka jätkukursust „Programmeerimise alused II”, mis on suunatud inimestele, kellel eelnevalt on olemas kokkupuude programmeerimisega vähemalt kursuse „Programmeerimise alused ” mahus [9]. Nii kursus „Programmeerimise alused ” kui „Programmeerimise alused II” kestab kaheksa nädalat ja on mahus 3 EAP ehk 78 tundi iseseisvat tööd [8, 9]. [...] „Programmeerimise alused II” keskendub varasemalt omandatud teadmiste kordamisele, süvendamisele, programmide koostamisele ja testimisele [9 | |||||||
|
maalähedane 8x |
Tartu Ülikoolis toimus esimene programmeerimise MOOC aastal 2014, mille nimeks sai „Programmeerimisest maalähedaselt” ning mis osutus ootamatult populaarseks. 2017. aasta sügissemestril toimunud kursuse „Programmeerimise alused” osalejate arv küündis 1518 huviliseni ning populaarsuselt esimese koha saavutas samal aastal kursus „Programmeerimisest maalähedaselt”, kus osales 2247 inimest. „Programmeerimisest maalähedaselt” toimus juba kaheksandat korda [7]. Kursusel osalemiseks ei ole kohustuslik läbida varasemalt kursus „Programmeerimisest maalähedaselt“, kuid see on soovituslik, kuna kursuse jooksul käsitletakse põhjalikumalt kursusel „Programmeerimisest maalähedaselt“ läbitud teemasid ning lisaks õpitakse ka uusi teemasid [3]. Kursusel osalemiseks ei ole kohustuslik läbida varasemalt kursus „Programmeerimisest maalähedaselt“, kuid see on soovituslik, kuna kursuse jooksul käsitletakse põhjalikumalt kursusel „Programmeerimisest maalähedaselt“ läbitud teemasid ning lisaks õpitakse ka uusi teemasid [3]. Kui 2016. aastal toimunud kursuse „Programmeerimisest maalähedaselt” osalejad saatsid õppejõududele üle 1250 meili, siis 2017. kursusel „Programmeerimisest maalähedaselt” oli kirjade arv 750 [11]. Kui 2016. aastal toimunud kursuse „Programmeerimisest maalähedaselt” osalejad saatsid õppejõududele üle 1250 meili, siis 2017. kursusel „Programmeerimisest maalähedaselt” oli kirjade arv 750 [11]. Tartu Ülikool pakub kolme erinevat programmeerimise MOOCi: „Programmeerimisest maalähedaselt”, „Programmeerimise alused” ja „Programmeerimise alused II”. | |||||||
|
osaleja 41x |
2017. aasta sügissemestril toimunud kursuse „Programmeerimise alused” osalejate arv küündis 1518 huviliseni ning populaarsuselt esimese koha saavutas samal aastal kursus „Programmeerimisest maalähedaselt”, kus osales 2247 inimest. Kuna aga kõik ülesanded hinnatakse automaatkontrolli abil, siis ei ole teada, milliseid vigu kursusel osalejad tegelikult teevad ning kuidas nad ülesandeid lahendavad. Töö eesmärgiks on välja selgitada tingimuslause ja tsükli teemade keerulisemate ülesannete vead ja erinevad lahendused ning selle põhjal anda soovitusi vastavate teemade materjalide ja ülesannete tekstide täiendamiseks, et vähendada edaspidi osalejate muresid ja küsimusi. Edukaks läbimiseks tuli osalejatel iga nädal lahendada üks kuni neli kohustuslikku ülesannet hindele arvestatud ja sooritada kõik Moodle’i testid hindele arvestatud. Materjalid on esitatud erinevate dokumentide, videote ja viktoriinide abil keskkonnas, mida osalejad saavad külastada neile sobivatel aegadel. Nii osalejate omavahelise kui ka juhendajate ja osalejate vahelise suhtluse peamine vahend on foorum. Nii osalejate omavahelise kui ka juhendajate ja osalejate vahelise suhtluse peamine vahend on foorum. Iga nädal tuleb antud nädala teema kohta lahendada üks kuni neli iseseisvat ülesannet programmeerimiskeeles Python, mis tuleb esitada Moodle’i keskkonnas, nendest suurem osa on kohustuslikud ja viimane ülesanne on võimalik osalejatel valida pakutud ülesannete hulgast. Õppurite lahendusi hinnatakse automaatkontrolli programmi VPL (ingl Virtual Programming Lab) abil, kuna suure osalejate arvu tõttu ei ole ajaliselt võimalik ja mõistlik kõiki lahendusi manuaalselt läbi vaadata. VPL-i abil saab hinnata, grupeerida, salvestada, kopeerida osalejate esitatud ülesandeid [10]. Lisaks automaatkontrolli tagasisidele on võimalus osalejatel kasutada murelahendajat (ingl troubleshooter). Programmi vihjed on koostatud kursusel osalejate e-kirjade põhjal, et ennetada tekkivaid probleeme ning vähendada õppejõududele laekuvate meilide hulka [11]. Kui 2016. aastal toimunud kursuse „Programmeerimisest maalähedaselt” osalejad saatsid õppejõududele üle 1250 meili, siis 2017. kursusel „Programmeerimisest maalähedaselt” oli kirjade arv 750 [11]. Viimastel aastatel on huvi ja nõudlus programmeerimise õppimise järele oluliselt suurenenud ning samuti on suurenenud programmeerimisalaste MOOCide osalejate arv [14]. Osalejate vanus jäi vahemikku 14 kuni 74 eluaastat ning kursusel oli 759 naissoost ja 759 meessoost osalejat. Osalejate vanus jäi vahemikku 14 kuni 74 eluaastat ning kursusel oli 759 naissoost ja 759 meessoost osalejat. Töö valimiks on need osalejad ja vastavalt nende osalejate ülesannete „Spämm“ ja „Lillede arv“ lahendused, mis ei saanud esimese Moodle’i keskkonda esitatud esitusega automaatkontrollilt arvestavat hinnet. Töö valimiks on need osalejad ja vastavalt nende osalejate ülesannete „Spämm“ ja „Lillede arv“ lahendused, mis ei saanud esimese Moodle’i keskkonda esitatud esitusega automaatkontrollilt arvestavat hinnet. Andmete kogumiseks kasutati 2017. aasta sügissemestril kursuse „Programmeerimise alused” läbinud osalejate kahe erineva ülesande lahendusi. Kokku lahendas ülesannet „Spämm” 1315 osalejat, kellest arvestatud hinde said 1293 osalejat ja mittearvestatud 22 osalejat. Kokku lahendas ülesannet „Spämm” 1315 osalejat, kellest arvestatud hinde said 1293 osalejat ja mittearvestatud 22 osalejat. Kokku lahendas ülesannet „Spämm” 1315 osalejat, kellest arvestatud hinde said 1293 osalejat ja mittearvestatud 22 osalejat. 1293-st osalejast sai esimese esituse korraga mittearvestava hinde 788 osalejat. 1293-st osalejast sai esimese esituse korraga mittearvestava hinde 788 osalejat. Ülesanne oli kõige kõrgema keskmise lahenduste esituste arvuga ülesanne kursusel, keskmine esituste arv kõigi lahenduste esituste peale oli 4,6 korda ja esmalt mittearvestatud hinde saanud osalejate esituste keskmine arv oli 6,7 korda. Lahendustüüp määrati igale lahendusele Moodle’isse osaleja viimase esitatud arvestatud lahenduse põhjal. Kokkuvõtteks võib öelda, et ülesande „Spämm” lahenduste vigade arv oli suur ja ülesanne oli osalejatele raske. Samas said paljud osalejad lõpuks ikkagi tulemuseks arvestatud, mis näitab, et nad suutsid oma vigu iseseisvalt nii materjalide, murelahendaja, foorumi või kirjade abil ära lahendada, vaatamata paljudele esituskordadele. Kokku lahendas ülesannet „Lillede arv” 1213 osalejat, kellest arvestatud hinde said 1202 osalejat ja mittearvestatud 11 osalejat. Kokku lahendas ülesannet „Lillede arv” 1213 osalejat, kellest arvestatud hinde said 1202 osalejat ja mittearvestatud 11 osalejat. Kokku lahendas ülesannet „Lillede arv” 1213 osalejat, kellest arvestatud hinde said 1202 osalejat ja mittearvestatud 11 osalejat. 1202-st osalejast sai esimese esituse korraga mittearvestava hinde 232 osalejat. 1202-st osalejast sai esimese esituse korraga mittearvestava hinde 232 osalejat. Keskmine esituste arv kõigi lahenduste esituste peale oli 1,6 korda ja esmalt mittearvestava hinde saanud osalejate esituste keskmine arv oli 3,4 korda. Ülesanne osutus lahendajatele lihtsamaks kui ülesanne „Spämm”, kuid siinkohal tuleks ära märkida, et mitte kõik osalejate lõplikud arvestatud lahendused ei olnud lihtsasti arusaadava programmi kujul. Eelnevalt mainitud lahenduste põhjal ei saa aga öelda, kas tegemist oli osalejate teadmatusega ja proovimise teel leitud lahendustega või nad olid ikkagi täielikud teadlikud, kuidas nende programm töötab. Teisalt tuleks ära märkida, et analüüsitud lahenduste hulgas oli ka selliseid lahendusi, kus oli näha, et õppur on lahendamisega rohkem tegelenud kui enamus osalejaid. Selle põhjal saab öelda, et jällegi tekitas lillede summa osalejatele rohkem probleemi kui loendur. While-tsüklit kasutava „Lillede arv” analüüsi ja vigade arvu põhjal võib öelda, et see ülesanne oli osalejatele lihtsam kui ülesanne „Spämm”. Vaatamata sellele, et varem on püütud Tartu Ülikooli programmeerimise MOOCil osalejatel ülesannete lahendamisel tekkinud küsimusi ja muresid erinevatel viisidel lahendada ja ülesannete raskusastet ühtlustada, näiteks murelahendaja abil, on mõned programmeerimise ülesanded siiski osalejatele raskemad kui teised. Vaatamata sellele, et varem on püütud Tartu Ülikooli programmeerimise MOOCil osalejatel ülesannete lahendamisel tekkinud küsimusi ja muresid erinevatel viisidel lahendada ja ülesannete raskusastet ühtlustada, näiteks murelahendaja abil, on mõned programmeerimise ülesanded siiski osalejatele raskemad kui teised. | |||||||
|
Osalejate vanus jäi vahemikku 14 kuni 74 eluaastat ning kursusel oli 759 naissoost ja 759 meessoost osalejat . Töö valimiks on need osalejad ja vastavalt nende osalejate ülesannete „Spämm“ ja „Lillede arv“ lahendused, mis ei saanud esimese Moodle’i keskkonda esitatud esitusega automaatkontrollilt arvestavat hinnet. | |||||||
|
Kokku lahendas ülesannet „Spämm” 1315 osalejat , kellest arvestatud hinde said 1293 osalejat ja mittearvestatud 22 osalejat . 1293-st osalejast sai esimese esituse korraga mittearvestava hinde 788 osalejat . [...] Ülesanne oli kõige kõrgema keskmise lahenduste esituste arvuga ülesanne kursusel, keskmine esituste arv kõigi lahenduste esituste peale oli 4,6 korda ja esmalt mittearvestatud hinde saanud osalejate esituste keskmine arv oli 6,7 korda. [...] Lahendustüüp määrati igale lahendusele Moodle’isse osaleja viimase esitatud arvestatud lahenduse põhjal | |||||||
|
Kokku lahendas ülesannet „Lillede arv” 1213 osalejat , kellest arvestatud hinde said 1202 osalejat ja mittearvestatud 11 osalejat . 1202-st osalejast sai esimese esituse korraga mittearvestava hinde 232 osalejat . [...] Keskmine esituste arv kõigi lahenduste esituste peale oli 1,6 korda ja esmalt mittearvestava hinde saanud osalejate esituste keskmine arv oli 3,4 korda | |||||||
|
õppur 16x |
Õppurite lahendusi hinnatakse automaatkontrolli programmi VPL (ingl Virtual Programming Lab) abil, kuna suure osalejate arvu tõttu ei ole ajaliselt võimalik ja mõistlik kõiki lahendusi manuaalselt läbi vaadata. MOOCide õpetamise stiili juures tuleks arvestada, et õpetamise stiil ei mõjuta õppureid nii palju, kui seda teeb õppejõud klassiruumis, kuid õppematerjalide esitusviis mõjutab õpilaste õppimise stiili. 2017. aasta sügissemestril osales „Programmeerimise alused” kursusel kokku 1518 õppurit. Ülesande „Spämm” puhul oli 810 õppurit, kes esitasid oma lahenduse Moodle’isse enam kui üks kord ja ei saanud kohe hindeks arvestatud ja ülesande „Lillede arv” puhul oli neid 243. Ülesannet „Spämm” lahendas kokku 1315 õppurit ja ülesannet „Lillede arv” lahendas 1213 õppurit. Ülesannet „Spämm” lahendas kokku 1315 õppurit ja ülesannet „Lillede arv” lahendas 1213 õppurit. Ülesannete lahenduste vead on autori ja juhendaja kokkuleppel andmetabelitesse märgitud iga õppuri enda lahendusest lähtuvalt, kuna mõlema analüüsitud ülesande puhul on olemas palju võimalikke lahendusi ning õiged lahendused võisid olla vastandlikke tingimusi või muutujaid nõudvad. Näiteks kui õppur oli lahendamist alustanud lahenduse 4 suunas, kuid viimane arvestatuks loetud lahendus oli lahendus 1, siis märgiti andmetabelisse vastavalt tüübiks lahendus 1. Sellest võib järeldada, et paljud õppurid siiski jõudsid lõpuks kõige lühema lahenduseni ning said oma vigadest aru, vaatamata suurtele esituste arvudele. Kuna automaatkontroll näitab peale ühte programmi käivituse korda kõiki teste koos sisenditega ka õppuritele, kasutasid mõned õppurid olukorda ära ja kirjutasid programmi vastavalt nendele sisenditele. Kuna automaatkontroll näitab peale ühte programmi käivituse korda kõiki teste koos sisenditega ka õppuritele, kasutasid mõned õppurid olukorda ära ja kirjutasid programmi vastavalt nendele sisenditele. Viga esines tihti õppurite esimeste esituste hulgas, kus terve programm ei olnud veel valmis, kuid seni tehtud programm töötas tingimuste kohaselt. Nende vigade põhjuseks võib olla asjaolu, et kõik õppurid ei kasuta Thonnyt oma programmi silumiseks ja alustavad ülesande lahendamist Moodle’i keskkonnas ning seetõttu ei jõua jälile mõningatele näpuvigadele, mille kohta automaakontroll ei anna tagasisidet (vt Lisa V, Trüki- ja süntaksivead). Teisalt tuleks ära märkida, et analüüsitud lahenduste hulgas oli ka selliseid lahendusi, kus oli näha, et õppur on lahendamisega rohkem tegelenud kui enamus osalejaid. Sageli esines ka olukordi, kus lillede summa suurendamine töötas vastavalt tsükli tüübile valesti ja see põhjustas seisundi, kus hakati otsima lahendust algse summa muutuja väärtuse muutmisest, mille tõttu õppurid sai lõpuks mõlemad vead andmetabelisse kirja. Kuna ülesanne koosneb kahest erinevast muutuja suurendamisest, siis võimalik, et õppuritele võib olla abiks soovitus esmalt tsükkel tööle panna ja seejärel alles mõelda, kuidas summa suurendamine selles tsüklis toimuma peaks vastavalt ülesande tingimustele. | |||||||