29. september 2017

Nädala nopped

Nädala nopped - Kristi Proge blog
Foto: DigitalRalph

27. september 2017

TED Talk "What intelligent machines can learn from a school of fish"

Robootikainsener Radhika Nagpal räägib oma TED kõnes "What intelligent machines can learn from a school of fish" kollektiivsest intelligentsusest. Teda huvitab, milliseid reegleid järgivad kala- või putukaparved selleks, et toimida ühtse meeskonnana vaatamata sellele, et neil puudub juht. Ta rakendab neid samu loodusest õpitud reegleid oma töös, et programmeerida mitmesajast robotist koosnevad parved töötama ühise eesmärgi nimel. Tulevikus võivad sellised robotparved aidata meil ehitada tammisid, mis meid tulvavee eest kaitsevad, või taimi tolmendada või aitavad meil silma peal hoida korallrahudel. Radhika Nagpal'i kõnet illustreerib rohke pildi- ja videomaterjal.


25. september 2017

Mida on sipelgatel pistmist suurandmetega?

Foto: Andrew ja KamiPhuc
2007. aasta suvi. iPhone on just välja tulnud ja suurimad fännid on nõus oma ema panti panema, et seda omale osta. Mõiste suurandmed* (big data) on vaid väheste huulil, kuid nende plahvatuslik juurdekasv on juba alanud. Sel samal suvel loen mina ajakirjast National Geographic (NG) artiklit Swarm Theory, milles kirjutatakse kollektiivsest intelligentsusest loomariigis. See on minu jaoks siiani üks mõtlemapanevamaid artikleid, mida 'kollase ristküliku' ajakirjast lugenud olen. Kümme aastat hiljem on iPhone jõudnud tänu oma soodsale mudelile SE ka väiksema sissetuleku ja mitte-nii-suurte fännide taskusse ning suurandmetest on IKT maailmas (ja mitte ainult) saanud oluline sõna. Lausa nii oluline, et on neid, kes nimetavad andmeid uueks mustaks kullaks (data is the new oil). Ja ühtäkki avastan end taas mõtisklemas artikli üle, mida aastal 2007 lugesin.

Nagu mainitud, kirjutatakse artiklis kollektiivsest intelligentsusest (swarm intelligence) loomariigi näitel. Mesilaste, kalade, tuvide ja karibuude kõrval köidab mind enim sipelgate tõhus töökorraldus. Nimelt oskab iga sipelgas otsustada oma töökorralduse üle nii, et nende pesakond toimiks efektiivselt. Näiteks oskavad nad otsustada, kas on õige hetk minna välja toitu otsima või ei. Pessa jäämise põhjuseks võib olla pesa läheduses passiv näljane sisalik, vähene saak või hoopiski vajadus oma energia vihmavalangus kannatada saanud pesa parandamisse rakendada. Sipelgad toimivad nagu üks meeskond, kuid samas puudub neil juht, kes käske jagab. Seda nimetataksegi kollektiivseks intelligentsuseks. (NG artiklist saab lähemalt lugeda, kuidas sipelgad oma otsuseid teevad.)

Artiklis tutvustatakse kahte Ameerika Ühendriikide ettevõtet, kes on võtnud eeskuju sipelgatelt. Üks neist on üle riigi tegutsev tootmisettevõte, mille tootmist mõjutab tugevalt elektri hind, mis võib osariikide lõikes oluliselt kõikuda. Kulude kokkuhoiu eesmärgil panustas ettevõte arvutimudeli väljatöötamisse, mis arvutab iga päeva hommikuks välja, millisesse tehastesse iga veoauto toodangule järele saadetakse. Kui varem lähtuti vahemaast, siis nüüd võetakse aluseks ka mitmeid teisi muutujaid sh ilmastikuolud ja tehaste tootmisgraafikud.

Teine näide on lennundusettevõte, mis kasutab arvutimudelit, et selgitada välja, millise värava juurde iga lennuk saabudes liigub ja millisest väravast iga lennuk väljub. Lennundusettevõtte eesmärk oli, et lennukid veedaksid maapinnal võimalikult vähe aega. Varem oli igal lennukil oma kindel värav, kuid nüüd enam mitte - kasutatakse seda väravat, mis antud hetkel on parim valik. Uus lähenemine aitas ettevõttel muuta töökorralduse palju sujuvamaks ja tõhusamaks.

Need näited NG artiklist puudutavad ettevõtteid, kuid artikli lõpus avaldatakse lootust, et kollektiivsest intelligentsust hakatakse kasutama selleks, et muuta inimühiskonna toimimine efektiivsemaks.

