Kuvatud on postitused sildiga õpetamine. Kuva kõik postitused
Kuvatud on postitused sildiga õpetamine. Kuva kõik postitused

10. mai 2021

Mängustamine arvutitunnis: põgenemistuba (videoõpetus)

Mängustamine

Vahel tekib õpetades tahtmine midagi harjumuspärasest teistmoodi teha, et nii endal kui õpilastel oleks huvitavam. Üks võimalus selleks on mängustamine (gamification). Mängustamine on see, kui õpetamisel kasutatakse mängu elemente, et seeläbi õppijat motiveerida. Lihtsaimad mängustamise võimalused õppetöös on punktide kogumine ja edetabel (nt Quizizz ja Kahoot kasutavad nimetatud elemente).

Põgenemistuba õpetamisel

Kooliaasta alguses tuli mul mõte kasutada õppetöös põgenemistoa ideed. Põgenemistoa kontseptsioon on ju iseenesest lihtne: grupp inimesi on ruumis luku taga ja et sealt välja saada tuleb lahendada erinevat laadi ülesandeid. Üks lahendus viib teiseni, see omakorda järgmiseni jne kuni õnnestub lukustatud uks avada ja ruumist välja pääseda. Ülesannete lahendamiseks antakse üks tund. Põgenemistoa juurde kuulub väljamõeldud taustalugu (nt zombi apokalüpsis, printsessi päästmine), mis lisab omakorda tegevusele põnevust ja mängulisust.

Kuna põgenemistoa idee koolitunnis rakendamine tundus liiga töömahukas ja keeruline, siis loobusin sügisel sellest mõttest. Kuid hiljuti avastasin, et mõne lihtsa vahendi abil on võimalik luua virtuaalne põgenemistuba, mida saab edukalt õppetöös rakendada ja seda nii distants- kui ka lähiõppes. Niisiis otsustasin kooliaasta lõpus õpilaste peal selle lahenduse järele proovida. Virtuaalne põgenemistuba sobib hästi igas õppeaines kasutamiseks, sh arvutitunnis. Viimases võivad õpilased õpetaja koostatud põgenemistoast välja murda üritada või rühmatööna ise virtuaalse põgenemistoa idee ja ülesanded välja mõelda ja arvutis need ellu viia ning seejärel üksteise põgenemistubasid lahendada. 

Põgenemistoa loomine

Järgnevas videos selgitan, kuidas selliste lihtsate ja õppetöös üsna levinud vahendite abil nagu Google Forms ja Learning Apps luua põgenemistuba. Videos olev näide on loodud gümnaasiumi programmeerimise tunnis kasutamiseks. Sellise põgenemistoa puhul on tegu mängustamisega, sest kuigi õpilased lahendavad tavalisi ülesandeid, on õppimisprotsessi lisatud mängulisi elemente.


Jälgi KristiProget ka Facebookis.

30. oktoober 2020

Paarisprogrammeerimine koolitunnis - Mis? Miks? Kuidas?



Mul avanes hiljuti võimalus teha õpilastele umbes neljatunnine programmeerimise õpituba. Õpilased olid vanuses 11-14 eluaastat ja algajad. Programmeerisime Scratchi-laadses keskkonnas, kus programmid pannakse kokku plokkidest. Kasutasin selles õpitoas muude meetodite seas ka paarisprogrammeerimist. Kuigi selle meetodiga olen tuttav juba pikemat aega, siis rakendanud olin seda harva, sest 45-minutilises koolitunnis ei andnud see soovitud tulemust. Õpitoas aga tekib palju mõnusam õhustik ja see oli koht, kus avastasin paarisprogrammeerimise võlu. See töötas just nii, nagu ma ootasin ja andis soovitud tulemuse. Nüüd olen valmis andma paariprogrammeerimisele teise võimaluse ka koolitunnis.

Selles postituses kirjutan paarisprogrammeerimisest ja miks seda üldse programmeerimise õpetamisel kasutama peaks.

Mis on paarisprogrammeerimine?

Paarisprogrammeerimine on tarkvaraarenduses agiilne meetod, kus kaks programmeerijat teevad koostööd programmi loomisel. Üks paarilisest kirjutab koodi ning sel ajal teine paariline vaatab läbi iga sisestatud koodirea. Antud programmeerimistehnika juures on tavapärane, et paarilised vahetavad tihti omavahel rolle. allikas

Läbivaataja rollis oleval paarilisel on strateegiline roll programmi valmimisel, tema ülesandeks on märgata võimalikke veakohti programmis, suunata tegevust ning soovitada ideid. Läbivaataja eesmärgiks on abistada või lihtsustada koodikirjutaja rollis oleva inimese tööd võimalikult palju, et tagada töö efektiivsus. Programmeerija peaks saama keskenduda vaid koodi kirjutamisele, kasutades läbivaatajat kontrollijana ja nõuandjana. allikas

Mulle endale meeldib paarisprogrammeerimist klassis võrrelda rallisõiduga: üks õpilastest on autojuht ja teine on kaardilugeja. Juht on see, kes kasutab hiirt ja klaviatuuri, et programm arvutis valmis kirjutada või plokkidest kokku panna. Kaardilugeja on see, kes juhti juhendab; tal on ees tööjuhend, tööleht või sarnane programm, mille abil suuliste suunistega juhti juhendada. Kaardilugejal ei ole luba autojuhi hiirt ja klaviatuuri kasutada, samamoodi nagu Järveoja ei haara Tänakult rooli, sest sel juhul sõidaks ralliauto kraavi.

Oluline on see, et iga teatud aja tagant (nt 5 minutit) õpilased rolle vahetaksid. Nii toimib see asi ka päris tarkvara arendajate puhul, kuigi nende vahetuste intervall on pikem.

Paarisprogrammeerimise edukuse aluseks on mõlema paarilise oskus oma mõtteid suuliselt väljendada, nagu ka hea suhtlemisoskus laiemalt. 

Paarisprogrammeerimisest saadav kasu

  • Paaris töötavad õpilased saavad üksteiselt õppida.
  • Lahenduse saab paarilisega läbi arutada ning tulemuseni võib seetõttu jõuda kiiremini.
  • Vigu märgatakse varem, sest koodi jälgib ühe inimese asemel kaks.
  • Parem tulemus ehk kood, sest kaks pead on ikka kaks pead. 
  • Arenevad sotsiaalsed oskused ja eneseväljendusoskus - mõlemad on olulised oskused hilisemas (töö)elus.
  • Õpilased loodavad rohkem teineteise peale kui õpetaja abile - väheneb õpetaja koormus õpilaste abistamisel.

Klassiruumis paarisprogrammeerimise tõhusa rakendamise kasulikkus

  • Õpilased on tegevusse rohkem kaasatud ja nad naudivad ülesande lahendamist suremal määral - seda kinnitavad mitmed uuringud.
  • On samuti tõestatud, et paarisprogrammeerimine tõstab õpilase enesekindlust ja kasvatab õpilase huvi õppeaine vastu.
  • Vähendab õpilaste kognitiivset koormust, sest tänu rollide jaotamisele ei pea töömälus hoidma kõiki programmi koostamiseks vajalikke elemente, vaid ainult neid, mida on vaja oma rolli täitmiseks. Teisisõnu peab õpilane jagama oma tähelepanu väiksema hulga elementide vahel. allikas

Mida paarisprogrammeerimise puhul silmas pidada?

Paarisprogrammeerimine on oskus, mida tuleb õppida. Seega alguses vajavad õpilased juhendamist ja suunamist ja ka kiitust, selleks et sellest meetodist saaks õpilase jaoks harjumus. Samuti tuleb kasuks, kui paaristööd harjutada teiste õppeainete tundides, kus saab kasutada samasid paaristöö põhimõtteid kui programmeerimisel. allikas

Õpetaja peab läbi mõtlema, kuidas moodustatakse õpilastest paarid või mis on paaride moodustamise aluseks - suhted (sõbrad omavahel paaris), oskused (sarnaste oskustega töötavad koos) või midagi muud. Või kes üldse paarid otsustab - õpetaja või õpilased ise? allikas

Üks paarisprogrammeerimise hirme on see, et üks paariline teeb teise eest kogu töö ära. See võib juhtuda, kui paarid ei ole hästi moodustatud, kuid sarnaste oskustega õpilaste puhul seda tavaliselt ei juhtu. Võrdsele panustamisele aitab kaasa ka see, et õpilased vahetavad rolle. Hindamisel oleks mõistlik mitte arvestada ainult programmi ehk tulemust, vaid hinnata kogu protsessi. allikas

