'OLO-sessiot' aiheen arkisto

OLO-tapaus 7: Irkkibotti

Eräänä väsyneenä maanantaina kokoonnuimme T-talon neuvotteluhuoneeseen 7. OLO-tapauksen pariin. Avauksen aiheena oli ryhmätyönä tehtävä keskusteleva tekoäly, irkkibotti. Post-it-stormaus ei taaskaan ollut kovin hedelmällinen, joten asian ytimeen pääsimme paremmin vapaasti keskustelemalla. Assarimme Vesa, jolla oli huomattavan paljon kokemuksia erilaisista irkkiboteista, jakoi meille auliisti tietämystään ja myös mielipiteitään. Saimme siis kattavan Valinor-esittelyn. Tärkeänä vinkkinä hän sanoi, että tehkää siitä hyödyllinen, ärsyttävästä ei ole mitään iloa jälkipolville. Siispä aloimme kuumeisesti miettiä ominaisuuksia bottiimme ja kunnianhimoisesti sovimme, että jokainen kehittelee jonkin ominaisuuden ja koodaa sen.

Tapauksen avauksessa ehdotettiin mm. lämpötilan kertovaa ominaisuutta, horoskooppia, ruokalistaa ja keskusteluominaisuuksia. Lopulliseen bottiin päätyi kuitenkin suurimmaksi osaksi jotain muuta mitä aluksi oli väläytelty. Ihan hyvä niin. Tavoitteenamme oli kuitenkin OLO-sessiosta lähtien tehdä bottiin hauskoja hyöty-ominaisuuksia, joita ei aiemmissa boteissa ole. Lopullinen botti, rakas Hepalonimme, oli valmistuessaan monien suosikki, ja näillä näkymin se ei ole jäämässä tietokoneen kansioon pölyttymään. Hyödyllisyys ja hauskuus yhdistyivät botissamme ihastuttavalla tavalla, vaikka arvosana jäikin muiden, mielestäni “lelu-bottien”, varjoon.

- Asta

Voi oloilujen oloilu! Viimeinen OLO (8. vai 9.?)

Nyt loppui tuo kaikki syksyn maanantaipäivät riemukkaasti tai vähemmän riemukkaasti käynnistänyt kaksituntinen. Ensimmäinen OLO-sessiomme oli syyskuun ensimmäisillä viikoilla. Ovesta sisään astuessamme ei meillä ollut tietoakaan siitä, mitä tämä tällainen OLO-sessio tarkoittaa, miksi näitä on, ja mitä kaikkea viikottaisiin tapaamisiin saadaankaan mahtumaan! Assarit näyttivät pelottavan kaikkitietäviltä, “mitä minä nyt uskaltaisin kysyä, kun en yhtikäs mitään javasta tiedä”. Saimme A-neloset käteemme, kasan Post-It -lappuja viereen, ja siitä sitten vain lukemaan ja ajatuksia lapuille kirjoittamaan. “Mmitä ihmettä, filosofiaa, you must be kidding..! “

Jälkeenpäin ajateltuna Javaan tutustuttaminen Platonin ideaopin kautta on hauska ja rento tapa, mutta kun vielä java-arkuutta siinä vaiheessa potiessani luin kyseistä tekstiä, oli pääni aivan sekaisin ja Post-It -lappujen kirjoittaminen tuntui aivan mahdottomalta tehtävältä, “Mitä jos laitan tähän jotain, mikä on väärin tai entä jos se ei liitykään aiheeseen?” Sillä hetkellä toivoin, että olisin ollut sihteerinä; olisin kuin huomaamatta voinut jättää ajatustyön muille ja keskittyä lappujen kiinnittelemiseen seinälle. Onneksi joku muu sai idean ja ensimmäinen lappu oli syntynyt. Sen jälkeen oli helpompaa lähteä mukaan. Ensimmäiset “ajatukseni” syntyivät suoraan lähdetekstin käsitteistä. Omia aivoja piti oikein työstää löytämään uusia ideoita. Tämä ei onnistunut kovinkaan hyvin ensimmäisessä OLO-sessiossa, mutta jo toisessa ja kolmannessa tuntui, että jotain tästä uudesta ja jännästä pystyy jo sisäistämäänkin.