Kümme aastat hiljem saab öelda, et sellega on algust tehtud. Melbourne'is Austraalias suudab trammiliiklus automaatselt kohanduda ootamatute sündmustega nagu looduskatastroof või linnas toimuv suursündmus. San Paolos Brasiilias optimeeritakse bussiliiklust vastavalt sellele, kus on suurem nõudlus või millised marsruudid on kõige kiiremad. Kuidas on see saanud võimalikuks, et nende linnade ühistransport on nagu sipelgad, kes suudavad kohaneda tekkinud olukordadega? Need linnad kasutavad ühistranspordi tõhusama toimimise korraldamiseks ära suurandmete potentsiaali.

Ühistransport on ainult üks näide, mida saab suurandemete analüüsi abil efektiivsemaks muuta. Suurandmeid on juba kasutatud ka kuritegevuse ennetamiseks ja sõidukite heitgaaside vähendamiseks optimeerides valgusfooride tööd. Neid näiteid, kuidas suurandmeid kasutatakse ühiskonna hüvanguks on veel, kuid üldine seisukoht on, et suurandmete tegelik potentsiaal on veel kasutamata. Selleks on mitmeid põhjuseid nagu see, et suurandmete hulk on tohutu ja sealt kasulike ja usaldusväärsete andmete eraldamine on keeruline või see, et suurandmete kogumise ja kasutamisega kaasnevad keerulised küsimused nagu privaatsus, andmekaitse jne.

Kui ma kümme aastat tagasi juurdlesin selle üle, kuidas inimesed saaksid loomariigist eeskuju võttes ühiselt ühiskonna toimimist tõhusamaks muuta, siis mul eriti palju ideid ei tekkinud. Aga nüüd on juba mitmeid näiteid, kuidas suurandmete abil seda on tehtud. Arvatavasti on see alles algus ja tulevikus on oodata veel palju lahendusi, mis andmete pakutavaid võimalusi ühiskonna heaks ära kasutavad.

*Tänapäeval, mil väga paljusid toiminguid tehakse elektrooniliste seadmetega, koguneb nende logifailidesse hulgaliselt andmeid. Niisuguste laekunud andmete kogused võivad olla väga suured ja ka andmed ise üsnagi eriilmelised: info mobiiltelefonide kasutamise, ühistranspordi, pangakontode, elektritarbimise ja paljugi muu kohta. Selliste suuremahuliste andmete kohta kasutatakse ühist nimetust suurandmed (big data). Allikas

Kasutatud materjalid
The Genius of Swarms (NG artikli pildivaba versioon, millele on vaba ligipääs)

22. september 2017

Nädala nopped

Apple'i robot Liam - Nädala nopped - Kristi Proge blog
Foto

18. september 2017

Raamat "Nupula" õpetas mind mõtlema

Paar päeva tagasi mõtlesin oma kooliajale ning meenusid matemaatikatunnid ja matemaatikaõpetaja. Ma arvan, et ma ei liialda, kui väidan, et minu matemaatikaõpetaja oli/on üks vähestest õpetajatest, kes tegeles nutikamate õpilastega. Nimelt lasi ta taibukamatel põhikooliõpilastel lahendada nuputamise ülesandeid ja andis iga lahenduse eest punkte, mis ta kokku liitis ja tabelisse kandis. Niimoodi tekkis meil, õpilastel, omavahel väike võistlusmoment. Minulgi oli au seda tabelit vahel juhtida. Tänu nuputamise ülesannetele arendasime oma matemaatilisi võimeid ja kasvas huvi matemaatika vastu. Matemaatikaõpetaja, kellest jutt on, on "Nupula" raamatute autor Aavo Lind.

Aavo-Lind-Nupula-raamat-Kristi Proge blog
Raamatu tutvustus
Humoorikalt illustreeritud raamat sisaldab huvitavaid ülesandeid matemaatikast ja füüsikast. Raskusastme järgi on nad jaotatud kolme ossa. Iga osa lõpus on näpunäited ja vastused, mis on abiks raskemate ülesannete lahendamisel.
"Nupula" on mõeldud eelkõige IV-VI klassi õpilastele, kuid pakub nuputamisrõõmu ka vanematele.


"Nupula" (Valgus 1988) ja "Nupula jälgedes" (Valgus 1988) raamatud olid mul kodus olemas ning tegelesin nende ülesannete lahendamisega ka vabal ajal. Need raamatud õpetasid mind loogiliselt mõtlema ja probleeme lahendama - oskused, mis tulevad kasuks nii elus kui ka programmeerimisel.