Leidub õpilasi, kes ei soovi kellegi teisega koos töötada. Kuigi õpetaja ülesandeks on teda suunata ja julgustada koostööle kaasõpilasega, siis lõpuks võib osutuda õigeks austada tema soovi ja lubada sel õpilasel üksi töötada. allikas

Paarisprogrammeerimist tutvustav video

Kui soovid õpilastele paarisprogrammeerimist tutvustada, siis sissejuhatuseks võib kasutada seda code.org videot (inglise keeles):

Jälgi KristiProget ka Facebookis.

21. juuli 2020

Kuidas teha ekraanisalvestusest õppevideo?

Kristi_Proge_Blog_tutorial
Foto Markus Winkler. Unsplash

Seoses distantsõppega kasvas vajadus õppevideote järele. Ekraanisalvestuse tarkvara kasutades salvestasin ja monteerisin neid oma programmeerimistundide jaoks minagi. Ühe videojuhendi tegemine võib võtta väga kaua aega, kuid mõnede nippide abil saab aega kokku hoida. Siinkohal võtangi kokku oma õppetunnid, mis puudutavad videojuhendite tegemist. Postituses ei keskendu ma videojuhendi tehnilistele aspektidele, vaid juhendi valmimise protsessile.

Mis on ekraanivideojuhend?

Ekraanivideojuhend on näita-ja-selgita tüüpi õppevideo, kus on näha ekraanil toimuv ja kuulda sinu hääl. Õppevideo eesmärk on õpetada vaatajat läbi ettenäitamise ja oma tegevuste selgitamise. Programmeerimise õpetamisel töötab õpilane sageli selle video järgi kaasa. Siin on üks minu tehtud ekraanivideojuhend.

Sellise juhendi tegemiseks vajad arvutit ja ekraanisalvestustarkvara.

Minu kogemus

Oma esimese ekraanivideojuhendi tegin 2012. aastal ja selleks oli SkyDrive'i kasutusjuhend. Mäletan, et salvestasin seda üha uuesti ja uuesti enne kui tulemusega rahule jäin. Küll ajasin sõnu sassi, küll oli mu räägitav tekst ebaloogiline, küll unustasin ära, mida ma järgmisena tegema (näitama) pidin jne. Seda vaatamata asjaolule, et enne salvestamist olin oma tegevused läbi katsetanud ja oma jutu läbi mõelnud, mis kõik samuti võttis omajagu aega. Niisiis kokku kulus tunde ja mitu päeva. Milline ajakulu!

Praegu suudan õppevideo valmis teha ühe õhtuga, 5-minutilise video umbes kolme tunniga. Seda mitte niivõrd kogemuse tõttu (2012. aasta ja distantsõppe perioodi vahel salvestasin vaid mõne üksiku õppevideo), vaid tänu ühele YouTube'i õppevideote autori jagatud nippidele.

Õppevideo tegemise protsess


1. Kavanda

Õppevideo tegemine algab planeerimisest. Sõnasta õppevideo eesmärk. Õppevideo keskmes on uue oskuse omandamine, kusjuures ei ole mõistlik ühes videos mitut erinevat oskust õpetada. Keskendu ühele konkreetsele teemale.

Kui õppevideo eesmärk on olemas, mõtle läbi, kuidas õpetatavat teemat õpilastele selgitad. Programmeerimise puhul kasutad ilmselt näidisprogrammi(de) loomist. Sinu eelis õpetajana on see, et sul on kindlas vanuses sihtgrupp, kelle eelnevad teadmised ja oskused on sulle hästi teada. Õppevideos ära kuluta aega juba õpitud teemade uuesti selgitamisele.

Kui sa seda teemat varem pole õpetanud, siis kuulub kavandamise etappi näidisprogrammi väljamõtlemine ja selle programmeerimine.

2. Kirjuta stsenaarium

videoõpetus_Kristi_Proge_Blog_stsenaarium
Enne salvestamist kirjuta stsenaarium. Foto Corinne Kutz. Unsplash

Stsenaariumi kirjutamine enne õppevideo salvestamist on kõige kasulikum nipp, mida olen õppinud. Kuigi stsenaariumi kirjapanemine võtab aega, siis pikas plaanis aitab see palju aega kokku hoida.

Mina kirjutan üles kogu oma räägitava jutu ja need tegevused ekraanil, mida ma üksasjalikult sõnadesse ei pane. Selline lähenemine tagab, et mul ei lähe ekraani salvestamise ajal midagi meelest ära ja et minu jutt ja tegevused õppevideos on soravad ja sujuvad. Samuti aitab see hiljem kokku hoida video monteerimisele kuluvat aega.

3. Harjuta

Kui olen stsenaariumi üles kirjutanud, siis etendan selle (korduvalt) läbi - tekst koos tegevustega - ja teen parandused. Oluline on jälgida seda, et õppevideo sisaldab ainult vajalikku informatsiooni, mis aitab kaasa teema omandamisele. Samuti jälgin, et minu selgitused on selged, konkreetsed ja üheselt mõistetavad. Kasutatav sõnavara peab olema korrektne, samas lausete sõnastus lihtne.

Läbimängu käigus selgub seegi, kas salvestan ühe õppevideo või jagan selle väiksemateks (lühemateks) osadeks. Õppevideo ei tohi olla liiga lühike (alla 2 minuti) ega liiga pikk (üle 10 minuti). Ideaalne pikkus jääb minu hinnangul sinna 3-5 minuti juurde.

4. Salvesta ekraanivideo

Nüüd on kõik vajalik eeltöö õppevideo salvestamiseks tehtud. Võinoh peaaegu. Ekraanivideo salvestamiseks vajad veel müravaba ruumi, kus sind ei segata, ja ekraanisalvestustarkvara. Mina võtan kasutusele ka lisaekraani õppevideo stsenaariumi kuvamiseks.

Ekraani salvestamiseks on olemas nii tasuta kui ka tasulist tarkvara. Tasuta programmidest olen proovinud Screencast-o-maticut ja tasulistest Screencastify'd. Kuigi ma selles postituses ei süvene tehnilistesse aspektidesse, on oluline mainida, et Screencast-o-maticu tasuta versioon ei salvesta arvutist väljuvat heli.

Salvestamisel tuleb kindlasti ette eksimusi. Kui see juhtub, siis peatu ja salvesta valesti läinud osa kohe uuesti. Montaaži etapis lõikad vigase koha lihtsalt välja. Kõike uuesti otsast peale salvestada ei ole otstarbekas. Samuti pole mõistlik vussi läinud osa hiljem uuesti salvestada, sest mitme video kokkumonteerimine on tülikas.

Niisiis on salvestamise etapi tulemuseks üks pikk ekraanisalvestusvideo koos vigadega.

5. Monteeri

videoõpetus_Kristi_Proge_Blog_videotöötlus
Videotöötlus on üks osa õppevideo valmimise protsessist. Foto Jakob Owens. Unsplash

Monteerimine on üldjuhul kõige aeganõudvam osa video tegemise protsessist, kuid kui järgida samme 1-4, ei pruugi see üleliia palju aega võtta. Muidugi palju oleneb sellest, kui perfektset lõpptulemust soovid saada. Välja tuleb lõigata vead, sassi läinud kohad, pikad pausid, soovi korral pausi täitvad häälitsused (ee... ää..) ning kui kannatust jätkub, siis ka lühemad pausid ja parasiitsõnad. Soovitav on lisada algustiitrid.

Mõnedes ekraanisalvestusprogrammides on video monteerimise võimalus juba olemas, aga enamasti on spetsiaalsed video kokkulõikamise programmid kasutajasõbralikumad ja rohkemate võimalustega.

6. Tee õppevideo õpilastele kättesaadavaks

Valmis õppevideo tuleb salvestada ja eksportida. Tavaliselt saab eksportida otse YouTube'i, mille kaudu on mugav õppevideot õpilastele vaatamiseks jagada. YouTube'i puhul tuleb silmas pidada, et video laetakse YouTube Studio keskkonda, mis on spetsiaalselt oma videote jagamiseks mõeldud. Selles keskkonnas saab muuta video pealkirja, nähtavust, lisada kirjeldust jne.

Kui salvestasid video arvutisse ja soovid seda nüüd YouTube'i üles laadida, pead samuti kasutama YouTube Studiot.

Kui kõik see on tehtud, siis jääbki viimane samm, milleks on õppevideo jagamine õpilastega. Seda on kõige mugavam teha lingi kaudu, mille lisad eKooli, Studiumisse või õpihalduskeskkonda (nt Google Classroom, Moodle), mida õpilastega kasutate.