Viimeinen avaus oli jo kaksi viikkoa sitten. Tapaus oli järjestyksessään yhdeksäs (nollatapaus laskettuna mukaan) ja saimme miettiä kokonaisen tietokoneohjelman rakennetta ja toteutusta. Mitä kaikkea siihen tarvitaankaan. Ohjelmointitehtävissä vastaan jo tulleet graafinen käyttöliittymä ja säikeet ainakin! Tapauksen aihe ja vaativuustaso olivat hieman muuttuneet ensimmäisestä, mutta Javaan jo hieman perehtyneenä ja edellistä tapauksista kokemusta pohtimiseen saaneena, oli ajatuksetkin helpompi pitää aiheessa. Ryhmämme kokoontui viimeisen kerran yläkerran neukkarissa projektin suunnittelun merkeissä. Kyseessä oli pitchaus, ja jokainen esitteli kohta alkavan urakkansa aihetta ja sai palautetta siitä. Tunnelma oli jouluinen Vesan tarjoaman glögin ansiosta, mikä muistutti samalla tulevasta joulun vietosta Javaisissa merkeissä.

Tässä vaiheessa tuntuu vielä epätodelliselta lähteä luomaan omaa ohjelmaa tyhjästä ilman tarkoin määriteltyjä ohjeita tai assarointia. Luulenpa kuitenkin, että koodaamaan päästyäni, ei koodauksesta tule loppua, ja ongelmiinkin oppii löytämään itse ratkaisun!

-Meri

6. OLO – rekursio

Ensiksi voisi puida viimekertaista OLO-sessiota. Kysehän oli siis tapaus 6:n purku, aiheena rekursio. Koska toimin tapauksen sihteerinä, niin voisin hieman summata, mitä purussa pähkäilimme (mikäli nyt enää muistan). Kävimme läpi oppimistavoitteet, jotka olivat suoraan tapauksessa annetut tehtävät, sekä mietimme rekursion määrittelyä ja roolia Javassa. Päädyimme muistaakseni johonkin seuraavansuuntaiseen: Javassa rekursiota käytetään siten, että metodi kutsuu itseään itse, tai toisen metodin kautta. Monessa tilanteessa se lyhentää koodia ja helpottaa ohjelmoimista. Riskinä on kuitenkin ikuinen looppi, jos rekursiota käyttää väärin. Tärkeimmät pointit tämän välttämiseksi olivat varmasti seuraavat:

  1. Rekursiolla on päätepiste
  2. Rekursio etenee jatkuvasti tätä päätepistettä kohti

Robotin koodauksesta sen verran, että omalta osaltani en ollut kehuttavasti kyseisen labyrinttisuunnistajan luomisvaiheissa kovinkaan aktiivisesti mukana. Urakassa olisi ehkä voinut panostaa enemmän suunnittelupuoleen ja työnjakoon. Suunnitelutilaisuuden (jonne en itse päässyt) jälkeen olisi kaivannut ehkä jatkumoa yhteiselle tekemiselle. Kun muutaman kerran yksin yritin koodia katsella, niin en päässyt puuta pidemmälle. Ja kun sitten viimeisinä päivinä homma ilmeisen suurella intensiteetillä tehtiin (mistä kiitokset asianomaisille!) niin allekirjoittaneen aikataulu ei antanut periksi irroittautua mukaan. Toisaalta oma aktiivisuus asiassa ei varmastikaan olisi ollut kiellettyä, joten turha marmattaa. Noh. Botin kanssa toivottavasti toisin. Siperia opettaa, jne…

Koko kurssista vielä muutama henkäys. Ohjelmointi sujuu jo melkein rutiinilla ja jollain kierolla tavalla (ainakin aina näin jälkeenpäin) on melkeinpä miellyttävää kokemus pakertaa kokonainen perjantai parin viikon välein koodin parissa. Käsitekartan boomerangistakin on toivuttu (Vesa, milloin heität taas takaisin?) ja essee todettu paremmaksi vaihtoehdoksi hoitaa kirjallinen ulosanti. Vahva usko on, että joskus jopa maaliin tullaan. Koodausjoulua odotellessa. (ja kirjoitusvireitä pahoitellessa: en jaksa lukea läpi)

