21. märts 2017

Programmeerimise õpetamisest põhikoolis. 1. osa

Mõni kuu tagasi kirjutasin siin programmeerimise õppimisest ja miks see on tore ja kasulik.

Foto: ScratchEd Team
Selles kolmeosalises postituste sarjas kirjutan Scratchil abil programmeerimise õpetamisest koolitunnis ja huviringis. Inspiratsiooni selleks sain Õpetajate Lehe nädalakommentaarist, kus kutsuti õpetajaid üles oma kogemustest raamatut kirjutama. Raamatu asemel on blogipostitused, aga eesmärk on sama - jagada oma kogemusi ja tähelepanekuid. Arvan, et see on oluline, sest püüdes otsida raamatuid, artikleid, blogipostitusi jt materjale selle kohta, kuidas õpetada programmeerimist (koolitunnis), siis teemakohast materjali on vähe. Ju on põhjus selles, et programmeerimise õpetamine on üldhariduskoolidesse jõudnud alles viimastel aastatel. Siiski toon viimases osas ära mõned allikad, mida võib soovi korral lisaks lugeda.


Kuna teema on pikk, siis avaldan need kolmes osas:
  1. osas ehk täna kirjutan veidi enda taustast ja seejärel punktidest, mis tuleb läbi mõelda juba enne tundide sisu juurde asumist.
  2. osas tuleb juttu tundide planeerimisest, sisust ja läbiviimisest ning 
  3. osa teemad on tagasisidestamise ja hindamine.
Taust
Jagan oma kogemust programmeerimise õpetamisest Scratchi abil 11-14-aastastele õpilastele. Mõnedel neist on varasem programmeerimiskogemus nt Logo, code.org, Code HS ja KoduGame Labiga, teistel jällegi varasem kogemus puudub.

Tundide sisu ettevalmistamisel olen mõtteid ja ideid saanud eestikeelsetest õppematerjalidest (ülevaate nendest leiad siit), inglisekeelsetest Youtube'i videotest, lastele suunatud programmeerimise õpikutest ja raamatutest, mida olen ka oma blogis tutvustanud siin, siin ja siin, ning enda õpingutest. Samuti on olulisel kohal kogemuste vahetamine kolleegidega. Olen muidugi osalenud õpetajatele suunatud koolitustel, kuid need on olnud pigem julgustavad ja motiveerivad mitte niivõrd metoodikale keskenduvad.

Rühma suurus
Foto: Susana Fernandez
Minu suurim rühm on olnud 18 õpilast. Vanemate ja iseseisvamate õpilastega saab ka nii paljudega hakkama, kuid optimaalne õpilaste arv on 12-14. Sellise arvu puhul jõuab igat õpilast individuaalselt juhendada, kui nad mõne probleemi lahendamisega hätta jäävad, kuid samas on neid piisavalt palju, et vajadusel üksteist aidata.

Õppematerjalid
Tundides kasutan nii Gustaf Adolfi Gümnaasiumi kui ka Tartu Ülikooli arvutiteaduse instituudi poolt koostatud videosid ja töölehti, kuid samuti endakoostatud juhendeid ja ülesandeid.

Õppematerjalide jagamine ja tööde esitamine
Programmeerimise õpetamine ei toimu paberõpiku ja -töövihikuga, vaid suuremas osas kasutatakse digitaalseid õppematerjale ning programmid koostatakse arvutis. Seega kaks olulist küsimust, mis tuleb juba aegsasti enne tundide toimumist läbi mõelda, on
  1. Kuidas jagan õppematerjale õpilastega?
  2. Kuidas õpilased esitavad oma programmid õpetajale ülevaatamiseks/hindamiseks?
