4.2.2016

Koodaaminen kirjallisuudessa: Hello Ruby

Olen nyt muutaman viikon pakertanut koodauskurssilla, ja ehkä siksi en pystynyt lukemaan tätä kirjaa minään kaunokirjallisena mestariteoksena, vaan etsin kuumeisesti jokaisesta sanasta ja lauseesta koodauksen perusajatuksia, ja aika monta löysinkin! Seuraavaksi juonipaljastuksia.


Ruby ei kirjassa viittaa ainoastaan Ruby-tyttösen etsimiin jalokiviin, vaan myös ohjelmointikieleen.  Myös muut kirjassa esiintyvät hahmot edustavat jotakin koodikieliin liittyvää. Juoni on simppeli: Ruby lähtee etsimään vihjeiden perusteella jalokiviä, ja kohtaa matkallaan erilaisia auttajia. Rubyn toiminta perustuu ohjelmoinnillisen ajattelun esiintuomiseen: Ruby kyllä pukee kouluvaatteet päälle kiltisti, mutta ei ota alta pyjamaa pois, koska epämääräisissä ohjeissa isä ei riisumista erikseen maininnut. Suuri jalokivien etsintäurakka voisi musertaa tytön, ellei hän tajuaisi jakaa isoa ongelmaa nipuksi pieniä. Ohjelmoinnissa on laadittava hyvä suunnitelma jalokivien löytämiseksi ja mietittävä tarkoin etenemisjärjestys. 

Pingviinit (C++) opettavat, että koodikieli on kuin tarkkaa salakirjoitusta, jota pitää vain ryhtyä ratkaisemaan. Ne myös painottavat yhteistyön ja joukon voimaa. Rubiini löytyy. Lumileopardi taas painottaa kokonaisuuksien hahmottamista ja hyvän idean monistamisen tärkeyttä. Varsinkin aloittelijan kannattaa unohtaa pienet yksityiskohdat ja luoda jonkinlaiset tikkaat lisämäällä puolan jäljeen toinen puola ja kolmas puola ja... katolta saadaan poimittua toinen jalokivi. Ketut taas hoitavat puutarhaansa hieman tehottomasti, mutta onneksi valintaa ja totuusarvoja tuntemalla Ruby laittaa kasvipenkin kukoistamaan. Robotit tekevät kuppikakkuja saman reseptin mukaan toistamalla tai hieman reseptiä varioimalla ja muistuttavat, että koodimaailmassa arvostetaan jakamista. Viimeistä jalokiveä etsiessään Ruby tapaa Djangon ja lemmikkikäärmeensä Pytonin. Poikahahmo pitää metsää omanaan, mutta Ruby aikoo näyttää, että tytötkin osaavat koodata. Lopuksi Rubylla onkin kasa uusia ystäviä.

Kirja sopii jo jonkin verran suomea opiskelleelle (A2.2 - B1) kielensä puolesta. Opettajan apua kuitenkin varmaan kaivataan vähintäänkin sanastossa. Kappaleet ovat suhteellisen lyhyitä, joten kovin pitkään oppijan ei tarvitse ponnistella, vaikka kielitaso ei olisi aivan mukavuusalueella. Kuvat luonnollisesti auttavat ymmärtämään jonkin verran kehystarinan ohella. Suomen kielen opettajalle kirjan tekee mielenkiintoiseksi sadun jälkeen alkava tehtäväosio, jossa ohjelmoinnillista ajattelua harjoitellaan ja selitetään.

Tehtävissä harjoitellaan esimerkiksi yksiselitteisten ja yksityiskohtaisten ohjeiden antamista esimerkiksi hampaiden pesuun (imperatiivi) sekä käydään läpi monikon partitiivi ja viikonpäivät (isin-adverbeina) ja Rubyn vaatesäännöin. Totuusarvoja havainnollistetaan kuvalla ja kolmella väittämällä. Lukijan pitää löytää todet ja epätodet. Aikuisten kanssa olen leikkinyt samaa leikkiä suomen tunneilla siten, että parille kerrotaan kaksi totuutta ja yksi valhe itsestä. Kyselemällä parin on löydettävä valhe. Algoritmeja ja järjestettyjä käskyjonoja voi harjoitella etenemällä ruudukossa ylös, alas, oikealle ja vasemmalle etsien tietyt kuvat tietystä ruudusta. Toiminnalliseksi tämän tehtävän voi muuttaa siten, että hyvin järjestetyssä luokassa oppilas liikkuu pulpetin luota toiselle toisen oppilaan ohjeiden mukaisesti. Tietorakenteiden ja joukko-opin saloihin pääsee ruoan avulla: päärynän, parsakaalin ja porkkanan voi lajitella sen mukaan, ovatko ne (vihreitä) tai (vihanneksia) tai (vihreitä ja vihanneksia) tai (jotain muuta). Tällä tavoin suomen tunnilla voi laajentaa ruokasanastoa myös adjektiivien suuntaan. Ehkä luokittelu auttaa joitakuita myös muistamaan. Tuossa vain muutama esimerkki mahdollisista tehtävistä suomen tunnille.

Lisää tehtäviä ja opetusvinkkejä Rubysta verkossa: http://www.helloruby.com/
Koodaamisen perusteet luettavissa: http://2016-ohjelmointi.mooc.fi/viikko1/

Ei kommentteja:

Lähetä kommentti