torstai 26. maaliskuuta 2015

Koodausta

Neljännen ja osittain viidennen kierroksen aikana olemme tutustuneet koodaamisen ja ohjelmoinnin perusteisiin ja sanastoon. Neuvokaa minua, jos olen väärässä, mutta minusta nämä kaksi termiä menevät meillä suloisesti sekaisin. Eikö niin, että koodaaminen tarkoittaa viestin muuntamista toiseen, esim. tietokoneen ymmärtämään muotoon ja ohjelmointi näiden koodien järjestämistä ohjelmaksi, jota vaikkapa samainen tietokone sitten noudattaa.

Niin tai näin, puhuimme alkuun siitä, missä kaikkialla oppilaat arjessaan törmäävät koodiin ja ohjelmiin. Esiin nousi paljon erilaisia kodinkoneita ja lopulta jopa liikennemerkit, jotka ovat viestejä, jotka on ilmaistu geometrisinä kuvioina.

Aloitimme varsinaisen ohjelmoinnin pelaamalla Lightbot -peliä, joka on ladattavissa ilmaiseksi sekä Play-kaupasta että Appstoresta ja toimii myös internetselaimella. Pelissä ohjelmoidaan pientä robottia, jonka tehtävä on päästä siniseksi värjättyyn ruutuun ja sytyttää sinne lamppu. Tehtävät muuttuvat melko nopeasti haastaviksi ja vaativat paljon hahmottamista. Peli on hauska sellaisenaan, mutta tarjoaa myös paljon tilaisuuksia selventää ohjelmoinnin tavoitteita. On toisaalta se ja sama, miten tavoitteeseen päästään, mutta toisaalta mitä enemmän robotti tekee turhia toimintoja, esim. polkee paikallaan, sitä kauemmin siltä menee ohjelman suorittamiseen. Tämä pätee kaikkeen ohjelmointiin.



Varsinkin, kun ohjelmassa tulevat mukaan aliohjelmat (joita voi myös ohjelmoida toistensa sisälle ja muuta jännää!) pelissä päästään helposti käsiksi mm. ohjelmoinnin ekonomiaan. Kun tekee hyvän ja monipuolisen aliohjelman, sitä voi käyttää sellaisenaan monta kertaa eikä tarvitse aina kirjoittaa samaa litaniaa uudestaan. Innostuin pelistä niin, että latasin itselleni maksullisenkin version hintaan 3,99 € ja täytyy kyllä sanoa, että tehtävät muuttuvat niin pahoiksi, että minulla menee helposti ainakin juhannukseen saakka näiden kanssa. Mukaan tulevat konditionaalit ja ohjelmien keskeytykset.

Lightbotin jälkeen tutustuimme tunnin verran www.koodaustunti.fi -sivustoon. Siellä pääsee askeleen lähemmäs varsinaista koodikieltä, sillä ohjelmointi perustuu Scratch-tyyppiseen palikoista ohjelman rakentamiseen. Ideana on, että varsinaista koodikieltä on pätkitty valmiiksi sopiviin pätkiin, joita yhdistelemällä saadaan aikaan varsinainen ohjelma. Sivusto tarjoaa valtavasti tilaisuuksia kiinnittää huomiota mm. ohjeiden oikeaan loogiseen järjestykseen ja siihen, että tietokone suorittaa ohjeet aina täsmällisesti annetussa järjestyksessä.



Viimeiset pari tuntia käytimme animaatioiden ohjelmointiin Scratch Jr. -sovelluksessa, joka on valitettavasti tällä hetkellä tarjolla vain Applen Appstoressa. Idea on kuitenkin mahtava. Erilaisiin taustoihin voidaan lisätä erilaisia objekteja, jotka täytyy kaikki ohjelmoida tekemään jotain. Jos haluaa kissan siirtyvän neljä ruutua eteenpäin, on myös kerrottava milloin haluaa sen siirtyvän. Ohjelman herkkua ovat mielestäni ohjelman sisäiset viestit. Erivärisillä kirjekuorilla, lähtevillä ja saapuvilla, on mahdollisuus luoda toisistaan riippuvia toimintoja. Esim. lintu lähtee lentoon, KUN kissa on ensin kävellyt sen lähelle. Sama lähtevä viesti voidaan vastaanottaa useassa paikassa yhtäaikaa, joten on mahdollista, että tietystä toiminnasta seuraa monta eri toimintaa yhtäaikaisesti.



Hieman tämä meinaa mennä nyt jaarittelun puolelle, mutta www.scratchjr.org -osoitteesta löytyy ohjeita ja valmiita tehtäviä oppilaille. Koodauspäivä oli oppilaille ja opettajille todella motivoiva. Esim. Scratch Jr:ia voi hyvin käyttää muidenkin aineiden oppimateriaalien tuottamiseen. Oppilaat voivat itse animoida opetusvideoita käytännössä aiheesta kuin aiheesta. Ainoa haittapuoli on, että videoita ei saa mitenkään ohjelmasta ulos. Me löimme pädit suoraan dokumenttikameran alle ja katselimme sieltä.