Jälgi KristiProget ka Facebookis.

18. juuni 2020

Programmeerimise õpetamisest distantsõppes

distantsõpe_programmeerimine_scratch_Kristi_Proge_Blog

Distantsõpe on olnud selle kevade üks hariduse märksõnu. Kuigi kooliaasta on läbi ja õpilased juba suvevaheajal, otsustasin siiski oma kogemusest ja õppetundidest kirjutada. Pole ju kindel, et uuel õppeaastal see kõik ei kordu (isegi kui on kuulda olnud, et teise laine ajal enam sama äärmuslikke meetmeid tarvitusele ei võeta). 

Jagan oma Scratchi õpetamisel saadud kogemust ja õppetunde.

Distantsõppe algus

Algus tekitas palju segadust - Kas on tegemist ajutise olukorraga või pikema perioodiga? Kuidas saavutada distantsilt õpetades õpitulemused? Kuidas üldse õpetada õpilastega mitte samas ruumis viibides? Kui selgus, et kooli naasmine sel õppeaastal on vähetõenäoline, tuli paika panna pikem tegevusplaan ja välja mõelda, kuidas distantsilt õpilasi tõhusalt juhendada.

Sel aastal andsin programmeerimise tunde 5. klassile, kellega tegutseme Scratchis. Tegelikult olin õnnega koos, et just Scratchi, sest see on veebipõhine keskkond ja õpilasel läheb vaja vaid arvutit (häda pärast saab isegi telefonis scratchida). Mõne teise haridusliku programmeerimiskeele (nt Sonic Pi) või robootika õpetajana oleksin olnud palju keerulisemas olukorras. Ühesõnaga kõik arvutiõpetuse õpetajad, kes kasutasid veebis olevaid keskkondasid, omasid distantsõppes eelist, sest üleminek veebipõhisele õppele oli valutum.

Distantsõppest sai norm

Minu tegevusplaan distantsilt õpetamisel sisaldas kolme põhikomponenti: veebitunde, videojuhendeid ja õpihaldussüsteemi. Lisaks palju kirjalikku tagasisidestamist ja süstemaatilist jälgimist, et õpilastel oleks ülesanne (õigesti) tehtud.

Õpihaldussüsteem
Õpihaldussüsteem* (minu puhul Google Classroom) on mugav n-ö kõik ühes lahendus, sest sul on üks keskkond õppematerjalide jagamiseks, õpilastel tööde esitamiseks ning sinul omakorda nende tagasisidestamiseks ja hindamiseks. Kõik need võimalused tulid distantsõppes kasuks ja aitasid kaasa sujuvale üleminekule kontaktõppelt distantsõppele.

*õpihaldussüsteemi puudumise korral saab kasutada ka teisi lahendusi, nt Padlet, kuid mugavuse ja võimaluste poolest ei ole need päris võrdsed; ka scratch.mit.edu lehel saab õpetaja luua oma õpilastest kogukonna või klassi, kuid mina pole seda võimalust kasutanud

Videojuhendid
Selle blogi pikemajalised lugejad teavad, et olen videojuhendite programmeerimise õpetamiseks kasutamise osas ettevaatlik, sest õpilane on nende järgi tegutsedes pigem passiivne jäljendaja kui aktiivne kaasamõtleja. Siiski on läbi arvutiekraani õpetades videojuhendite kasutamine vajalik ja põhjendatud, sest iga õpilane saab edasi liikuda talle sobivas tempos ning ta saab tagasi kerida ja vajadusel mõnda kohta korduvalt vaadata.

Videojuhendid tegin ise (alguses võttis see palju aega, kuid kogemuse lisandudes juba vähem) ja jagasin õpilastega õpihaldussüsteemis.

Veebitunnid
Võib tekkida küsimus, et milleks veel veebitunnid, kui õpilastel olid kasutada videojuhendid ja õpihaldussüsteem? Vastus on lihtne - õpilasel tekib ikka küsimusi ja probleeme, millele ta ise ei oska vastata ega lahendust leida. Niisiis saime oma programmeerimistundide ajal (aluseks tunniplaan) kokku videosilla vahendusel ja olin seeläbi õpilaste jaoks olemas. Eriti olulised olid veebitunnid siis, kui õpilased tegid oma projekti ehk standardlahendusi polnud, vaid iga küsimus ja probleem oli spetsiifiline.

Õpilaste juhendamine distantsilt

Nüüd jõuan selle punktini, miks ma olin tänulik selle eest, et programmeerisime veebikeskkonnas. Nimelt lisas iga õpilane oma Scratchi projekti õpihaldussüsteemi kohe alguses, st enne kui ta hakkas koodi looma. Kui tal oli mõni probleem, siis sain Google Classroomis tema töö avada ja vaadata, kus viga on ning seejärel suuliselt või ekraanijagamise teel teda juhendada. Ja see lahendus töötas suurepäraselt.

Kõik õpilased siiski ei oska või ei julge tunni ajal abi küsida, mis tähendas, et vaatasin õpilaste programmid peale igat tundi läbi ja kirjutasin tagasiside, mida on vaja parandada või mis on juba väga hästi tehtud.

Minu hinnang programmeerimise õpetamisele distantsilt

Kuna programmeerimine ei ole ainuke õppeaine, mida õpetan, siis tean, et distantsilt õpetamine kõigi õppeainete jaoks ei sobi, kuid kui teatud tingimused on täidetud - minul olid - siis programmeerimist saab veebipõhiselt õpetada küll. Mulle väga meeldis see, et ei pidanud mööda klassi ühe õpilase juurest teise juurde jooksma, vaid sain kogu protsessi juhtida ja jälgida oma arvutist - õpilased said oma küsimustele vastused kiiremini ja abi oli tänu ekraanijagamise võimalusele efektiivsem. See on midagi, mida proovin sügisel rakendada ka kontakttundides, kuigi on mõned aspektid, mille pean enne läbi mõtlema. Igatahes Scratchis programmeerimise õpetamine distantsilt oli minu jaoks positiivne kogemus.

Jälgi KristiProget ka Facebookis.

4. märts 2020

Seadmeta programmeerimine: tingimuslause värvikaartide abil

Inspireerituna sellest seadmeta programmeerimise tunnist, viisin läbi tunni, kus mängukaartide asemel kasutatasin värvikaarte. Neid tegevusi ma järgnevalt tutvustangi.

seadmeta_värvikaardid_KristiProgeBlog
Foto: Old Youth (Unsplash)

Seadmeta tunni tutvustus


Ülesanne on lihtne. Õpilastele näidatakse programmi, mis ütleb, mida nad tegema peavad. Seejärel näitab õpetaja ükshaaval värvikaarte ja õpilased käituvad vastavalt programmile. Tunni teises pooles koostavad õpilased ise programmi ja programmeerivad selle abil üksteist.

Mina olen lisaks näidisprogrammidele tingimuslause tööd selgitanud skeemide abil. Selles postituses olevad skeemid on pärit siit.

Vaja läheb:
  • värvikaartide komplekti, kus on punased, kollased, rohelised ja valged ning soovi korral veel teist värvi kaardid;
  • slaide programmidega;
  • A3 paberit õpilastele koodi kirjutamiseks.

Märkus. Mina sain hakkama ühe komplekti värvikaartidega, mida kasutasid samuti õpilased oma programmi testimiseks. 




Tunni tegevused värvikaartidega


Tutvusta õpilastele tunni teemat.
Selgita õpilastele ülesannet.


Näidisprogramm 1

kui punane siis
tõsta korraks käsi*

*Süntaksi aluseks on võetud Scratch.

Õpetaja näitab kaarte ja õpilased on robotid.




Näidisprogramm 2


kui punane siis
tõsta korraks käsi
muidu
    tee käteplaks

Õpetaja näitab kaarte ja õpilased on robotid.


Näidisprogramm 3. Tingimuslause tingimuslause sees.
kui punane siis
tõsta korraks käsi
muidu
  kui kollane siis
  puuduta nina
    muidu
    tee käteplaks

Õpetaja näitab kaarte ja õpilased on robotid.



Lisa. Näidisprogramm 4. Operaator või
kui kollane või roheline siis
kirjuta 3
muidu
  kui valge siis
  kirjuta 1
    muidu
    kirjuta 0

Õpetaja näitab kaarte ja õpilased kirjutavad numbrid üles. Programmi lõppedes liidetakse need kokku ja nii selgub, millised õpilased täitsid programmi täpselt.


Rühmatöö