Vaevalt need raamatud mul olemas oleks olnud, kui mu isa selliste asjade vastu huvi poleks tundnud. Temalt sain ka abi, kui mõni nuputamisülesanne selgitust vajas ja vahel mõne vihje, kuidas lahenduseni jõuda. Samas ei teinud ta kunagi minu eest neid ülesandeid ära, pidin ikka alati ise lahenduse välja mõtlema - lähenemine, mida ma ka oma õpilaste puhul kasutan.

Uustrükke "Nupulast" pole tehtud ja raamatupoodidest seda osta ei saa. Siiski järelturult võib seda täitsa leida. Näiteks Raamatukoi veebipoes on "Nupula jälgedes" hetkel täitsa olemas.

Jälgi KristiProget Facebookis.

15. september 2017

Nädala nopped

Nädala nopped - Kristi Proge blog
Foto:  John Christian Fjellestad

11. september 2017

5 lemmikut programmeerimismängu

Olen paar viimast suve veetnud vabadel hetkedel mänguliselt programmeerides. Parematest mängudest olen kirjutanud lähemalt blogis. Kuna suvi on selleks korraks läbi, siis otsustasin välja valida 5 programmeerimismängu, mis on minu kõige-kõige lemmikud. Toon lühidalt välja ka põhjused, miks just need esiviisikusse jõudsid.

top 5 programmeerimängu - Kristi Proge Blog
  1. Bit by Bit on üks lahedamaid programmeerimismänge, mida olen mänginud ja lausa sõltuvust tekitav. Mulle väga meeldib selle mängu idee ja see, et keerulisematel tasemetel peab tegelaste liikumised kaalutletult planeerima ja lahendused mõttes läbi mängima nii, et ükski nüanss märkamata ei jää. Õpetab mõtlema.
  2. Lightbot oli minu kõige esimene programmeerimismäng ning see oli väga positiivne ja kaasahaarav kogemus. Mäng on hästi läbi mõeldud, tõesti tutvustab programmeerimise põhikonstruktsioone ja arendab algoritmilist mõtlemist.
  3. Cargo-bot. Meenutades oma kogemust, siis tegi see programmeerimismäng mind kurjaks, sest ma ei suutnud tabada ära programmide koostamise loogikat. Vaatamata sellele kuulub Cargo-bot minu viie lemmiku programmeerimismängu hulka, sest mängu idee on väga hea - mängija peab mõtlema nii seda, mis järjekorras kaste ümber paigutada, et saada nõutud tulemus, kui ka seda, kuidas kraana seda lahendust sooritama programmeerida. Tasemete läbimiseks peab tõesti oma aju tööle panema! Suureks plussiks on see, et saab valida nelja erineva raskusastme vahel, seega peaks igaüks endale jõukohased ülesanded leidma ega saa kurta, et mäng on liiga kerge.
  4. Kodable. Eelmistega võrreldes on programmeerimismäng Kodable palju lihtsam, kuid just selles ta võlu seisnebki. Mäng on lihtne, aga samas vahva ja õpetab programmeerimise algtõdesid. Sobib eelkooliealistele ja algklassi õpilastele, kuid samas võib korraldada suuremate lastega (või lausa täiskasvanutega!) võistluse, et kes etteantud aja jooksul kõige rohkem tasemeid suudab läbi teha. Omast kogemusest võin öelda, et võistlusmoment tekitab hasarti vanusest sõltumata.
  5. codeAcademy & the Foos on pigem mängude maailm kui üks mäng. Seal on mänge, mis on jõukohased koolieelikutele ja on mänge, mis on suunatud kuni 9-aastastele koolilastele. Lai sihtrühm on üks põhjus, miks codeAcademy & the Foos programmeerimismängude top 5 hulka jõudis. Teine põhjus on, et mängu tegijad on asjad pedagoogiliselt hästi läbi mõelnud. 
Jälgi KristiProget Facebookis.

8. september 2017

Nädala nopped

Nädala nopped - Kristi Proge blog
Stseen filmist "Ghost in the Shell 2.0". Foto: Tim Douglas

5. september 2017

8 ürituse ideed programmeerimisnädalaks Code Week

Programmeerimisnädal Code Week toimub sel aastal 7.-22. oktoobril. Tegemist on üritusega, mille algatas Euroopa Komisjon viis aastat tagasi. Selle aja jooksul on kunagisest Euroopakesksest sündmusest saanud ülemaailme koodimisaktsioon.

