Kuvatud on postitused sildiga arvutita programmeerimine. Kuva kõik postitused
Kuvatud on postitused sildiga arvutita programmeerimine. Kuva kõik postitused

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.