Õpilased töötavad rühmades (3 õpilast).

  • Töötage rühmas ja koostage oma programm, kus kasutate tingimuslauseid. Kirjutage see kõigepealt vihikusse.
  • Testige seda programmi oma rühmas. Vajadusel tehke parandused.
  • Kui programm on valmis, kirjutage see suurelt paberile.
  • Tulge klassi ette ja kinnitage oma programm tahvlile.
  • Programmeerige värvikaartidega oma klassikaaslasi.

Kõigi tegevuste läbiviimiseks läheb rohkem aega kui üks koolitund. Täpne ajakulu sõltub õpilaste arvust.


Jälgi KristiProget ka Facebookis.

22. november 2019

Kui internetti pole...

Foto:pixabay

Sel nädalal juhtus nõnda, et mul oli Scratchis programmeerimise tund, kuid internetti polnud. Tund oli mul kenasti ette valmistatud ja kõik läbi mõeldud, mida Scratchis teeme, kuid ilma internetita tuli midagi muud välja mõelda. Mida siis teha, kui internetti pole, aga lapsed ootavad õpetamist?

Programmeerimine paberil

paberil_programmeerimine_Kristi_Proge_Blog
Ruudu joonistamise programm paberil. Kuvatõmmis
Programmeerimine paberil oligi minu lahendus interneti puudumise põhjustatud olukorrale. Mul vedas selles mõttes, et ülesanne, mille olin plaaninud lasta õpilastel Scratchis teostada, oli programmeeritav paberi ja pliiatsiga. Kuna õpetan põhikoolis matemaatilist programmeerimist, mis tähendab seda, et programmeerimine on seotud matemaatikaga, oli tunni teemaks geomeetrilised kujundid.

Andsin õpilastele käsud ette ja õpilased töötasid paaris ja kirjutasid programmid oma vihikusse, mille ma üle vaatasin ja tagasisidet andsin. Vajadusel lasin neil programmi parandused teha.

Programmeerimine paberil ei sobi igakord asendustegevuseks, kuid joonistamise programmi jaoks sobis hästi.

Tööleht ülesannetega

Kogenenud informaatikaõpetajal ja õpetajal, kes püüab varieerida tunnitegevusi, on ilmselt olemas töölehed ülesannetega, mille lahendamiseks pole arvutit vaja kasutada. Mõned näited sellistest ülesannetest on vigaste programmide silumine, puuduvate käskude lisamine programmi (n-ö lünkülesanded), küsimused etteantud programmi töö kohta või ennustamine, mida programm teeb.

Töölehtede kasutamine oleneb sellest, kui kaugel teema omandamisega ollakse. Uut teemat ei saa alustada selliste ülesannetega, kuid teema kinnistamiseks ja kordamiseks sobivad ülesanded paberil küll.

Arvutivaba / Seadmeta programmeerimine

Üks üsna lollikindel asendustegevus arvutis programmeerimisele on arvutivaba ehk seadmeta programmeerimine. Olen neid tegevusi selles blogis ka tutvustanud (link) ja nii mõnigi neist on väga vahva, olles samal ajal ka õpetlik.

Soovitav on valida tegevus, mis on tunni teemaga seotud, siis on arvutivaba tunni kasutegur suurem.

Programmeerimismängud tahvelarvutis

Ei saa ma selleski postituses mööda programmeerimismängudest, mis on loodud nutiseadmes mängimiseks. Mängud on sageli äpi kujul ja õpilastele mõeldud nutiseadmed on koolides tavaliselt olemas.

Et hädaolukorras mängud olemas oleks, on soovitav juba kooliaasta eel hoolt kanda selle eest, et mänguäpid on tahvelarvutitesse paigaldutud. Olen päris mitut progemängu ka selles blogis tutvustanud (link).

Robotid

Robootika pole sama, mis programmeerimine, kuid selleks, et robot midagi teeks, tuleb see programmeerida seda tegema. On roboteid, mille programmeerimine on lihtne (nt Ozobot, Lego WeDo) ja on roboteid, mille programmeerimine nõuab rohkem süvenemist ja oskusi (nt Lego EV3). Kui internetti pole, siis võibki programmeerimist harjutada robotite peal--nende hariduslike robotite peal, mille programmeerimise saab ruttu selgeks.

Muidugi kui õpilastel on tunniplaanis ka robootika, siis saab ehk programmeerimise tunni asemel teha robootika tunni.


Olen kuulnud arvamust, et kui sul on arvutiga tund, siis pead alati läbi mõtlema varutegevuse juhuks, kui arvuteid kasutada ei saa (näiteks pole internetti, nagu minul juhtus). Mina leian, et selline lähenemine on liigselt ajakulukas, sest ühe tunni asemel pead ette valmistama kaks tundi ning tõenäosus, et varuvariant käiku läheb on üsna väike. Seega on mõistlikum laias plaanis läbi mõelda, mida ootamatus olukorras arvutitunnis teha ja omada tööriistakasti tegevustega, mis on kasutatavad erinevates olukordades.


Jälgi KristiProget ka Facebookis.

11. september 2019

Suur ülevaade eestikeelsetest Scratchi õppematerjalidest

Scratch_õppematerjalid_Kristi_Proge_Blog
Foto:  ScratchEdTeam

Scratch on suure tõenäosusega levinuim keskkond algajatele programmeerimise õpetamiseks. Paar aastat tagasi andsin ülevaate Scratchi õppematerjalidest, kuid praegu ei ole need kõik enam kättesaadavad ja lisandunud on uusi materjale. Niisiis annan värske ülevaate praegu saadaolevatest peamiselt eestikeelsetest Scratchi õppematerjalidest.

Kuigi selle aasta alguses tuli välja Scratch 3.0, siis allolevates materjalides kasutatakse Scratchi varasemaid versioone. See asjalolu ei tohiks siiski takistuseks saada, sest Scratch 3.0 on küll uue välimusega, kuid sisu on enam-vähem sama.

Informaatika digiõpik 2

Informaatika digiõpikus on 10 koolitunni jagu Scratchis programmeerimise õpetamise materjale ja lisaks sama palju Scratchi projekte, mis mõeldud lõimiseks teiste õppeainetega. Kokku tegevust vähemalt 20 tunni jagu.

ProgeTiigri kogumik

See kogumik koondab Scratchi õppematerjalid, millest mõningad on ka võõrkeelsed. ProgeTiigri kogumikus olevate õppematerjalide suureks plussiks on tunnikavad, milles on nii õpetaja kui ka õpilase õppematerjalid.

Ramon Rantsuse juhendid

Ramon Rantsuse portfooliost leiab üheksa Scratchi projekti, mis on suuremas osas mängud. Ramon ise kirjutab, et need materjalid koostas ta huviringide õpetetajate koolituse jaoks.

Matemaatikaõpetaja Kairi Karlsoni Scratchi projektid

Scratch_õppematerjalid_eesti_keel
Kairi Karlsoni Scratchi tunnid

Ülenurme Gümnmaasiumi õpetaja on oma õpilastega tehtavad projektid kenasti veebileheks vormistanud. Õppematerjale on seal mitme nädala jagu ja erineva raskusastmega. Materjalid on süstematiseeritud. Vaata lähemalt siit.

Scratchi videoõpetuste kollektsioon

Ruila kooli kodulehele on kokku kogutud YouTube'i videod, mis õpetavad Scrachis rakendusi, suures osas mänge, looma. Nende kogu on esinduslik. Näiteks on seal videoõpetus Kurjade lindude (Angry Birds) ja Fruit Ninja mängude progemiseks. Videod on vanuseastmete kaupa grupeeritud. Videod ise on ingliskeelsed.

Scratch_Angry_Birds_õppematerjal_youtube
Mängu Angry Birds Scratchis programmeerimise videoõpetus (kuvatõmmis)

TTÜ õppematerjal

Jätkuvalt on alles TTÜ õppematerjal "Rakenduste loomine Scratchiga", mis sobib pigem gümnaasiumiõpilastele. Sama materjali Moodle'i kursusena leiab siit.

Muu

Päris mitmekesise valiku Scratchis tehtud projekte leiab ka siit.

Selles blogis avaldatud Scratchi õppematerjalid leiab üles märksõnadega scratch ja õppematerjal. Tulevikus on plaanis need materjalid kokku koguda ja süstematiseerida.


Nagu näha, on eestikeelsete Scratchi õppematerjalide valik üpris korralik. On nii kirjalikke kui ka videojuhendeid; on mõned animatsioonid, natuke joonistamist ja muusika loomist, kuid põhirõhk on ikkagi Scratchis mängude programmeerimisel.

Jälgi KristiProget ka Facebookis.

18. juuli 2019

