12. detsember 2019

Plokid ehk alamprogramm Scratchis (õppematerjal)

Kuna otsustasin sel õppeaastal viiendale klassile õpetada Scratchis alamprogrammide teemat, siis koostasin selleks otstarbeks õppematerjali: kaks videojuhendit. Lisaks kirjalik juhend, milles koostatakse programm, mis on videoõpetuste aluseks.

Varasemates Scratchi versioonides oli alamprogrammi (ehk funktsiooni ehk protseduuri) koostamiseks defineeri plokid. Scratchis 3.0 saab ise luua ilusaid roosasid plokke, mida siis oma koodis kasutada.

Alamprogrammide teema ei ole kindlasti üks kõige lihtsam, mida õpetada. Nii nagu tekstilise programmeerimiskeele õpetamisel algajatele võetakse selle teema juures appi joonistamine (kilpkonnagraafika), siis kasutasin Scratchi puhul sama lähenemist.

Õppematerjal


Kirjalikus juhendis joonistatakse hulknurk. Selleks alamprogrammi ei kasutata.

Videojuhendi 1. osas kasutatakse hulknurga joonistamiseks juba alamprogrammi.

Videojuhendi 2. osas luuakse veel üks alamprogramm ning kasutatakse alamprogrammi alamprogrammi sees, et joonistada lilleõis.

Vabandan, et videote kvaliteet ei ole suurepärane.

Ülesanded

Olen seda varemgi rõhutanud, et õpetamisel ei piisa sellest, kui õpilane programmeerib ainult juhendi järgi. See on alles esimene etapp. Järgmisena tulevad ülesanded, kus õpilane peab iseseisvalt (st juhendi abita) programmeerima. Siin on kaks ülesannet, mida võib Scratchis alamprogrammi teema õpetamisel kasutada.

Ülesanne 1. Projekt "Lillepeenar". Täienda oma olemasolevat programmi nii, et joonistatakse lillepeenar, kus kasvab mitu lille ning päike, mille kiirteks on kolmnurgad. Näide valmis joonistusest:
Lillepeenar_Scratch_alamprogramm: plokid_Kristi_Proge_blog
Kuvatõmmis
Sellise pildi joonistamiseks luuakse uued plokid vars, lillepeenarkolmnurk ja päike.

Ülesanne 2. Tööta paarilisega. Mõlge ise välja üks pilt, milles joonistatakse geomeetrilistest kujunditest objekte. (Objektideks on näiteks lill ja päike eelmises programmis.)

Alloleval pildil on objektideks kuusk, maja ja lumehelves. Kuuskede joonistamiseks on kasutatud kolmnurki, maja jaoks ruutu ja kolmnurka ning lumehelveste jaoks sirgjoont.
Talv_Scratch_alamprogramm_Kristi_Proge_blog
Kuvatõmmis

Vihje: Selle ülesande juures on väga soovitav paluda õpilastel pilt enne paberile joonistada ja õpetajale ette näidata. Õpetaja annab tagasisidet ja laseb õpilastel selgitada lühidalt, kuidas nad selle pildi Scratchis programmeerivad (Millised alamprogrammid koostavad.). Õpetaja oskab ette näha, millised raskused võivad pildi programmeerimisel tekkida - neid ei pruugi kogenematu silm märgata - ja seeläbi programmeerimisel tekkivaid probleeme ennetada.

Mõlemad ülesanded nõuavad õpilaselt abstraktset mõtlemist ja Bloomi taksonoomia tipupoolses osas asuvate oskuste rakendamist. Õpetaja peab kindlasti olema valmis õpilasi selle ülesande juures juhendama.


Kui soovid Scratchis joonistamise õpetamise kohta veel lugeda, siis olen sellel teemal kirjutanud ka siin.

Jälgi KristiProget ka Facebookis.

5. detsember 2019

TedEd "Mõtle nagu programmeerija" episoodid 1-3

ThinkLikeACode_Kristi_Proge_Blog
Foto: blog.ted.ed.com

Selle kooliaasta alguses tuli TED Education välja animeeritud seriaaliga "Think Like A Coder", mille eesmärk on õpetada programeerimise põhikontseptsioone. Kokku on seriaalis 10 osa, millest praegu on avaldatud esimesed kolm.

Seriaali peategelane on tüdruk Ethic ja tema kaaslane robot Hedge, kes elavad robotite poolt kontrollitud maailmas. Maailma päästmiseks peavad nad lahendama mitmeid probleeme (ülesandeid, missioone) ning lahenduseni aitab jõuda programmeerija moodi mõtlemine.