pakko kertoa!

Päiväni alkoi tänään hyvin, sillä kuulin, että VISA on lyhenne sanoista Visa International Service Association, ja tajusin yhteyden viime OLOsessioomme ja siinä käsittelemäämme aiheeseen, rekursioon. Sitten muistin esiintyneen lyhenteen PHP, ja voin vain todeta, että voiei… Mitä ihmettä, onko näitä vielä lisää?!! Noh, googletin vähän ja löysin Wikipediastakin yhdeksän, ja vielä kaiken lisäksi listattuna otsikon Rekursiivinen akronyymi alle!!

:D Tämä oli mielestäni erittäin hauskaa!

Öitä. -Meri

Virhe! 5. OLO-tapaus

Viime viikon OLO-tapaus käsitteli virheitä Javassa, sekä niiden ratkaisemista. Javan virheisiin pääsemme paneutumaan lisää, sillä myös seuraavan viikon Essee-tehtävä käsittelee näitä elämän vaikeaksi tekeviä epäonnistumisia. Nyt ollaan siis päästy aiheeseen, joka on ainakin allekirjoittaneelle hyvin lähellä sydäntä

Tutustuimme aiheeseen koodinpätkällä, johon oli mahdutettu monenmoista pikkuvikaa. Muutaman syntaksivirheen (kieliopillinen virhe) löysimme samantien, mutta muuten homma sujui aloituksessa lähinä peukaloita pyöritellen. Purussa tilanne oli jo hieman selkiytynyt ja loputkin toiminnalliset virheet (vika on koodin “logiikassa”) saatiin Vesan kunniakkaalla avustuksella poistettua. Tapauksessa huomasimme (kuten varmaan useimmat jo aikaisemmin koodatessaan), että virheitä tulee koodiin helposti ja huomaamattomasti. Syntaksivirheitä voidaan ehkäistä, tai ainakin niiden ratkaisua helpottaa, kun käännetään koodi usein. Näin esiin tulevat virheet on huomattavasti helpompi paikallistaa. Sama pätee osittain myös toiminnallisten virheiden kohdalla. Toiminnallisten virheiden ratkaisemista helpottaa myös koodin kommentointi, ja tarkoituksenmukainen nimeäminen, jolloin jälkeenpäin pystytään paremmin selvittämään, mitä edes haluttiin tehdä. Mutta nyt paneutumaan aiheeseen lisää esseen parissa…

Neljäs OLO-tapaus jo vauhdissa

Maanantai aamuna tosiaan alkoi 4. OLO-tapaus työotsakkeella Roboseikkailu. Puheenjohtajana on Henri ja minä toimin sihteerinä. Tapauksen avausosio sujui jo rutiinilla nopeasti, ja tuloksena oli hieno kartta postit-lapuista, jonka Iija on jo lisännyt tänne blogiin. Oppimistavoitteena kaikille on laatia ratkaisualgoritmi ensimmäiseen labyrinttiin ja sitten ryhmittäin yhteen lopuista kolmesta. Labyrinttien vaativuustaso nousee selvästi loppua kohden, ja siksi päätimme kasvattaa ryhmien kokoa samassa suhteessa vaativuuden kasvaessa. Itse olen miettinyt kolmatta labyrinttia, eikä algoritmin keksiminen ole ollut sen helpompaa kuin kakkosta tai nelosta pohtivilla, kirjoituksista päätellen tässä on tähän mennessä eniten töitä vaativa olo-tapaus.

Toinen oppimistavoite oli tehdä irkkikanava meidän olo-ryhmälle. Henri taisi alkaa tehdä sitä. Nimen keksimisessä oli vähän pohtimista, mutta päädyttiin vanhaan tuttuun hepalonsorkat -nimeen.

Toivottavasti osataan maanantaihin mennessä neuvoa robotit maaliin labyrinteissa.

-Anu

4-ryhmän tuskailuja (4. OLO)