Programmeerimisnädala Code Week eesmärk on tutvustada koodimist neile, kes sellega varem kokku puutunud pole ning näidata, et programmeerimine on tore ja kõik saavad sellega hakkama. Tegevuste korraldamisel lähtutakse põhimõttest kogukonnalt kogukonnale ehk initsiatiiv peab tulema kogukonna seest ning kaasama peaks inimesi igast vanusest ja erinevatelt elualadelt. Programmeerimisnädala üritustel osalemine peaks olema vabatahtlik ning tegevus ise kestma umbes 1-2 tundi.

Code Week'i ametlikult leheküljelt codeweek.eu leiab lühikirjeldused üritustest, mida maailma eri paigus programmeerimisnädala raames korraldatakse. Eestlased on aktiivsed korraldajad, näiteks 2016. aastal toimus Eestis 296 programmeerimisnädala Code Week üritust, mida oli ühe elaniku kohta keskmiselt rohkem kui üheski teises riigis.

Ürituste korraldamiseks saab taotleda stipendiumi nii Google'ilt kui ka HITSAlt. Esimese tähtaeg on selleks aastaks möödas, kuid HITSAle saab ideekavandeid esitada kuni 17. septembrini.

8 ürituse ideed programmeerimisnädalaks Code Week

Pakun omalt poolt välja 8 ürituse ideed, mida programmeerimisnädala Code Week raames korraldada. Nende valikul lähtusin tegevustest, millega mul endal on kokkupuude olemas. Mitmete tegevuste kirjeldused on koolikesksed ja seotud õpilastega, nende vanemate ja õpetajatega, kuid see ei tähenda, et sihtgrupiks ja juhendajateks kedagi teist ei või valida.

8 ürituse ideed programmeerimisnädalaks Code Week - Kristi Proge blog

#1 Kooditund. Kutsuge koolis õpilasi, lapsevanemaid ja õpetajaid osalema kooditunnis (Hour of Code) ja tehke läbi üks kooditund code.org keskkonnas. Kooditundide valik on lai, neist ühest olen lähemalt kirjutanud siin. Juhendajateks kutsuge oma kooli programmeerimiskogemusega õpilased.

#2 Mänguline programmeerimine õpetajatele. Paigalda kooli tahvelarvutitesse üks kaasahaarav programmeerimismäng (minu mängude top 5 on siin). Õpilased käivad tahvelarvutitega programmeerimisnädalal koolimajas ringi ja kutsuvad õpetajaid läbi mängu koodimist õppima. Täpsemalt on seda tegevust kirjeldatud selles Koolielu artiklis.

#3 Scratchis programmeerimise õpituba. Õpitoas kasutage Scratchi keskkonnas olevaid juhendeid, näiteks sünnipäevakaart või nimetähtede animeerimine, mille abil saavad töötoas osalejad esmase programmeerimiskogemuse. Juhendajateks võivad olla Scratchis programmeerimise kogemusega õpilased.

#4 Haridusrobotite programmeerimise võistlus. Kasutades haridusroboteid (Beebot, Ozobot, Edison vms), korraldage varasema programmeerimiskogemuseta õpilastele võistlus. Õpilased töötavad paaris või kuni 4-liikmelistest rühmades ja nende ülesanne on programmeerida haridusrobot teerada läbima. Võidab meeskond, kelle robot kõige kiiremini finišisse jõuab. Enne võistlust tutvustage osalejatele haridusrobotit ja kuidas seda programmeeritakse.

#5 Arvutita programmeerimise vahetund. Esmatutvus programmeerimisega võib toimuda ka arvutita, kasutades selleks mänge, milles mängijad arendavad programmeerivat mõtlemist. Ideid arvutivabaks programmeerimiseks leiab näiteks siit ja siit.

#6 Sonic Pi õpituba algajatele. Korraldage Sonic Pi õpituba algajatele, kus osalejad programmeerivad paaris näiteks mobiilihelina ja paigaldavad selle oma telefoni. Nooremad õpilased võib töötuppa kutsuda koos vanemaga. Sonic Pi eestikeelsed õppematerjalid leiab siit.

#7 Raspberry Pi või Arduino töötuba "Vilkuv LED". Töötoas osalejad töötavad paaris ja ehitavad joonise järgi vooluringi, kuhu on ühendatud LED. Kui vooluring valmis, panevad nad LEDi programmiga vilkuma. Programm võiks olla töötoa läbiviijate poolt eelnevalt valmis kirjutatud.

#8 Raamat "Tere, Ruby!" eelkooliealistele ja algklassidele. Lasteaias ja 1.-2. klassis lugege jutustust raamatust "Tere, Ruby!" ja lahendage töövihiku osas olevaid ülesandeid.