Nagu eespool mainitud, on kasutusel digitaalsed õppematerjalid. Seega tuleb välja valida keskkond õppematerjalide õpilastele kättesaadavaks tegemiseks. Veel parem on, kui see keskkond võimaldab õpilastel oma ülesandeid esitada ja õpetajal (ja õpilastel) neid hinnata ilma kellegi privaatsust rikkumata. Toon siin välja mõned keskkonnad.
  1. Moodle. Õpihaldussüsteem, mida kasutatakse laialdaselt ülikoolides ja osaliselt gümnaasiumides. Sobib nii õppematerjalide jagamiseks kui ka tööde esitamiseks ja hindamiseks. Põhikooliõpilaste jaoks võib keskkond olla ülemäära keeruline.
  2. Google Sites, kus õpetaja loob veebilehega sarnase ülesehitusega õpikeskkonna ja määrab, kellel on keskkonnale ligipääs. Kasutajad saavad ise sisu luua ja kirjutada kommentaare. Sobib õppematerjalide jagamiseks ja vajadusel ka esitamiseks (nt kommentaariumis). Sel juhul pead pooldama seda, et õpilased saavad üksteise projekte näha ja õpetaja kommentaare lugeda. Eeldab Google'i konto olemasolu õpilastel ja õpetajal. Muidugi võib iga õpilane ise oma Google Sites'i lehe luua, kus esitab oma tööd, kuid õpilaste veebilehtede pidev jälgimine võib olla õpetajale üsna koormav.
  3. Blogid (wordspress, blogger). Saab kasutada sarnaselt Google Sites'iga. Kui iga õpilane teeb oma blogi, kuhu postitab oma ülesanded, siis on mõistlik nende järgimiseks kasutada EduFeedr rakendust, et õpetaja ei peaks blogisid pidevalt ühe kaupa kontrollima. Selle rakenduse abil on näha, millistel õpilastel on blogipostitus avaldatud ehk ülesanne esitatud ja millistel mitte. Peab jälgima, et avalikud blogid ei rikuks õpilaste privaatsust.
  4. Google Classroom. Google'i poolt pakutav lihtne õpikeskkond. Õppematerjale saab postitada üks tund korraga, õpilased saavad tehtud ülesandeid keskkonnas lingi kaudu esitada ja õpetajana näed, kellel on töö juba esitatud. Eeldab, et kool kasutab Google Educationit / G Suite'i ja kõigil õpilastel on olemas konto. Kui oled päris õpihaldussüsteeme kasutanud, siis võib Classroom tunduda liiga väheste võimalustega. Mõnda võib häirida Facebooki stiilis postituste kuvamine.
  5. Weebly. Sobib materjalide jagamiseks, seda enam, et võrdlemisi lühikese aja ja väheste oskustega saab ilusa veebilehe teha. Puuduseks see, et õpilased ei saa oma projekte seal esitada.
Kursuse ülesehitus
Minu põhimõtted (programmeerimise) õpetamisel on olnud järgmised:
  • kõige paremini õpib läbi isetegemise, iseproovimise, ise lahenduste väljatöötamise;
  • uue teema omandamine peab toimuma samm-sammult, kus juhendmaterjali osakaal järjest väheneb ja õpilase enda panus järjest suureneb;
  • selles vanuses õpilaste puhul on põhirõhk praktilisel väljundil mitte teooria õpetamisel;
  • eesmärk on arendada algoritmilist mõtlemist, probleemide lahendamise oskust, matemaatilisi võimeid ja loovust.
Õppematerjalid olen GAGi õppematerjalide näitel jaganud teemade kaupa tsükliteks. Üks tsükkel koosneb neljast kuni kuuest tunnist ja lõpeb ühe suurema projektitööga. Üks tund (enamasti 45 min) koosneb kahest osast: juhendmaterjali abil (video või tööleht) tehtud ülesandest, kus on samm-sammult näidatud, kuidas programmi koostada ning eelnevale sarnasest iseseisvast tööst, kus on ülesande kirjeldus, mille põhjal õpilane koostab programmi ise. Neid ülesandeid teevad õpilased iseseisvalt ning mina sekkun vaid siis, kui õpilane ise probleemi lahendada ei oska. Iga tsükkel lõpeb projektiga, milleks kulub kolm kuni kuus koolitundi. Projekti eesmärk on kinnistada ja lihvida tsükli jooksul õpitud oskuseid. Projekte on nii individuaalseid kui ka paaris- ja rühmatööna tehtavaid.