Iga umbes 6-minutiline episood keskendub ühele programmeerimise põhioskusele.

Esimeses episoodis õpitakse põgenemismissiooni käigus tsüklite kohta, täpsemalt for-tsüklit ja while-tsüklit kasutama, et lukustatud ruumist ja robotite poolt valvatud ehitisest välja pääseda.

Teises episoodis otsitakse vastupanuliikumise juhti, kelle abiga maailm päästa. Juhi leidmiseks kasutatakse valiklausete ehk tingimuslausete ja tõeväärtuse abi (välistamine).

Kolmanda episoodi missiooniks on vabastada inimesed Furnance bottide ikke alt. Selleks tuleb ulmefilmidele omaselt tuvastada kõikide robotite ema (n-ö nullpatsient). Tuvastatamiseks võetakse appi muutujad.

Mulle meeldib TedEd seriaali "Think Like A Coder" idee ja igas episoodis lahendamist vajavad probleemid pakuvad vaatajale põnevust ning on kenasti loo ja programmeerimisega seotud.

Seriaalist üksi jääb siiski väheseks. Tore oleks, kui iga episoodi kohta jäetaks vaatajale nuputamiseks mõned probleemid, mille lahendamiseks peab ta kasutama episoodis tutvustatud lahenduskäiku. Interaktiivsed ülesanded oleks veel eriti hea.

Minul tekkis TedEd animatsiooni vaadates mitu ideed, mida (põhikooli) tundides programmeerimise õpetamiseks kasutada. Täpsemalt arvutivaba /seadmeta tegevuste jaoks.

Seriaal on inglisekeelne. Eestikeelseid subtiitreid pole.




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.

19. september 2019

Vahvad mängud micro:bitile

microbit_mäng_Kristi_Proge_Blog
micro:bitile saab luua ka mänge (ekraanitõmmis)


Esmasel kokkupuutel micro:bitiga (lähemalt saab selle kohta lugeda siit) jääb mulje, et seda saab vaid kujundeid ja sõnumeid näitama programmeerida. Siiski on võimalik selle pisikese haridusliku vidinaga enamat korda saata ja seda ilma komponente juurde ostmata. Nimelt saab micro:bitile mänge programmeerida!

micro:biti kodulehel on mitmeid mängude loomise õpetusi. Valisin välja kaks, mis mulle endale rohkem huvi pakkusid: Snap the Dot (Taba täppi) ja Flappy Bird (Rumal lind) aka Crashy Bird. Kuna inglise keelest mu noored õpilased veel piisavalt hästi aru ei saa, siis eestitasin nende mängude juhendid, mida nüüd ka siin jagan. Ma ei väsi kordamast, et minu jaoks ei ole õppimine see, kui kood lihtsalt juhendi järgi ümber kirjutatakse (mis on ilma juhendit tõlkimata täiesti võimalik), vaid õppur peab ka aru saama, mida ta teeb ja kuidas tema kood töötab.

Mäng 1: Taba täppi

Taba täppi (Snap the Dot) on mäng, kus mängija peab vajutama nuppu täpselt sel hetkel, kui täpp ilmub ekraani keskele.

Selle mängu loomisel rakendatakse järgmisi oskusi:
  • spraidi loomine;
  • lõputu tsükkel;
  • tehted (operaatorid);
  • muutujad;
  • koordinaadid;
  • tingimuslause (valiklause).
Eestikeelse juhendi leiab siit.

Ma ei tee saladust sellest, et kui programm valmis sai ja see micro:biti laeti, siis Taba täppi mängu mängimine kütkestas nii nooremaid kui vanemaid inimesi. Iga mängija tahtis teistest parem olla ja püstitati järjest uusi rekordeid.

Mäng 2: Rumal lind

Mängus Rumal lind (Crashy Bird) peab mängija juhtima vasakul asuvat lindu nõnda, et see ei põrkaks kokku paremalt lähenevate vertikaalsete takistusega. Takistusega kokkupõrkel mäng kaotatakse.

Rumal lind ei ole idee poolest uus ja sarnaseid mänge on mitmed kooliõpilasedki näiteks Scratchis programmeerinud (näide siin), kuid micro:biti jaoks on seda mängu veidi lihtsustatud. Sõna lihtne ei saa siiski kasutada programmi enda kohta.