Toivottavasti käyntini myös hälvensi hieman koodaukseen ja OPS:aan liittyviä pelkoja. Suunnitelmassahan mainitaan matematiikan alta löytyvän koodauksen tavoitteeksi ja arvioinnin kriteeriksi kuudennellakin luokalla, että oppilas osaa luoda ohjelman VISUAALISESSA ohjelmointiympäristössä. Varsinkin Scratchin varsinainen selaimessa ja tietokoneilla toimiva versio täyttää leikiten nämä vaatimukset. Tämä junioriversiokin on mielestäni jo vähintäänkin aika lähellä.

Koodaillaan!

Virtuaalimatka Eurooppaan

Oikein hävettää, kuinka vähän tänne on tullut näitä kirjoituksia rustailtua, mutta jotenkin on ollut näissä töissäkin tekemistä.

Yhtenä BYOD-kierroksen teemapäivänä toteutimme virtuaalimatkan eurooppalaisiin pääkaupunkeihin. Oppilaat jaettiin pareittain ja pareille annettiin kuvitteelliset 2000€ rahaa ja viikko aikaa. Tehtävänä oli suunnitella alusta loppuun matka johonkin eurooppalaiseen pääkaupunkiin.

Matkalle lähdettiin kotiovelta ja oppilaiden tuli ottaa selvää kaikista matkustamiseen liittyvistä aikatauluista ja järjestelyistä. Aikataulut, majoitukset, hinnat, etäisyydet, ikärajat, nähtävyydet, pääsymaksut yms. Kaikki tuli kirjata tarkasti ylös, jottei vain käy niin, että lento on eri viikolle kuin hotelli tai muuta vastaavaa.

Oppilaat aloittivat urakan luonnollisesti valitsemalla kohteen ja pohtimalla, mikä olisi paras tapa matkustaa sinne. Osa etsi edullisinta vaihtoehtoa, osa satsasi matkustuksen mukavuuteen. Esiin nousi ihan hyviä oivalluksia, kun huomattiin, että halvin lento saattoikin kestää välilaskuineen toista vuorokautta. Minä ilmoitin, että minulle on se ja sama, jos haluatte viettää 24 tuntia Amsterdamin lentoasemalla, kunhan kerrotte matkakertomuksessanne, kuinka saitte ajan kulumaan.

En paljon puuttunut rahankäyttöön. Budjetti oli määritelty ja päätösvalta matkalaisilla itsellään. 2000 € on sen verran paljon, että se riittää viikon reissuun varmasti, mutta ei mahdollista kaikkein hulluimpia ideoita, vaan valintojakin joutuu tekemään. Kaikki selvisivät kuitenkin paljon vähemmälläkin, joten jatkoa ajatellen budjettia voisi roimasti kiristääkin.

Kun matkustustapa ja -kohde olivat selvillä, oppilaat selvittivät, miten pääsevät lentokentälle tai satamaan. Kun matkassa on kaksi 11-vuotiasta, tulee eteen joitain esteitä ikärajojen suhteen. Tällaisissa tilanteissa (esim. hotellihuoneiden tai lentolippujen haku) toinen pareista maksoi aikuisen hinnan. Aina kun mahdollista, liikuttiin kuitenkin omana itsenään. Kukaan ei esim. saanut ajaa autolla tai lentää itse lentokonetta.



Puutuin loman suunnitteluun sen verran, että pelkälle löhölomalle ei ollut lupa lähteä, vaan koko loman ohjelma piti suunnitella etukäteen. Piti käydä katsomassa jotain nähtävyyksiä. Yöpymisestä piti maksaa. Jos halusi nukkua teltassa, piti selvittää leirintäalueiden hinnat ja aukioloajat. Jos puolestaan yöpyi (oikeiden) sukulaisten luona, piti huomioida budjetissa majoituksen kattavat tuliaiset Suomesta. Mielikuvitusta sai käyttää melko vapaasti, mutta kukaan ei ryöstänyt pankkia, voittanut lotossa lisää rahaa tai mitään muutakaan, mitä ei tapahdu oikeassakaan elämässä.

Koko reissu esiteltiin muulle luokalle aivan kuin oltaisiin oltu oikealla matkalla. Tehtävänä oli etsiä netistä tai lavastaa lomakuvia kohteesta. Oppilaat esittelivät mm. omia hotellihuoneitaan hotellin omien sivustojen kuvien avulla, ravintoloita ja ruoka-annoksia, joita olivat syöneet, katunäkymiä, selfieitä bussipysäkillä matkalla maailmalle ym. Lisäksi pelkkä budjetin erittely ja kuvashow ei riittänyt. Reissusta piti kertoa mahdollisimman elävästi ja muut saivat esittää kysymyksiä. Jotkut olivat selvittääneet esim. matka-ajankohdan keskimääräisen sään ja kertoivat, milloin satoi ja mitä he silloin tekivät.

Me käytimme kuvien ja kertomusten kokoamiseen iPadien Keynotea, mutta eipä tuolla esitystekniikalla tämän tehtävän suhteen ole juuri merkitystä. Itse prosessi oli kaikkein tärkein.

Mahtava päivä ja tämä jos mikä oli oppiainerajat ylittävä projekti!