4. aprill 2017

Programmeerimise õpetamisest põhikoolis. 3. osa

See on viimane osa postituste sarjast, milles kirjutan oma programmeerimise õpetamise kogemusest Scratchi näitel. Tänased teemad on refleksioon, tagasiside ja hindamine. 1. osa käsitles grupi suurust, õppematerjale ja nende jagamist, ülesannete esitamist ja kursuse ülesehitust ning 2. osa tundide planeerimist, sisu ja läbiviimist.


Foto: Klearchos Kapoutsis
Reflekteerimine
Reflekteerimise olulisust õpiprotsessis rõhutatakse järjest enam. Olen lasknud õpilastel tsükli lõputöö ühe osana täita küsimustiku, mille eesmärk on, et nad mõtiskleksid oma tegevuse üle. Mina kasutan refleksiooniküsimuste esitamiseks ja vastamiseks elektroonilist vormi, mille puhul mulle meeldib see, et kõik vastused kogutakse kokku ühte faili. Keskkondasid on palju, mille hulgast valida. Mina kasutan Google Formsi.

Siin on valik küsimustest mida olen kasutanud:
  • Mis oli selles ülesandes kõige huvitavam?
  • Mis oli selles ülesandes kõige keerulisem?
  • Hinda kogu ülesande keerukust 10-punkti skaalal (1-väga lihtne, 10-väga keeruline).
  • Kuidas sulle see ülesanne üldiselt meeldis? Põhjenda oma vastust.
  • Kas sa kasutasid kirjalikku või videojuhendit? Põhjenda oma valikut.
  • Millised on juhendita programmeerimise plussid? Loetle need. (Näitasin õpilastele valmis mängu ja nad pidid selle põhjal ise samasuguse mängu programmeerima.)
  • Millised on juhendita programmeerimise miinused? Loetle need.
  • Kas sa pidid oma kavandit programmeerimise käigus muutma? Selgita.
  • Kirjelda koostööd oma paarilisega/rühmaliikmetega (Kes oli rühmas kõige abivalmiv? Kas keegi rühmas ei soovinud teisi aidata? Kuidas teil üldiselt koostöö sujus?)
  • Milline oli sinu panus rühma liikmena?
  • Kui vajasid abi, siis mida tegid? Selgita. (valikud: lugesin eelmiste tundide kirjalikke juhendeid; vaatasin videojuhendeid; vaatasin eelmistes tundides tehtud projekte; küsisin abi klassikaaslastelt; küsisin abi õpetajalt; otsisin lahendust internetist; muu)
  • Mida sa selle projekti tegemise käigus õppisid?
  • Kui peaksid samasuguse projekti uuesti tegema, siis mida teeksid teisiti?
Õpilaste vastused annavad väärtuslikku tagasisidet ka õpetajale/juhendajale.

Tagasiside ja hindamine
Hindamise teemaga seoses on kaks peamist küsimust:
  1. Mida hinnata?
  2. Kuidas hinnata?
Mida hinnata?
Mina hindan peamiselt tsükli lõpus valmivat projekti (ehk n-ö lõputööd). Juhendite abil koostatud programme ja iseseisvaid ülesandeid, mis eelnevad lõputööle, enamasti ma ei hinda, kuid vaatan need üle jooksvalt tunnis (ja kui tunnis ei jõua, siis peale tundi). Selle alusel otsustan, kas teemast on aru saadud. Nii kokkuvõtvate tööde kui ka tunnitöö puhul peab meeles pidama, et mida pikem ja keerulisem on programm ning mida rohkem vabadust loov olla on õpilasele antud, seda rohkem ajaressurssi programmide läbivaatamine ja hindamine nõuab.

Kuidas hinnata?
Foto
Foto: Jurgen Appelo
Õpilaste programmide hindamine esitab paraja väljakutse, eriti kui hinnata numbriliselt. Ühelt poolt võib võtta väga lihtsa lähenemise: programm töötab, järelikult maksimumhinne; programm ei tööta, negatiivne hinne. Mina pean siiski oluliseks vaadata ka skripte, kas need on õigesti koostatud, sest ka töötava programmi puhul võib skriptides leida ebatäpsusi. Loovate ülesannete puhul (nt animatsiooni programmeerimine õpilase valitud teemal) on oluline jälgida, kas õpilane on kasutanud ülesande kirjelduses nõutud elemente (nt teated, kostüümi vahetamine, heli jne). Seetõttu ongi oluline need ülesandesse kirja panna, et hiljem oleks hindamine lihtsam ja kõigile osapooltele arusaadav.