Jälgi KristiProget Facebookis.

3. september 2017

Mäng: Rubiku kuubik

Suvel 2017, alatest juulist kuni augusti lõpuni on minu eesmärk mängida igal nädalal ühte mängu, mis õpetab programmeerimise algtõdesid ja/või arendab algoritmilist mõtlemist ja/või probleemide lahendamise oskust ning kirjutada sellest mängust ülevaade oma blogis. Nutiseadmetele mõeldud mänge mängin Androidil.


Rubiku kuubik


Reedel algas september, mis tähistab ühtlasi ka suve lõppu, mis omakorda tähendab, et täna on suvi 2017 väljakutse viimane postitus. Viimaseks mänguks pole ükski mänguäpp ega veebimäng, vaid hoopiski juba üle 40 aasta lastelele ja täiskasvanutele ajugümnastikat pakkunud mänguasi Rubiku kuubik.
Mäng Ruubiku kuubik - Kristi Proge blog
Foto: Sonny Abesamis

Rubiku kuubiku leiutas ungarlane Ernő Rubik 1974. aastal. Rubiku kuubik on kuup, mille iga tahk on erinevat värvi ja iga tahk koosneb omakorda üheksast väiksemast kuubikust. Kuubi külgi saab keerata. Mängu eesmärk on segi aetud värvide algseisu taastamine. Rubiku kuubiku lahendamine arendab loogilist ja ruumilist mõtlemist.

Rubiku kuubiku lahendamine

Kuubiku lahendamine niisama proovides on inimesele üleliia keeruline. Üks külg ehk värv kokku saada on lihtne, aga kõikide külgede kokkusaamiseks on vaja plaani. Selleks on olemas lahenduseeskirjad ehk algoritmid. Algoritme on mitmeid, ühed sobivad algajatele, teised ekspertidele.

Rubiku kuubiku lahendamises toimuvad muidugi ka võistlused. Võisteldakse nii selles, kes saab kuubiku kokku kõige kiiremini (maailmarekord on 4,73 sek) kui ka selgitatakase välja, kes suudab värvide algseisu taastada kõige vähema arvu liigutustega (maailmarekord on 19 liigutust).

Minu kogemus

Rubiku kuubik on mulle tuttav juba lapsepõlvest. Lapsena sai seda krutid küll, aga muidugi kokku panna kuubikut ei õnnestunud. Tol ajal ma veel ei teadnud, et ilma algoritme tundmata see polegi võimalik.

Tänu mõnele noorele sugulasele, puutusin suvel taas kokku selle väidetavalt maailma kõige rohkem müüdud mänguasjaga. Seekord olin juba targem ja otsisin internetist lahendusi. Vaatasin neile isegi mõned korrad otsa, aga nende abil lahendamiseni ei jõudnud. Kuid see ei tähendanud, et kuubik kokku panemata jäi. Äpipoest leitud rakenduse abil sai algseis taastatud, samas erilist mõttetegevust see ei nõudnud. Ehk järgmisel suvel võtan asja tõsisemalt käsile ja püüan siis juba algoritmide abil Rubiku kuubiku kokku panna.

Rubiku kuubik ja programmeerimine

Võib ehk tekkida küsimus, mis seos on Rubiku kuubikul programmeerimisega. Otsest seost ei olegi, kui sa ei taha just koostada programmi või äppi, mis aitab Rubiku kuubiku lahendamisel. Samas olles lugenud ühe programmeerija kogemusest, kuidas ta õppis Rubiku kuubikut lahendama, selgus, et mõlema õppimisprotsess ja sellega kaasnevad tunded on väga sarnased. Teine programmeerija-kuubikulahendaja toob välja mitmeid sarnasusi programmeerimise ja Rubiku kuubiku lahendamise vahel, nimelt igale probleemile on lahendus, kõige paremini õpid siis, kui probleemile ise lahenduse leiad, lahenduse leidmisel aitab internet ja teistelt õppimine aitab oma oskusi lihvida.

Selle postituse ja suvi 2017 väljakutse lõpetuseks lisaksin omalt poolt veel seda, ja tahtmata seejuures olla kriitiline mängulise programmeerimise suhtes, et mõnes mõttes on Rubiku kuubiku lahendama õppimise ja programmeerima õppimise vahel rohkem sarnasusi kui programmeerimismängude mängimise ja programmeerima õppimise vahel.


Jälgi KristiProget Facebookis.

1. september 2017

Nädala nopped

Nädala nopped Kristi Proge Blog
Foto: Maurizio Pesce