Mängu Rumal lind programm on Taba täppi mängu omast tunduvalt keerulisem. Sellest annab aimu ka allolev loetelu mängu loomisel rakendatavatest oskustest:
  • spraidi loomine;
  • muutujad;
  • lõputu tsükkel;
  • tehted (operaatorid);
  • jäägi leidmine;
  • for-tsükkel;
  • while-tsükkel;
  • koordinaadid;
  • tingimuslause (valiklause);
  • loogilised tehted;
  • järjend (array).
Eestikeelse juhendi leiab siit.

Koodi koostamisel peab olema väga tähelepanelik, et ükski klots lisamata ei jääks (juhtus seda asja minugagi), sest hiljem võib vea leidmine üsna keeruline olla.

Mängu arendamine

Mõlema juhendi lõpus on mängu edasiarendamise osa, mida ma ei soovita vahele jätta. Mängu arendamine näitab, kas õppija mõistab mängu koodi ning samuti aitab see harjutada omal käel programmeerimist. Arendamise käigus õpib sageli ka uusi oskusi.

Oma mäng

Kui need kaks mängu on juhendi järgi valmis ja tööle saadud ning natuke ka edasi arendatud, siis on soovitav ise mäng välja mõelda. Mina tegin mängu, mille inspiratsiooniks oli Taba täppi. Nimelt hüppab täpp mööda mänguvälja ringi ja +1 punkt on siis, kui vajutad nuppu sel hetkel kui täpp on välja keskel või nurkades ja kaotad punkti kui valel ajal nupule vajutad. Mäng kestab ühe minuti ja mängu lõpus kuvatakse skoor.

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.

2. juuli 2019

Digi ja (info)tehnoloogia arutlusteemad Arvamusfestivalil 2019

Foto: arvamusfestival.ee

Arvamusfestival on tulnud, et jääda. Sel aastal toimub see 9. ja 10. augustil ja ikka Paides. Sirvisin Arvamusfestivali kava ja valisin välja IT-ga seotud arutlusteemad. Minule isiklikult pakuvad suurimat huvi tüdrukud tehnoloogias ning andmeteaduse arutlusteemad.

Unicorn Squad - ükssarvikute pealetung!

09. august 2019 @ 12:00-13:30
Tehnika- ja tehnoloogia valdkonnas on täna veel vähe naisi ja levinud on arvamus, et tüdrukuid need teemad ei huvita. HK Unicorn Squad soovib äratada tehnoloogia-alast huvi tüdrukute seas ja teistmoodi lähenemisega on need teemad köitvad ja kaasahaaravad. Taavi Kotka algatusel tegutsevad täna üle Eesti juba 16 Unicorn Squad gruppi 200 tüdrukuga vanuses 7-12a. Festivalil jagavad noored ükssarvikud oma kogemust ja viivad läbi põnevaid tegevusi - oodatud on kõik!

Meedia ja meelelahutus 2030

09. august 2019 @ 12.00-13.30
Internet, tehnoloogia ja sotsaalmeedia on viimase kümne aasta jooksul raputanud kogu meedia ja meelelahutuse turgu. Mis kujundab aga neid valdkondi järgmise kümne aasta jooksul ning kas suudame ette ennustada võimalikke trende ja muutusi?

Generatsioon R ja robotite pealetung

09. august 2019 @ 14.00-15.30
Tänapäeval on keeruline leida inimest, kes mingil moel tehnika või tehnoloogiaga kokku ei puutuks. Robootika ja AI areng on kaasa toonud revolutsioonilised arengud kõigis eluvaldkondades, alustades kommunikatsioonist ja transpordist ning lõpetades terviseteenuste ning sõjaväega. Meie seas kasvab uus põlvkond, kes on harjunud, et programmeerimine on sama oluline kui kirjaoskus ja kõike keerukat või tüütut annab automatiseerida. Kuidas ennast uue generatsiooni jaoks valmis panna? Mis roll on inimesel tulevikus? Mis saab meie töömaailmast?

Mis on andmeteadus?

09. august 2019 @ 18:00-19:30
Andmeteadlast on peetud üheks 21. sajandi kõige olulisemaks elukutseks. Samas olid ju juba ka eelmisel sajandil olemas nii statistikud kui ka informaatikud ja võib tekkida küsimus, et mis uus asi see andmeteadus nüüd siis on. Kes on see andmeteaduse spetsialist, kelle väärtus nii ettevõtja kui ehk ka riigi jaoks oleks hindamatu - mida ta nii väärtuslikku teeb ja milline peaks olema tema haridus ja kogemused?

Küberrünne külmkapist? Tuleviku kuriteod