Arvutivaba programmeerimine: õpi tingimuslauset kaarte mängides


arvutivaba_arvutita_programmeerimine_tingimuslause_Kristi_Proge_Blog
Tingimuslause ehk valiklause moodustamist saab harjutada kaartidega. Foto: Amanda Jones (Unsplash)

Suvi 2019 väljakutse on tutvustada arvutivaba programmeerimise tegevusi. Nende olulisusest programmeerimise õppimisel olen lähemalt kirjutanud programmeerimise baasoskuste õpetamise postitustes siin ja siin.


Täna tutvustan arvutivaba programmeerimise tegevust, mille eesmärk on õppida moodustama tingimuslauseid ehk valiklauseid ehk if-lauseid.

Tegevuste kirjeldustes on tingimuslause tunnused (if, else) tõlgitud eesti keelde. Tõlke aluseks on võetud eestikeelne Scratch (if kui, else = muidu).

Vajad:

  • (virtuaalselt) täringut;
  • mängukaarte (igale meeskonnale üks kaardipakk);
  • paberit ja pliiatsit.
Tegevuse läbiviimiseks on vaja vähemalt kahte osalejat.

Tegevused samm-sammult

  • Tutvusta teemat tingimuslause. Alati ei piisa ainult sammudest, mis on järjest, vaid otsustada tuleb vastavalt olukorrale. Siis tulebki appi tingimuslause. Tingimuslause käivitub siis, kui tingimus on täidetud.
  • Teema sissejuhatamiseks kirjuta tahvlile järgmine tingimuslause:
tingimus_tingimuslause_arvutivaba_programmeerimine_Kristi_Proge_Blog
  • Hakka kohe sekundeid lugema ja aja möödumisel otsusta osalejate käitumise põhjal, kas nad saavad lubatud auhinna või ei.
  • Küsi: Mis oli auhinna tingimuseks?
    • Kui te olete 30 sekundit täiesti vaikselt, siis on tingimus täidetud ehk tingimus on tõene ja te saate auhinna
    • Kui te ei ole 30 sekundit täiesti vaikselt, siis tingimus ei ole täidetud ehk on väär ja te ei saa auhinda.
  • Moodustame veel mõned tinigmuslaused:
    • kui sa tead õiget vastust, siis tõsta käsi
    • kui väljas paistab päike, siis me läheme randa
    • Milliseid tingimuslauseid oskad sina moodustada?

  • Mõnikord vajame veel ühte tingimust juhuks, kui väide on väär ehk tingimus ei ole täidetud. Selle lisatingimuse jaoks kasutame sõna muidu:
  • Proovige järele. Veereta täringut ja jälgi, kas kõik osalejad käituvad õigesti. (Virtuaalse täringu saab näiteks siit.)
  • Analüüsige tingimuslauset:
    • Mis oli tingimuseks?
    • Mis oli lisatingimuseks?
    • Kumb tingimus oli täidetud?

Tingimuslause tingimuslause sees

  • Uskuge või mitte, aga meil on võimalik lisada veel üks tingimus:
    • Küsi: Mida teete kui tuleb 6? Vastus: plaksutame
    • Küsi: Aga kui tuleb 1? Vastus: ütleme Jee!
    • Küsi: Ja kui tuleb 4? Vastus: ütleme kurvalt Mmmmmm
  • Ja nüüd mängime seda mängu!

Tingimuslause mängukaartidega

  • Mõelge koos, milliseid tingimuslauseid saab moodustada mängukaartide kohta. Mõelge näiteks värvidele, mastile, numbri- ja pildkaartidele, kas punkte saab juurde või läheb maha jms.
  • Pange tingimuslaused algoritmina kirja, nt
  • Jaga osalejad meeskondadeks (liikmete arv peaks jaguma kahega) ja iga meeskond omakorda kaheks rühmaks. Jaga igale meeskonnale kaardipakk ning paber ja kirjutusvahend punktide märkimiseks.
  • Näita osalejatele ühte algoritmi, mille te koos koostasite.
  • Meeskondadesse jaotatud osalejad võtavad vaheldumisi kaardipakist kaardi ja lähtudes programmist, panevad kirja punktid.
  • Mängige see programm läbi mitu korda ja iga kord arvutage kokku teenitud punktid.

  • Kui osalejad on mõnda aega juba harjutanud, püüdke moodustada keerulisemaid tingimuslauseid, nt
  • Mängige mäng programmi järgi läbi.

Arutelu

  • Milliseid tingimustest sõltuvaid tegevusi teed sina päeva jooksul?
  • Tingimus on alati tõene või väär. Teisi väärtusi (nt tomat) tingimusel olla ei saa.
  • Kui on tingimus, et täring näitab rohkem kui 3 ning sa saad täringut veeretades 3, kas tingimus on täidetud?
  • Kuidas paned selle tingimuse kirja?
  • Milline osa mängust meeldis sulle kõige rohkem?

Arvutivaba prorgammeerimise tegevuse idee on saadud lehelt code.org.

Creative Commons litsents -Autorile viitamine, mitteäriline eesmärk, jagamine samadel tingimustel
Jälgi KristiProget ka Facebookis.

11. juuli 2019

Arvutivaba programmeerimine: tee ise lauamäng

lauamäng_arvutivaba_arvutita_programmeerimine_Kristi_Proge_Blog
Lauamängu loomisel on ühiseid jooni programmeerimisega. Foto: pixabay
Suvi 2019 väljakutse on tutvustada arvutivaba programmeerimise tegevusi. Nende olulisusest programmeerimise õppimisel olen lähemalt kirjutanud programmeerimise baasoskuste õpetamise postitustes siin ja siin.


Käesolev arvutivaba programmeerimise tegevus on lauamängu loomine, mis on, nagu ma hiljem ka täpsustan, paljuski sarnane programmi koostamisega.

Tegevuse kirjeldus

Lapsed mõtlevad ise välja lauamängu, mida saab mängida 2-4 inimest. Töötades meeskonnas, mõtlevad nad oma mängule taustaloo, lepivad kokku mänguvälja kujunduse, kujundavad nupud ja täringu(d), kus numbrite asemel võib olla midagi muud (nt värvid, kujud jms), joonistavad mänguvälja(d) ning panevad kirja reeglid. Oluline on see, et lapsed kasutavad mängu väljamõtlemisel oma fantaasiat ja ei püüaks mõnda olemasolevat lauamängu lihtsalt kopeerida.

Vahendid

Olenevalt sellest, millise mängu meeskond välja mõtleb, vajavad nad erinevaid vahendeid selle teostamiseks. Siin on loetelu mõnedest vahenditest, mida tavaliselt lauamängu loomisks vaja läheb:
  • paberit kavandi jaoks;
  • tugevamat paberit mänguvälja joonistamiseks;
  • joonlauda, hariklikku pliiatsit, värvipliiatseid, vildikaid jms joonistamiseks;
  • täringu tegemise õpetust (guugelda nt 'dice DIY' ja leiad mitmeid õpetusi);
  • paberit taustaloo ja reeglite kirjapanemiseks.

Tegevused samm-sammult

  • Jaga osalejad 3-4-liikmelisteks meeskondadeks (kui lapsi on vähe, võib töötada ka paaris).
  • Tutvusta osalejatele arvutivaba tegevust.
  • Jaga neile töövahendid.
  • Osalejad loovad meeskonnatööna lauamängu, sh panevad kirja mängureeglid.
  • Lauamängu autorid mängivad ise oma lauamängu läbi ja teevad vajadusel parandusi, täpsustavad reegleid jms (kaheliikmelised tiimid võiksid selles etapis omale lisamängijad leida).
  • Oma mäng antakse mängimiseks teistele meeskondadele, kellelt kogutakse tagasisidet. Vajadusel täiendatakse oma lauamängu ja selle reegleid veelgi.
  • Valmis lauamängu tutvustamine (ja kokkuvõte meeskonnatööst).
  • Refleksioon: arutlusring (mängu loomisel esinenud probleemid ja nende lahendused, õppetunnid jms), mille viib läbi tegevuse juhendaja.
Kogu tegevuseks tuleb planeerida mitu tundi (vähemalt kolm).

Seos programmeerimisega

Nagu juba eespool mainitud, on lauamängu loomisel ühiseid jooni programmeerimisega. Toon siinkohal välja järgmised:
  • algoritmiline mõtlemine = lauamängu valmistamine eeldab suurema ülesande osadeks võtmist, üldistamist (nt reeglite puhul) jt algoritmilise mõtlemise osaoskuste rakendamist;
  • algoritm = mängureeglite näol on tegemist algoritmiga;
  • testimine = kui lauamäng on valmis, siis mängitakse see läbi, et kontrollida, kas kõik algoritmid töötavad probleemideta;
  • puukide silumine = kui mängides tekib reeglites mingi ebakõla, siis mängu autorid täiendavad või lausa muudavad reegleid.

