28. märts 2017

Programmeerimise õpetamisest põhikoolis. 2. osa

Tänane postitus on teine osa postituste sarjast, milles kirjutan oma kogemuste põhjal programmeerimise õpetamisest põhikoolis (Scratchi näitel). Kui esimeses osas kirjutasin grupi suurusest, õppematerjalidest ja nende jagamisest, ülesannete esitamisest ning kursuse ülesehitusest, siis teises osas on teemadeks tundide planeerimine, sisu ja läbiviimine.

Mida tundide planeerimisel silmas pidada?
Kuigi õppematerjalide abiga toimetades peaksid õpilased ülesannetega iseseisvalt hakkama saama, on siiski oluline, et õpetaja on ülesande ise eelnevalt läbi teinud (soovitatavalt sama juhendi järgi). Nii oled tuttav vähemalt mõnede probleemide või küsimustega, mis õpilastel tunnis tekkida võivad. Samuti valmib sel viisil programm, mida saab tunni alguses kasutada demonstreerimaks õpilastele, milline projekt neil tunnis valmib.

Rääkides lähemalt õppematerjali keerukusest, siis tekib küsimus, kui rasked peaksid õpilastele antavad ülesanded olema. Tean, et scratchime.weebly.com materjalide abil õpivad õpilased alates 4. klassist. Õpilased on erinevad, nende võimed ja huvi teema vastu erineb, kuid minu kogemus on, et vahel on õpilased võimelised palju enamaks, kui mina täiskasvanuna arvasin. Seega ma aeg-ajalt (vastavalt õpilaste toimetulemisele ülesannetega) kombin ja nihutan piire, andes õpilastele kas raskemaid ülesandeid või sellise juhendmaterjali, mis on peamiselt tekstiline (st juhendid on üldsõnalisemad ja puuduvad ekraanipildid koostatavatest skriptidest).
Foto: Denise Krebs

Olenemata õppematerjali raskusest, on suure tõenäosusega ühes rühmas koos erineva suutlikusega õpilased. On neid, kes saavad tunnitöö kiiremini valmis ja neid, kes vajavad ülesande tegemiseks rohkem aega ja juhendamist. Ja võib olla neidki, kes on mõni tund puudunud ja on sel põhjusel teistest maha jäänud. Selleks et kiirematel tegevust oleks ja et keegi liiga palju teistest maha ei jääks, olen kasutanud järgmisi võtteid:
  • Iga iseseisva töö juhendi lõpus on teemaga seotud lisaülesanded projekti edasiarendamiseks. Need lisaülesanded on mõeldud just kiirematele õpilastele.
  • Suunan tublimad õpilased nõrgemaid juhendama.
  • Võtan aeg-ajalt aeg maha ehk teen tunni, milles mahajääjad saavad oma ülesanded ära lõpetada ja teised teevad midagi muud. (Näiteks mängivad programmeerivat mõtlemist arendavaid mänge. Olen mitmeid mänge tutvustanud ka oma blogipostitustes. Vaata siia.)
Mis puutub tegevustesse tunnis, siis pean oluliseks ka ülesannete mitmekesisust. Ma ei usu, et on arukas kõik tunnid üles ehitada mängude loomisele, vaid õpilased peaksid koostama erinevaid programme nt animatsioon, joonistamine, helide programmeerimine, mälumäng jne.

Kuigi ülesannete mitmekesisus peaks õpilaste huvi üleval hoidma, võib siiski tunnist tundi ainult programmide koostamine veidi ebahuvitavaks muutuda. Seetõttu peaks aeg-ajalt midagi muud tegema. Siin on mõned ideed:
  • Programmide silumine ehk programmis vigade otsimine ja parandamine. See mitte ainult ei aita tundidesse veidi vaheldust tuua, vaid on programmeerimise juures äärmiselt vajalik oskus. Oluline on õpilaste suunamine ja koos arutamine, kus viga võiks olla ja kuidas seda parandada. Võib kasutada õpilaste enda projekte.
  • Mida see skript teeb? Tee skriptidest kuvatõmmised. Õpilaste ülesanne on üksi või paaris välja mõelda, mida iga skript teeb. Võib ka koos arutada. Seda võib teha nii pliiats-paber tunnina, kui skriptid õpilastele välja printida, aga võib ka arvutis (kuid mitte Scratchis).
  • Kui õpilased on ise mängu või viktoriini programmeerinud, siis kogu need kokku (näiteks padletisse) ja lase õpilastel üksteise mänge mängida ja viktoriiniküsimustele vastata. Soovitav on anda programmi loojale tagasisidet.
  • Vaheldust pakub ka teooriaosa. Näiteks kui teemaks on geomeetriliste kujundite joonistamine, siis korrake üle palju on kolmnurga nurkade summa, mitu kraadi on täisring, mida tähendab võrdkülgne kolmnurk jne.
  • Kui aega on rohkem, lase õpilastel koostada referaat, ettekanne vms programmeerimise või arvutitega seotud teema kohta (nt isesõitvad autod, millest koosneb arvuti).
  • Kahoot! Kuna programmeerimine on seotud matemaatikaga, siis olen otsinud ja kasutanud Nuputa! ja peast arvutamise ülesandeid. 5. klassiga näiteks sedasedaseda ja seda.
  • Mängige programmeerivat mõtlemist arendavad mänge (valik mänge siin).
  • Programmeerige ilma arvutita. Ideid leiab internetist.

Mida tundide läbiviimisel silmas pidada?
Leppige esimesel kokkusaamisel kokku reeglid. Siin on mõned, mida mina kasutan:
  1. Arvutiklassis kõva häälega ei räägi ja kõrvaliste tegevustega ei tegele.
  2. Õpetajalt abi saamiseks tõstan käe.
  3. Enne kui pöördun õpetaja poole abi saamiseks, proovin ise lahendust leida.
  4. Võin küsida abi teiselt õpilaselt ning aitan teist õpilast, kui tema minult abi palub.
  5. Ühe õpilase hiirt ja klaviatuuri keegi teine ei puutu. Juhendamine toimub suusasõnaliselt juhiseid jagades.
5. punkti ei tohi ka õpetaja ise ära unustada. Ise tehes saab küll palju kiiremini kui suusõnaliselt juhendades, aga nii ei õpi õpilane ning järgmine kord võib ta sama asjaga hädas olla.

Tunni alguses tutvusta õpilastele eesseisva tunni tööd ja juhul kui tegemist pole loovülesandega, demonstreeri neile, milline projekt neil juhendmaterjali järgi programmeerides valmib. Niimoodi tekib õpilastel parem ettekujutus, mida nende programm tegema peab.

Projektitööde puhul pean oluliseks, et õpilased mõtlevad enne programmeerima asumist läbi, kuidas nad programmi koostavad. Seetõttu lasen neil kas kavandi teha (nt oma nimetähtede kirjutamise programmi koostamise eel joonistavad nad vihikusse tähed ja spraidi liikumise koos kasutatavate klahvidega) või arutada paaris läbi programmi kohta käivad küsimused (nt Kuidas peatad mängu, kui tegelase elud otsa saavad?). Enne kavandi tegemist näita õpilastele kavandi näidet, et neil sinu ootustest parem arusaam tekiks.

Tutvusta õpilastele, mida antud töö puhul hinnatakse. Minul on ka projektitöö kirjelduses üles loetletud nõuded, millele projekt peab vastama. Nõuded on seotud tsükli jooksul õpitud oskustega.

Järgmine nädal lõpetan postituste sarja refleksiooni, tagasisidestamise ja hindamise teemadega.