OLO tapaus 4 tehtävä 4 on osoittautunut melko haasteelliseksi. Lyötyämme viisaat päämme yhteen (ja tutkailtuamme edellisten vuosien algoritmeja) tulimme siihen lopputulokseen, että robottia voisi ohjeistaa pyrkiä siirtymään ruudusta toiseen aina tietyssä järjestyksessä (esim. ensisijaisesti pohjoiseen, jollei se onnistu tai robotti on siellä jo ollut, pyrkii se seuraavaksi itään, sitten etelään jne.). Robotti tulee myös ohjeistaa pitämään esim. koordinaatistolla lukua siitä, missä ruuduissa se on jo ollut ja umpikujan tullessa eteen (tai esim. sen kuljettua silmukan kokonaan läpi) palaamaan kulkemaansa reittiä takaisin, kunnes se tulee ruutuun, josta voi mennä sellaiseen ruutuun, jossa se ei vielä ole ollut. Esiin otettiin myös mahdollisuus muodostaa eri vaihtoehdoista pino, josta eri suuntavaihtoehdot voi ottaa.

Hedelmällistä yhteistyötä, mutta assaria tuli välillä ikävä. ;-)

4-ryhmän 4 hurjaa

Henri, Iija, Meri ja Olli

Vaikeeks menee

Neljäs OLO-tapaus on mielestäni mielenkiintoinen, mutta itsenäisenä oppimistehtävänä varsinkin minulle aika haasteellinen. Edellinen tapaus, jossa tutkittiin tietorakenteiden mahdollisuuksia, oli hieman helpompi tehdä, kun tarvitsi miettiä vain yksi asia kerrallaan, ja tiedonhakuhan ei sinänsä ole kovinkaan vaikeaa.

Tänään istuimme Ullan kanssa alas tutkimaan 2. asteen labyrinttia, jonka olimme saaneet oppimistehtäväksemme. Aloitimme miettimällä 1. tehtävää, jossa on kaikkein yksinketaisin labyrintti. Kun olimme saaneet paperille jonkinlaisen algoritmin robottia varten, pohdimme, mitä siihen pitäisi lisätä tai miten sitä tulisi muokata, jotta robotti löytäisi määränpäänsä myös 2. tehtävässä, jossa käytävät saattavat haarautua ja johtaa umpikujaan. Tuskailimme while- ja if-lauseiden parissa tovin jos toisenkin, ja huomasimme että Java-taitomme ovat vielä jokseenkin puutteelliset :) T-talon ruokala alkoi houkuttaa, kun ratkaisua ei tahtonut löytyä millään.

Katsotaan tuoko loppuviikko oivalluksia, vai pitääkö meidän esitellä ensi viikon OLOssa hieman vajavainen algoritmi… Vaikeaa kun on myös omien ratkaisujen oikeellisuuden arvioiminen. Vaikka saisi kelvollisen näköisen koodin aikaan, ei tiedä onko se lähelläkään toimivaa :)

Mietinpä vaan miten ne 3 ja 4 onnistuvat, kun 2 oli meille vaikea.

Onnea yritykseen ja jaksamista kaikille!

- Asta

Kolmas Oloilu

Kolmas OLO-sessiomme starttasi taas maanantaiaamu-unisine jäsenineen. Edelliskerran oppimistavoitteet purettiin vuorotellen luettelemalla looginen ohjesarja helpoilta kuulostaville toiminnoille. Meille kaikille itsestäänselvät allekkain yhteenlasku ja teen keittäminen saatiin kirjattua pitkiksi ja moniosaisiksi ohjeistuksiksi. Tarkoituksena oli siis miettiä, mitä tämänkaltaisia loogisia päättelyketjuja ja ohjeistuksia voimme löytää Javasta. Pitkät ja monimutkaiset komennot selkeytyvät ja helpottuvat, kun niitä miettii ja pätkii lyhyemmiksi ja selkeämmiksi ennen tekstieditoriin syöttämistä. Vaiheittain tehtynä koodi ja sen kirjoittaminen eivät vaikutakaan enää niin toivottomilta. Tämän sain jo itsekin ihan käytännössä huomata yrittäessäni saada kolmea sisäkkäistä ehtolausetta valmiiksi samanaikaisesti: eipä onnistunut!