Hindamise juures on oluline ka sõnaline tagasiside, et õpilane teaks, mis tal hästi on tehtud ja mis vajab parandamist. Mina tavaliselt kirjutan igale õpilasele mitmelauselise tagasiside, milles toon kõigepealt välja head küljed, seejärel vead-puudused ja lõpetan positiivse hinnanguga.

Hinnangu, või pigem tagasiside, andmine ei peaks olema ainult õpetaja töö. Ka õpilased võiksid üksteise töid (eelkõige tsüklite lõputöid) tagasisidestada. Soovitav on õpetaja poolt õpilastele ette anda abistavad küsimused, nt Mis sulle selle programmi juures kõige rohkem meeldib? Kas sina oleksid midagi teistmoodi teinud? Kas skriptid on õigesti koostatud? Lisaväärtus üksteise tööde hindamise juures on, et õpilased näevad, mida kaasõpilased on teinud ning kui õpilane teab, et tema programm jõuab suurema hulga kasutajateni, paneb see rohkem pingutama.

Võib teha ka nii (ja mina teengi), et kui projektid on läbi vaadatud ning õpetaja ja õpilased on tagasiside andnud, annad õpilastele võimaluse oma programmi täiendada ja/või vigu parandada ning alles siis paned hinde. Ühelt poolt aitab selline lähemine vähendada tõenäosust, et järgmistes tundides õpilane samu vigu kordab. Teiselt poolt kuulub vigade parandamine programmeerimise juurde ja seda võiks ka õppetöös silmas pidada.

Kuidas siis ikkagi hinnata numbriliselt?
Olen kasutanud kahte lähenemist ning mõlemal on oma head ja vead. Oluline on seejuures teada, et olen niimoodi hinnanud loovülesanded, mille juhendis õpilastele on ette antud, milliseid elemente nad kindlasti kasutama peavad.

Esimene võimalus on see, et iga täidetud kriteeriumi eest saab õpilane teatud arvu punkte. Näiteks: õpilase joonistatud sprait - 1 punkt; mängus on 3 taset - 2 punkti; õpilane on olnud loov - 3 punkti jne. Seejärel liidad punktid kokku ja arvutad vastavalt koolis kehtivale hindamiskorrale protsendid, mille põhjal saab panna hinde. Miinuseks on see, et selline hindamine võtab palju aega ja peab hästi läbi mõtlema, kuidas punkte jagad. Näiteks mis saab siis, kui mängul on 2 taset nõutud 3 taseme asemel? Samuti on väga keeruline ette näha, milliseid vigu õpilased teevad ning vigade eest peaks lõppsummast ju punkte maha minema. Sel põhjusel on teine lähenemine parem. See võtab ka vähem aega. Nimelt paned paika töö eest saadavad maksimumpunktid. Suurema töö puhul on mõistlik valida 100 punkti. Õpilaste töid hinnates vaatad, kas töö vastab nõuetele. Kui on midagi puudu või kui skriptis on viga, võtad punkte kogusummast maha. Muidugi pead eelnevalt paika panema, palju punkte õpilane ühe puuduse eest kaotab. Teenitud punktisumma määrabki õpilase hinde.

Olen näinud ka hindamismaatrikseid, mille alusel programme hinnatakase. Maatriksi kasutamine on vajalik siis, kui õpilane peab koostama programmi, mis teeb teatud kindlat asja (näiteks arvutab kehamassiindeksi ja teavitab kasutajat, kas ta on alakaaluline, normkaalus või ülekaalus). Kuna õpilane peab ise välja mõtlema, kuidas programm koostada ja õigeid lahendusi on rohkem kui üks, siis ei saa seda samamoodi hinnata kui (loov)ülesannet, mis peab vastama teatud kriteeriumitele. Samas on maatrikski koostamine keeruline töö, sest seal peab palju aspekte läbi mõtlema ja sõnastus on väga oluline. Kuid kui hea maatriks on olemas, sujub hindamine üldjuhul ladusalt.

Kokkuvõtteks
Õpetajad on erinevad, õpilased on erinevad ning erinevatele inimestele sobivad erinevad lähenemised. Kogemuste vahetamine on hea viis saada uusi ideid ja mõtteid, mida ehk oma tundideski kasutada - just selle eesmärgiga ma oma senised Scratchiga programmeerimise õpetamise kogemused kirja paningi. Lähtusin paljuski nendest küsimustest ja probleemidest, millega mina olen tunde planeerides ja läbi viies kokku puutunud ja lahendusi otsinud. Ja kuigi fookuses oli Scratch, siis mitmeid ideid, mõtteid ja soovitusi saab kasutada teistegi programmeerimiskeelte õpetamisel.

Loe lisaks
Hendrikson, S. Huviringi juhendamise põhimõtted ja läbiviimise metoodika.