Creative Commons litsents -Autorile viitamine, mitteäriline eesmärk, jagamine samadel tingimustel
Jälgi KristiProget ka Facebookis.

4. juuli 2019

Arvutivaba programmeerimine: keeruliste probleemide lahendamine

Suvi 2019 väljakutse on tutvustada arvutivaba programmeerimise tegevusi. Nende olulisusest programmeerimise õppimisel olen lähemalt kirjutanud programmeerimise baasoskuste õpetamise postitustes siin ja siin.

Selles postituses tutvustan arvutivaba tegevust, mis on üsna pingeline ja paneb õppijad kohati raskesse olukorda, mistõttu on äärmiselt oluline, et tegevuse läbiviija oleks toetav ja julgustav.


arvutivaba_arvutita_programmeerimine_algoritmiline_mõtlemine_Kristi_Proge_Blog
Progammeerimisel peab vahepeal lahendama keerulisi probleeme. Foto: Pixabay


Tegevuse eesmärk

... on demonsteerida, kuidas lahendada keerulisi probleeme kasutades algoritmilise mõtlemise nelja komponenti: probleemi väiksemateks osadeks võtmine, mustrite tuvastamine, üldistamine ja algoritmi väljatöötamine. 


Tegevuse kirjeldus

Selle arvutivaba programmeerimise tegevuse paremini õnnestumiseks on vaja suuremat hulka osalejaid, kuid põhimõtteliselt saab seda tegevust läbi viia ka ainult kahe osalejaga.
  • Ütle osalejatele, et nende ülesanne on liita kokku kõik arvud ühest kahesajani (1-200).
  • Teavita neid, et seda tuleb teha peas.
  • Aega on 30 sekundit.
    • Osalejad võivad olla ehmunud, mis on antud tegevuse puhul tahtlik. Et neid rahustada, anna oma kehakeele ja hääletooniga mõista, et sa palud neil midagi hullumeelset teha.
  • Pane stopper tööle ja ütle "Läks!"
  • Jälgi samal ajal osalejad: Kes on lihtsalt kohmetunud? Kes üritab arve kokku liita? jms
  • Kui aeg läbi, uuri, kas kellelgi õnnestus arvud kokku liita?
  • Uuri, kas oli keegi, kelle jaoks ülesanne oli nii keeruline, et ta isegi ei proovinud?
  • Uuri, kas keegi proovis küll, aga ei jõudnud lõpuni? Küsi, kuidas nad proovisid seda teha?
  • Juhenda õpilasi probleemi väiksemateks osadeks võtma. Seda tehes on ülesannet ehk probleemi lihtsam lahendada:
    • Alustame mõlemast otsast. Palju on 200 + 1?
    • Palju on 199 + 2?
    • Palju on 198 + 3?
    • Kas näete mustrit?
    • Palju selliseid paare kokku tuleb?
      • Milline on viimane paar? (V: 100 + 101)
      • See teeb kokku 100 paari
      • Kui meil on sada paari arvu 201, siis kuidas leiame nende summa?
      • Palju on 100 * 201?
    • Kas saame sama lahendust kasutada ka teiste arvude jaoks?
    • Kas saame seda kasutada 2 000 jaoks?
    • Aga 20 000?
    • Mis on lahenduses sama ja mis on erinev?
    • Kasutades üldistamist, saame lahenduse ehk algoritmi, mida saab rakendada kõigi arvude jaoks.
  • Töötage koos lahenduse kallal. Lahendus on: (arv/2)*(arv+1) = vastus
  • Katsetage mõnede arvudega (2, 3, 4 & 5) kontrollimaks algoritmi korrektsust.

Räägi osalejatele, et kasutasite probleemi lahendamiseks algoritmilist mõtlemist. Kõigepealt võtsite suure probleemi väiksemateks osadeks. Seejärel tuvastasite sarnasused probleemi väiksemate osade vahel ehk leidsite korduva mustri. Siis jõudsite järeldusele, et sama lahendust saab kasutada ka teiste arvude jaoks ehk toimus üldistamine. Lõpuks töötasite välja algoritmi, mis sobib kõigi sarnaste probleemide lahendamiseks. 

Selline probleemilahendamise oskus on vajalik programmide koostamisel, kuid samuti igapäevaelu probleemide lahendamisel.

Järeltegevused

Arutage koos:
  • Mida peaksid tegema, kui sul palutakse teha midagi, mida sa ei oska?
  • Mida peaksid proovima teha, kui probleem on liiga keeruline?
  • Mida sa sellest järeldad, kui erinevatel ülesannetel on lahendustes sarnasused?
  • Kui sul on probleem, mis erineb probleemist, mille oled juba lahendanud, siis mida sa teed?
Arvutivaba tegevuse idee on pärit lehelt code.org.

Lõppsõna

Kui oled programmeerimist õpetanud või ise õppinud, siis tead, et kirjeldatud arvutivaba tegevuse alguses kunstlikult tekitatud pingeline olukord ei ole programmeerimise juures üldse erakordne. Sellist ahastuse tunnet kogevad õpilased aeg-ajalt ikka, on selle põhjuseks siis ülesande keeruline sõnastus, suutmatus kohe lahendust välja mõelda või oskamatus programmis viga üles leida, et see tööle saada.

Olen selliste tunnete tunnistajaks olnud nii õppijana kui ka õpetajana. Seetõttu näen käesoleva arvutivaba programmeerimise tegevuse väärtusena ka seda, et selle kaudu saab õpetada õpilastele raskes olukorras rahulikuks jäämist.


Creative Commons litsents -Autorile viitamine, mitteäriline eesmärk, jagamine samadel tingimustel

Jälgi KristiProget ka Facebookis.

27. juuni 2019

Arvutivaba programmeerimine: robotkunstnik

arvutivaba_arvutita_programmeerimine_algoritmiline_mõtlemine_robotkunstnik_Kristi_Proge_Blog
Programmeerimiseks vajalikke oskusi saab õppida ka läbi kunsti. Foto: Kelly SikkemaUnsplash

Suvi 2019 väljakutse on tutvustada arvutivaba programmeerimise tegevusi. Nende olulisusest programmeerimise õppimisel olen lähemalt kirjutanud programmeerimise baasoskuste õpetamise postitustes siin ja siin.

Täna tutvustan arvutivaba programmeerimise tegevust, milles mängijad peavad kasutama õigeid lauseid ja õiges järjekorras, et teineteist programmeerida.

Tegevuse eesmärk on harjutuda täpsete juhiste andmist ja arendada seeläbi algoritmide koostamist. Tegevus sobib algajatele ja igas vanuses õppuritele. Algklassiõpilastele meeldib see mäng igatahes väga.

Programmeerija ja robotkunstnik

Selle tegevuse jaoks vajad kaaslast, keda programmeerida, pliiatsit ja ruudulist paberit.

Üks mängijatest on programmeerija ja teine on robotkunstnik. Programmeerija istub kaaslasest natuke eemale ja joonistab ruudulisele paberile kujundi või pildi, kasutades selleks ruutude piirjooni. Kui kujund või pilt on valmis, siis programmeerija annab robotkunstnikule käske samasuguse pildi joonistamiseks. Robotkunstnik tohib teha ainult seda, mida programmeerija talle ütleb. Programmeerija tohib kasutada ainult järgmisi käske:
  • pane pliiats paberile;
  • liigu .... samm(u)* vasakule;
  • liigu .... samm(u) paremale;
  • liigu .... samm(u) üles;
  • liigu .... samm(u) alla;
  • tõsta pliiats üles.
* üks samm on võrdne ühe ruuduga

Kui programmeerija on lõpetanud, näitab robotkunstnik oma pilti kaaslasele. Kui see on erinev programmeerija pildist, siis korratakse tegevust. Kui pildid on samasugused, siis vahetatakse rollid.

arvutivaba_programmeerimine_robotkunstnik_Kristi_Proge_Blog
Robotkunsti näited.

Alternatiivid

Seda tegevust võib läbi viia ka rühmas, kus üks on programmeerija ja teised on robotkunstnikud.

Võib kasutada ka teistsuguseid käske, näiteks:
  • pööra paremale;
  • pööra vasakule;
  • liigu .... sammu;
  • pliiats alla;
  • pliiats üles.
