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.