Purku sujui edelliskertaa nopeammin, ja kuten jo todettu, aihekin oli selkeämpi ja ymmärrettävämpi. Ehkä olimme jopa päässeet vähän sisälle Javaan… Pääsimme aloittamaan seuraavan tapauksen käsittelyn. Puheenjohtajana toimi Teemu ja minun tehtäväni oli sihteerinä kiinnitellä tarralappuja seinälle.

Kolmas tapaus saikin meidät hiljaisiksi. Post-it -lappuja kertyi taululle ennätysmäärä (liekö rutiinia kertynyt), mutta aihe oli selkeästi edellisiä vaikeampi. Jäsentely ja pohtiminen ei siis ollutkaan yhtä helppoa. Siitä, mitä eri tietorakennetyypit ovat, mitä niillä voi tehdä, miten käyttää jne. taisivat olla lähes kaikille täysin uusi asia. Sampolla riitti työtä aiheen valaisemiseksi, kun vuorotellen katsoimme hölmistyneen näköisinä koodinpätkää minkä Henri kirjoitti. On siis aihetta pieneen ja ehkä laajempaankin aiheeseen tutustumiseen. Päätimme yhdessä kaikki selvittää seuraavaksi kerraksi eri tietorakennetyypit, niiden ominaisuudet, käytön jne. Toivottavasti olemme huomisen jälkeen viisaampia ja enemmän perillä aiheesta. Tänään, vielä edellisestä ohjelmointitehtävästä toipuessani sain ilokseni huomata, että uusi on julkaistu ja tulemme siinä tarvitsemaan näistä tietorakennetyypeisä mm. hakurakennetta ja taulukointia. Elikkäs nyt aiheesta kiinni ja tietorakenteiden perusteet selviksi!

Huomiseen!

-meri

Toinen OLO-tapaus + yleistä vuodatusta

Toisen OLO-tapauksen aiheena oli ns. loogiset päättelyketjut. Pj:na toimi Ville ja sihteerin työt hoiti Ulla. Sekä itse OLO-tapauksen aikana että myös omalla ajallamme vietimme leppoisia hetkiä miettien kuinka antaa mahdollisimman yksiselitteiset toimintaohjeet varsin yksinkertaiselle pikkuveljelle erinäisissä visaisissa tehtävissä. (mm. Turtles-paidan etsiminen!!!) Oppimistavoitteena edellämainitun lisäksi oli pohtia, miten ihmeessä tämä kaikki jälleen kerran liittyy javaan. Purkusessiossa päädyimme siihen että java on yhtä tyhmä kuin pikkuvelikin, paitsi tyhmempi.

Mukavaa huomata ettei itse ollut ainoa joka lauantai-iltapäivänä nivelet jäykkinä naputteli esseetä ja koetti saada jonkintapaisia ehjiä ajatuksia kokoon. Lohduttavaa(?) on myös se, että tämän viikon ohjelmointiharjoituksen väsääminen tulee jäämään vielä enemmän viime tippaan!! Jea. Paniikinomaiset tuntemukset valtaavat mielen ja kehon kun koodaus ei vain tunnu onnistuvan. Kämppiskin haukkuu nörtiksi ja kaikki on kurjaa. No ei. Ensimmäisestä essee-tehtävästä vielä sen verran, että itse koin sen suht hyödylliseksi. Täysin java-ummikkona helpotti kummasti kun oli pakko ottaa itse selvää eri termeistä ja käsitteistä ja siitä, mikä niiden rooli ohjelmoinnissa oikeastaan on, vaikka toki alkuunpääseminen tuntuikin ensin täysin mahdottomalta. Opin, jos nyt en paljon niin ainakin vähäsen. Paljon enemmänkin tästä tehtävästä olisi voinut saada irti jos vain olisi jaksanut/ehtinyt/viitsinyt/muistanut/yrittänyt panostaa hitusen kovemmin.

-Ulla

Seuraava sivu »


 

marraskuu 2009
ma ti ke to pe la su
« tam    
 1
2345678
9101112131415
16171819202122
23242526272829
30