10. august 2019 @ 12.00-13.30
Räägime uutest tehnoloogiatest, nendega seotud võimalustest ja riskidest. Otsime digiarengute plusside ja miinuste vahel tasakaalu ning arutame, milliseid küsimusi peame tulevikku vaadates endalt ja ümbritsevatelt küsima, millele mõtlema.

Mis soost on ükssarvikud? Ehk tüdrukud tehnoloogiasse

10. august 2019 @ 14.00-15.30
Karm tõde on, et ülikoolide IT erialadel ja sellest lähtuvalt ka tööturul valitseb sooline lõhe. Nii inseneeria, teaduse kui tehnika valdkondades tegutseb palju rohkem mehi ning naiste erialavalikud saavad tihtipeale tõuke juba lapsepõlves kinnistunud soolistest stereotüüpidest lähtuvalt. Juba lapsepõlves kinnistunud stereotüübid juhivad noored tüdrukud erialavalikuil IT-st eemale kuigi ükski uuring ei tõesta, et poisid oleksid selles vallas kuidagi võimekamad. Kuidas tõmmata rohkem tüdrukuid tehnoloogia poole? Miks see üldse oluline on? Kes juhivad tulevikus maailma – kas poisid või tüdrukud? Mis loom on ükssarvik?

Rethinking the smart city

10. august 2019 @ 14:00-15:30
We all know what a smart home is, but what exactly is a smart city? Is it green, comfortable or something that evokes memories of a happy childhood? What does it offer to its people and businesses? Smart solutions eliminate traffic jams and parking problems, promoting green transport instead. They also offer effective and creative solutions for energy, water and waste disposal. Smart cities attract companies that think alike, creating a synergy of fresh ideas and people, cooperation and competition. Join us and let's rethink the city!

Kust leida vaikust?

10. august 2019 @ 18.00-19.30
Kuidas mõjutab pidev nutiseadmete kasutamine ja infoüleküllus meie ajutegevust ja vaimset tervist. Kuidas olla kohal, vaigistada segadust oma peas? Kas vaikus on hea ja müra halb?


Arvamusfestivali veebilehtarvamusfestival.ee

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.

23. juuni 2019

Nädala nopped nr 85

Käes see nüüd ongi! Suvi ja puhkus. Mul on suviste eesmärkide nimekiri osaliselt juba koos ning programmeerimine ja robootika sellest ei puudu. Üheks eesmärgiks on postitada blogisse iga nädal ühe arvutivaba programmeerimise tegevuse tutvustus. Esimene postitus on juba tehtud. Kuid minnes nüüd selle nädala uudisnupukeste juurde, siis seekord on ülekaalus toredad ja positiivsed uudised.

Nädala_nopped_85_Kristi_Proge_Blog
Foto: Pixabay
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.

18. juuni 2019

MOOC Programmeerimise alused vol 2

Programmeerimine on tore. Foto: Mimi Thian on Unsplash

Selle postituse kirjutan peamiselt positiivsete emotsioonide ajendil. Juhtus nõnda, et teatud asjade kokkulangemise tõttu pidin uuesti läbima Tartu Ülikooli MOOCi "Programmeerimise alused", mis on mõeldud algajatele Pythoni õppimiseks. Esimesest korrast kirjutasin siin. Selle aasta kogemus on üsna erinev kahe aasta tagusest ning peagi selgitan kuidas. N-ö disclaimeriks on see, et mul on läbitud ka keerulisem järelkursus "Programmeerimise alused 2", mis võis mulle anda teatud eelise.

Lühidalt kordan üle, kuidas "Programmeerimise alused" veebikursusel õppimine käib. Kaheksa nädala jooksul on sul iga nädal selgeks õppida uus teooriaosa. Abiks on rohked näited ja enesekontrolliküsimused. Iga nädala lõpeb kontrolltööga (tulemus peab olema vähemalt 90%) ning kolme kohustusliku ülesande ja ühe valikülesande lahendamisega, mis kõik peavad läbima auotmaatkontrolli (mistõttu lahendus peab vastama kõigile ülesandes kirjeldatud nõuetele).

Niisiis... minu "Programmeerimise alused" vol 2. See oli väga mõnus kogemus, sest seekord ei pidanud ma ülesannete lahendamisel pikalt nuputama, kuidas programm kirjutada, vaid kui olin ülesande kirjelduse läbi lugenud, siis ma oma vaimusilmas juba nägin, milline see programm peab olema, mis soovitud tulemuse annab. Ainuke vaev oli see ilma vigadeta valmis kirjutada. Huvitav oli seegi, et programmi tööd Thonnys kontrollides sain suuremast osast veateadetest aru, st oskasin nendele toetudes ruttu vea üles leida - see aitas puudused kiiremini kõrvaldada kui esimesel korral, mil veateated olid minu jaoks üsna arusaamatud. Nagu ikka, oli ülesandeid, mis nõudsid oskuste ja teadmiste uut moodi kasutamist ja suutsin seda ka üsna probleemivabalt teha. Peamiselt tänu sellele, et mul olid peas õiged seosed olemas.