See vahva tegevus on seda keerulisem, mida keerulisem on joonistus. Alustada tuleks lihtsamatest piltidest ja seejärel joonistada-programmeerida juba keerulisemaid pilte. Soovitan lausa, et esimesed joonistused jagab õpilastele tegevuse läbiviija. See tagab, et algus on kõigile jõukohane, kuna minu kogemus on näidanud, et osa õpilasi joonistab algajate jaoks liiga keerulise pildi.

Jälgi KristiProget ka Facebookis.

20. juuni 2019

Arvutivaba programmeerimine: tangram ja algoritmid

Suvi 2019 väljakutse on tutvustada arvutivaba programmeerimise tegevusi. Nende olulisusest programmeerimise õppimisel olen lähemalt kirjutanud programmeerimise baasoskuste õpetamise postitustes siin ja siin.

Täna tutvustan arvutivaba programmeerimise tegevust Tangramitega. Tegevuse läbiviimiseks on vaja vähemalt kolme inimest. 
Tangrami kohta saab lähemalt lugeda siit.

arvutivaba_arvutita_programmeerimine_algoritm_tangram_Kristi_Proge_Blog
Mängijatel võib lasta Tangramid ise ära värvida. Foto: Pexels

Tegevuse eesmärk

... on harjutada täpsete ja üheselt mõistetavate juhiste (algoritmide) koostamist. Tegevuse õnnestumiseks on oluline, et osalejad tunnevad geomeetrilisi kujundeid (vähemalt kolmnurka ja nelinurka).

Vahendid

Tegevuse läbiviimiseks vajalikud vahendid on Tangram igale osalejale ja värvilised ülesandekaardid Tangrami tükkidest kokku pandud kujunditega (näited siin, kuid guugeldades "tangram puzzles" ja "tangram problems" saab ideid lisakaartide tegemiseks). Ülesandekaardid on soovitav raskusastme järgi nummerdada.

Kust saab Tangrameid? Kõige lihtsam on need ise tugevamast paberist teha. Joonista või prindi paberile Tangrami tükkide piirjooned (saab samuti siit) ja lase osalejatel need ise ära värvida. Värviskeem peab olema kõigil sama! Muidugi võib Tangramid ka osta.

Eeltegevused

Algoritm. Mängu läbiviija selgitab osalejatele, mis on algoritm ja toob näiteid elust. Räägib täpsete sammu-sammuliste juhiste koostamise olulisusest programmeerimisel. (See osa sobib ka järeltegevuseks).

Kui osalejad pole varem Tangramit mänginud, siis lühike tutvustus. Jaga osalejatele Tangramid. Kui need on vaja värvida ja paberist välja lõigata, siis tehke seda.

Arvutivaba tegevuse juhend

  1. Moodustage 3-5-liikmeline rühm(ad). Jagage igale osalejale Tangram.
  2. Tutvustage ülesannet mängijatele.
  3. Asetage ülesandekaardid tagurpidi lauale (lihtsaim ülesanne on kõige peal).
  4. Üks mängijatest võtab pealmise kaardi, kuid teistele seda ei näita.
  5. Ülesandekaardiga mängija kirjeldab kaardil olevat kujundit.
  6. Teised kuulavad ja panevad Tangrami tükkidest kokku kirjeldatud kujundi.
  7. Kui ülesandekaardiga mängija lõpetab, siis kontrollitakse, kas kõigil on sama kujund. Ülesandekaarti veel ei näita!
  8. Kui kõik kujundid on samasugused, siis näidatakse oma kaarti teistele.
  9. Kui mängijatel on erinevad kujundid, siis kirjeldab kaardiga mängija kujundit uuesti, olles seekord oma kirjelduses täpsem.
  10. Valige mängija, kes kirjeldab järgmisel ülesandekaardil olevat kujundit. Korrake seni kuni iga rühmaliige on kirjeldanud ühte kujundit.
Mängige seda mängu läbi mitu ringi.

Järeltegevused

Kui iga mängija on juhendanud vähemalt 2-3 kujundi kokkupanemist, siis arutage omavahel järgmisi küsimusi:
- Mida me sellest tegevusest õppisime?
- Kas kujundite kirjeldamine oli lihtsam või keerulisem kui sa arvasid?
- Kas sul on mõni hea soovitus, kuidas kirjeldada ülesandekaardil olevat kujundit nii, et kõik mängijad paneksid kujundi kokku õigesti?

Mängijad peavad jõudma järeldusele, et õnnestumiseks on vaja anda väga täpseid ja üheselt mõistetavaid juhiseid. Oluline on rõhutada, et programmeerimisel on samamoodi: ebatäpsed juhised (kood) annavad ebatäpseid tulemusi.


Tangramite kasutamine algoritmilise mõtlemise arendamiseks on ilmselt üks mu lemmikuid arvutivabasid tegevusi. Ja kõiki tegevusi ei pea läbi viima korraga, vaid kõigepealt võib valmistada Tangrami mängu tükid ja siis nendega Tangrami probleeme lahendada ning siis järgmine kord suuliselt algoritmide koostamist harjutada. Samuti võib lasta osalejatel ise kujund kokku panna, foto teha ja siis seda foto järgi juhendada teisi mängijaid seda kokku panema.

Arvutivaba tegevuse idee on pärit lehelt code.org.

Creative Commons litsents -Autorile viitamine, mitteäriline eesmärk, jagamine samadel tingimustel

Jälgi KristiProget ka Facebookis.

30. mai 2019

Programmeerimise õpetamisest (2) - algus tehtud, kuidas edasi?

Programmeerimise õppimist on soovitav alustada lihtsate algoritmide koostamise õppimisest, nagu kirjutasin lähemalt selles postituses. Kuid mis saab edasi? Mis on järgmine samm?

Programmeerimise_õpetamine_kuidas_edasi_Kristi_Proge_Blog
Arvutivaba programmeerimine õpetab programmeerimisel vajalikke oskusi. Foto: Pexels

Mustrid ja keerulisemad algoritmid

Algoritmilise mõtlemise üheks komponendiks on mustrite tuvastamine. Muster on midagi sellist, mis kordub. Korduste tuvastamine aitab luua keerulisi programme kiiremini ja need on ka lihtsamini jälgitavad, sest sama koodi mitmekordse kirjapanemise asemel kasutatakse tsükleid, alamprogramme (=funktsioone, protseduure) või tingimuslauseid.

Praktika näitab, et mustrite leidmine selleks, et vältida programmis samasuguste koodiridade kordamist ei ole paljude õpilaste jaoks lihtne. Või vähemalt ei oska nad selle peale tulla, et korduvaid tegevusi programmis on võimalik lühemalt kirja panna. Seetõttu tuleks mustrite teemat programmeerimise õppimisel eraldi käsitleda.

Teiseks sammuks programmeerimise õpetamisel ongi harjutada mustrite märkamist ning käsitleda teemasid tsükkel, alampogramm ja tingimuslause ning seejärel jätkata keerulisemate algoritmide koostamisega. Järgmisena vaatame, millised võimalused selleks on.

Arvutivaba/Seadmeta programmeerimine

Nagu programmeerimise sissejuhatavatesse tundidesse sobib arvutivaba programmeerimine suurepäraselt, saab juhtme välja tõmmata ka tsüklite, alamprogrammi ja tingimuslause teemade selgitamisel.

Selleks et harjutada mustrite äratundmist, on soovitav kõigepealt kasutada väljaprinditud töölehti erineva raskusastmega harjutustega, mida õppijad lahendavad kas individuaalselt või paaris. Koostööoskuse arendamiseks on paarislahendamine kindlasti parem. Kõige tüüpilisemaks ja lihtsamaks ülesande näiteks on etteantud mustrirea jätkamine (näiteks L K L K L K _). Internetist leiab sobivaid töölehti, kuid ülesanded võib ka ise välja mõelda.

Tsüklite, alamprogrammide ja tingimuslausete teemat saab õpetada ka huvitamalt ja sotsiaalsemalt kasutades aktiivõpet. Internetis ringi vaadates leiab mitmeid huvitavaid arvutivaba programmeerimise tegevusi, millega on sageli kaasas tunnikava ja näitlikustav video. Näiteks leiab valiku tegevusi code.org lehelt.

Suvi 2019 väljakutses on mul kavas tutvustada mõningaid arvutivaba programmeerimise tegevusi, sh tegevusi, mis sobivad just nimetatud teemade õppimiseks. Lähemalt sellest väljakutsest juunis.

Programmeerimise_õpetamine_arvutivaba_programmeerimine_Kristi_Proge_Blog.jpg
Mäng on nii kaasahaarav kui arendav. Foto: Pexels