See on nii lahe tunne, kui sa päriselt oskadki õigetes kohtades õiget koodi kasutada ja ei pea õige lahenduse kallal kõvasti ja mitu tundi vaeva nägema, nagu MOOCi kursusel sageli juhtub, eriti siis kui sul pole varasemat programmeerimise kogemust. 

Lisan veel, et "Programmeerimise alused" MOOCi autorid on kursust alates minu esimesest korrast edasi arendanud, mis on super. Kuigi mu mälu võib mind petta, siis mulle tundus, et ka ülesannete valik on veelgi mitmekesisem. Valikus on veelgi suuremat väljakutset pakkuvaid ülesandeid kui eelmisel korral, mis on äärmiselt tore. Mida keerulisema ülesande suutsin ära lahendada, seda suuremat rahulolu tundsin.

Nüüd võib tekkida küsimus, et mis selle postituse eesmärk on. Peamiselt ehk see, et programmeerimise õppimine ei ole lihtne, kuid vaev tasub ära. Mingi hetk tekivad sul peas õiged seosed ja siis on koodikirjutamine pigem nauding kui piin. 


Jälgi KristiProget ka Facebookis.

9. juuni 2019

Nädala nopped nr 84

Pean üles tunnistama, et olen üks lapsemeelne täiskasvanu, kes kaks viimast nädalat on Lego WeDo'ga mänginud: roboteid ehitanud ja neid tööle programmeerinud - tegevus, mis on ka lasteaialapsele jõukohane, aga minu fun'i see teadmine ei rikkunud. Uuel õppeaastal saab ilmselt jälle Legoga mängida, sest müügile tuleb Taani mängiasjatootja uus robootikakomplekt. Sellest ja paljust muust huvitavast ja ka muret tekitavast saab lugeda selle nädala uudiste kokkuvõttest.

Nädala_nopped_84_Kristi_Proge_Blog


Jälgi KristiProget ka Facebookis.

5. juuni 2019

Väljakutse 2019: arvutivaba programmeerimine

arvutita_programmeerimine_coding_unplugged_Kristi_Proge_Blog
Tõmba suvel juhe seinast välja. Foto: Paul De Los Reyes (Flickr)

Nagu kahel eelmisel suvel, siis esitan selgi aastal omale väljakutse. Seekord olen teemaks valinud arvutivaba programmeerimise, mis inglise keeles on computer science unplugged või unplugged coding.

Arvutivaba programmeerimise puhul on tegemist algoritmilist ja programmeerivat mõtlemist arendavate tegevustega, milleks ei lähe vaja arvutit. Sageli programmeeritakse hoopis teist inimest või lahendatakse ülesandeid töölehtel või mängitakse (laua)mängu. Arvutivaba programmeerimine on esimene samm programmeerimise õppimisel ja need tegevused sobivad igas vanuses õppuritele.

Internetis ringi tuuseldades leiab päris mitmeid arvutivaba programmeerimise tegevusi, kuid need on peamiselt ingliskeelsed. Ega mul ei olegi väljakutses plaanis hakata jalgratast leiutama, vaid juba olemasolevaid tegevusi eestipärastada, kuigi osa neist on vaid inspireeritud endal nähtud-kogetud tegevustest. Samuti püüan valida just sellised tegevused, mis sobivad võrselt hästi kooli ja koju. Teisiõnu sobivad need nii lapsevanematele lastega kodus toimetamiseks kui ka õpetajale koolitunnis kasutamiseks.

Kui soovid juba praegu tutvuda mõnede arvutivaba programmeerimise ülesannetega, siis vaata nii minu ja ka laste ühe lemmikraamatu "Tere, Ruby" töövihiku osa. Seal on arvutivabad ülesanded, mis aitavad arendada lapse algoritmilist mõtlemist. Siiski on arvutita programmeerimise ülesannete valik palju laiem ja minu suvi 2019 väljakutse eesmärk ongi erinevat tüüpi ülesandeid tutvustada.

Esimene arvutivaba tegevuse postitus ilmub enne jaanipäeva.


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.