Programmeerimismängud ja hariduslikud robotid

Suurem osa hariduslikke programmeerimismänge nõuavad ülesannete täitmisel tsüklite, alamprogrammide ja tingimuslausete kasutamist. Õppijad võiksid mängida peale seda, kui need programmeerimise põhikonstruktsioonid on arvutivabade programmeerimise tegevuste kaudu juba käsitletud. Kuigi tasemed saab üldjuhul läbida ka eelnevate teadmisteta ja õppida mängimise käigus, siis väärtuslikum on õppija jaoks see, kui ta saab varem omandatud teadmisi uues kontekstis rakendada.

Nendes mängudes koostatakse programme enamasti graafilisetest plokkidest (plokkide all peangi silmas otseselt ristkülikukujulisi 'klotse', mis paigutatakse jadamisi üksteise otsa) ja suuremas osas on need plokid tekstivabad.

Siinkohal loetelu mõnedest mängudest ja rakendustest, mida julgen harjutamiseks soovitada:
On ka valik hariduslikke roboteid, mille juhtimiseks tuleb koostada graafilistest tekstivabadest klotsidest programm. Näiteks Lego WeDo ja Edisoni roboti programmeerimiskeel EdBlocks. Lego klotsidest ehitatud robot või masin ja Edisoni sõiduk programmeeritakse tööle äpis koostatud programmi abil.

Algoritmilise mõtlemise neljas komponent - üldistamine

Teatavasti koosneb algoritmiline mõtlemine neljast põhikomponendist: osadeks võtmine, mustrite tuvastamine, üldistamine ning algoritmi koostamine ja selle töökindluse kontroll. Nendest kolme olen oma postitustes käsitlenud, kuid üldistamist mitte. Usun, et sellega on õppurid nii või naa õppetöös kokku puutunud, sest mõned näited üldistamisest on sisukokkuvõte loetud raamatust või nähtud filmist ja sõnade defineerimine, kas emakeeles või võõrkeeles. See muidugi ei tähenda, et üldistamise oskus on õpilastel hästi arenenud. Minu kogemuse põhjal on see neil pigem nõrk.

Programmeerimise õpetamisse saab üldistamise sisse tuua nõnda, et palud õpilasel oma programmeeritava rakenduse (mäng, animatsioon jms) ideed teistele tutvustada. Peidetult on üldistamine sees ka nendes arvutivabades tegevustes, kus õppurid koostavad algoritme mingi ülesande lahendamiseks.

Kokkuvõtteks

Enne kui õpilased hakkavad ise koodi tekstilistest plokkidest kokku panema või koodi kirjutama, on soovitav läbi mängu tuttavaks saada algoritmilise mõtlemise põhikomponentidega. Mängulise õppimise kaudu õpitakse tundma ka mõnda programmeerimise põhikontseptsiooni nagu tsükkel, tingimuslause ja alamprogramm. Loodetavasti on õpilastel tänu 'soojendustegevustele' koodikirjutamise või -koostamisega jätkates rakenduste loomine lihtsam ja probleemivabam, sest ta on juba harjunud programmeerija moodi mõtlema.


Jälgi KristiProget Facebookis.

14. mai 2019

Programmeerimise õpetamisest (1) - millest alustada?

Käesolev postitus juhatab sisse postituste sarja, milles kirjutan lähemalt programmeerimise õpetamisest kooliealistele lastele (osaliselt ka koolieelikutele). Rõhuasetus saab olema küsimustel mida õpetada ja mis järjekorras õpetada. Sellest, kuidas õpetada (ehk õpetamismetoodikast) sarjas palju juttu ei tule.

programmeerimine_arvutivaba_algajad_kuidas_Kristi_Proge_Blog
Programmeerimine kui 21. sajandi kirjaoskus. Foto: pixabay

Programmeerimine kui 21. sajandi kirjaoskus

Programmeerimine on praegu hariduses väga kuum sõna. Rõhutatakse, et see on üks 21. sajandi olulistest oskustest, nimetatakse seda lausa 21. sajandi kirjaoskuseks, ja usutakse, et iga laps peaks vähemalt natuke programmeerida oskama, et elus paremini hakkama saada. Igatahes on mitmed haridus- ja IT-valdkonna inimesed avaldanud arvamust, et progammeerimise algtõdede õpetamisega peab alustama varakult. Aga millest üldse alustada?

Käsud ja algoritmid

Programmeerimine on lihtsustatult öeldes täpsete ja õiges järjekorras käskude andmine arvutile (masinale) selleks, et see teeks midagi, mida inimene soovib. Tavaliselt soovib inimene lahendada mingit probleemi. Selliseid samm-sammulisi juhiseid (käske), mis koostatakse mingi ülesande täitmiseks või probleemi lahendamiseks, nimetatakse algoritmiks. Oskust koostada algoritme, mis annavad soovitud tulemuse, nimetatakse algoritmiliseks mõtlemiseks.

Seega ongi mõistlik alustada programmeerimise õppimist ja õpetamist käskudest ja lihtsatest algoritmidest. On oluline, et laps, noor või teismeline mõistab, et arvuti teeb seda, mida tema käseb tal (läbi koodi) teha. Kui algoritm on ebatäpne või vigane, siis ei tööta programm nii nagu tema soovib. Võib juhtuda sedagi, et tulemus on mõningatel juhtudel õige, kuid teistel juhtudel jällegi vale. Hea algoritm annab järjepidevalt oodatud tulemuse.

Täpsete juhiste ehk käskude andmist tuleb harjutada, mis võikski olla programmeerimise õppimisel esimene samm. Täpsete juhiste andmise harjutamiseks on kaks peamist võimalust: arvutivaba/seadmeta programmeerimine ja lihtsate programmeerimismängude mängimine.

Arvutivaba/Seadmeta programmeerimine

Programmeerimise baasoskusi saab arendada täiesti arvutivabalt. Seda nimetatakse arvutivabaks või seadmeta programmeerimiseks. Võimalusi õppida programmeerimise baasoskusi ilma arvutita on uskumatult palju. Internetist võib leida väljaprinditavaid töölehti ülesannetega, mida õppija saab lahendada iseseisvalt, kuid levinum on siiski töötamine paaris või rühmas. Näiteks saab 'programmeerida' oma kaasõpilast jagades talle käsklusi, mängida koos lauamänge, koostada teineteisele kirjalikke juhiseid mingi ülesande täitmiseks, jagada suulisi juhiseid rühmakaaslastele jne. Igatahes käib arvutivaba programmeerimise juurde sageli liikumine ja koostöö.

Arvutivaba programmeerimise alla käib ka valik haridusroboteid, näiteks Bee-Bot ja Ozobot, mille liikuma panemiseks kasutatakse lihtsaid käske ja selleks ei pea tingimata kasutama arvutit.

Mõnda arvutivaba programmeerimise tegevust on mul kavas tutvustada oma suvi 2019 väljakutses, millest saab lähemalt lugeda juunikuus.

Programmeerimismängud

Lihtsate algoritmide koostamist saab õppida kasutades arvutit või nutiseadet ja spetsiaalselt selleks loodud keskkondasid või rakendusi. Kui arvutivaba programmeerimise tegevused on sageli sotsiaalsed, siis (hariduslikud) programmeerimismängud on pigem individuaalsed. Muidugi on olenevalt lapse vanusest ja mängu keerukusest vaja täiskasvanu juhendamist, kuid peamiselt käib õppimine õppuri ja rakenduse vahelise interaktsiooni kaudu. Rakendus juhendab mängijat ja pakub kohest tagasisidet käsurea õigsuse kohta. Samuti on tavapärane, et mängijat premeeritakse kuldraha, tärnide jm sellisega, mis motiveerivad endast parimat andma.

Siin on mõned mängud, mis arendavad samm sammu haaval juhiste koostamist:

    Kokkuvõtteks

    Programmeerimise õppimise esimeseks sammuks olenemata lapse vanusest on harjutada täpsete juhiste (käskude) koostamist, mida saab teha nii arvutiga kui ka arvutita. Ei saa väita, et arvutivaba programmeerimine on tingimata parem kui programmeerimismängud või vastupidi. Mõlemad arendavad algoritmilist mõtlemist ja õpetavad programmeerimise baasoskusi. Samas usun, et võimalus õppida programmeerimist arvutivabalt, seejuures liikudes ja arendades sotsiaalseid oskusi, kõlab paljude õpetajate ja lapsevanemate jaoks atraktiivsemalt kui ekraani taga sundasendis õppimine.


    Jälgi KristiProget ka Facebookis.