Arkisto syyskuu, 2007:lle

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

One world. One vision. One sandwich.

Lupasin kirjoitella algoritmeista, joten here goes. Kotitehtävänä oli muodostaa ennalta määrättyjä yksinkertaisia algoritmeja. Lähtökohta oli laatia jokin ohje äärimmäisen täsmälliselle pikkuveljelle, joka ei kuitenkaan nuoresta iästä johtuen osaa ajatella itsenäisesti. Siispä oli mietittävä välttämättömät esitiedot ja step-by-step-ohjeet tehtävän suorittamiseen.

Minun tehtäväni oli kehittää ohjeet voileivän tekemiseen. Ja havainnollistaakseni tätä menetelmää väärinkäytin törkeästi CmapTools-käsitekarttaohjelmaa. Lopputulos on seuraavanlainen:

Esitiedot:

  • Tunnistaa ainesosat (leipä, levitteet, salaatti, leikkele, juusto jne.) ja osaa avata/sulkea jääkaapin

  • Osaa asetella täytteitä leivälle

  • Osaa syödä ;)

 

Toimintaohjeet:

  1. Etsi tarvittavat ainesosat jääkaapista

  2. Siirry seur. algoritmiin

 

Tämän kertainen OLO-aihe olikin sitten jo astetta (tai muutamaa) vaikeaselkoisempi. Javan tietorakenteet olivat ainakin minulle uusi aluevaltaus. Erilaisilla tietorakenteilla (joukko, lista, taulukko, sanakirjarakenne, pino jne.) ohjelma voi järjestää saatavilla olevat muuttujat ja oliot eri tavoilla. Sovimme yhteisiksi oppimistavoitteiksi tutustumisen tietorakenteisiin ja annettujen tehtävien pohtimisen.

- Teemu

 

Yhtä deadlinea rikkaampana

Nyt ollaan sitten yhtä kokemusta rikkaampia – ensimmäinen deadline on takana ja tällä kertaa ei mennyt työn palautuksen kanssa edes kalkkiviivoille. Toki olisi ollut järkevää kirjoittaa essee paljon aikaisemmin.

Olin hieman hukassa etsiessäni olennaista sisältöä kirjoitukseen. Oli vaikeaa hahmottaa tärkeitä asioita, ja en ehkä vieläkään ymmärrä täysin oman esseeni kaikkia kohtia. :) Olisi ollut fiksua käyttää työhön paljon enemmän aikaa, jolloin olisi voinut perehtyä aiheeseen paremmin ja omaksua asioita syvällisemmin.

Innostuin sitten leikkimään graafikkoa ja lisäilin esseeseen PhotoDraw:lla kasaan rääpimiäni piirroksia. Ehkä menin kuitenkin liiallisuuksiin seitsemällä kuvallani, joista kaikki eivät olleet ollenkaan tarpeellisia – ainakaan selkeän asiatyylin kannalta. Mutta minusta ainakin kuvat antavat kivan esteettisen lisämausteen muuten niin kalpealle kokonaisuudelle.

Itseäni kismitti lähinnä se, että tehtävä vaadittiin palauttamaan html-muodossa. Aikaisempina vuosina jokainen kurssilainen teki oman portfolionsa, ja esseen vaatiminen ko. muodossa oli täysin perusteltua, sillä esseen pystyi julkaisemaan kivasti omilla kotisivuilla. Nyt kuitenkin html-muoto vaikutti minusta lähinnä jäänteeltä tuolta ajalta ja aiheutti pientä, mutta varsin ärsyttävää lisävaivaa esseen teossa. Lisäksi kompastuin vielä siihen liittyen. Tein esseen varsinaisen rungon OpenOfficella ja copy-pastetin valmiin tuotoksen tekstieditoriin: tietenkin kursiivit ja tummennukset hävisivät samalla. Olin siinä vaiheessa jo sen verran väsähtänyt, että kymmenien italic-tagien lisäily tuntui ajatuksenakin naurettavalta. Sainpahan kuitenkin finaaliversion ajoissa palautettua.

Ja tosiaan – seuraavassa OLO-sessiossa puretaan algoritmi-kotitehtävä. Kuten Olli jo totesikin, niin tämä kotitehtävä tuntui melko loogiselta verrattuna edeltäjiin. Tosin itse huomasin hyötyneeni jonkin verran 1. OLO-tehtävästä kirjoittaessani esseetä. Silloin minulle napsahti kotitehtäväksi pohtia ideaopin käsitteitä ideaa ja ilmentymää sekä näiden kytköstä Java-ohjelmointiin. Tästäpä sain kehiteltyä sitten ihan kelvollisen aloituksen ensimmäiseen kirjoitustehtävään. Kirjoittelen algoritmeistä mitä luultavammin lisää purkusession jälkeen.

- Teemu

 

First post

Huhhuh ensimmäinen essee palautettu!! Kuten Henri jo totesikin, aina se tekeminen tuppaa jäämään viimetippaan. Itselläni jäi sentään kahden tunnin marginaali, mutta tuli kyllä aika monta tuntia lauantaipäivästä tuskailtua esseen kimpussa. Ehkä ensikerralla aloitan hyvissä ajoin (tuota en kyllä usko itsekään). Suurin kynnys oli lähteä kirjoittamaan esseetä, tämän jälkeen tekstin tuottaminen oli hieman helpompaa. Aihe oli suhteellisen laaja ja aluksi vaikean tuntuinen saada muotoiltua järkevästi. Pidän tehtävää järkevänä oppimisen kannalta. Hyvä perehtyminen aiheeseen auttaa ymmärtämään kokonaisuudet paremmin. Jälkeenpäin sanoisin, että olisi pitänyt henkilökohtaisesti perehtyä aiheeseen tarkemmin ja lukea monipuolisemmin eri lähteistä. Jotkin kohdat esseestä jäivät hieman sekaviksi puuttuvan ymmärryksen johdosta.. Olen tyytyväinen lopputulokseen kaikesta huolimatta.

Huomenna jatketaan OLO-sessiolla. Tehtäväni oli pohtia tarkat toimintaohjeet tietyn paidan löytämiselle viisilaatikkoisesta piirongista, kun kyseessä on lapsi, joka ei osaa oma-alotteisesti tehdä mitään. Lisäksi tehtävänä oli miettiä miten tämä kaikki liittyy yllätys yllätys: Javaan. Tämä tehtävä oli mielestäni huomattavasti ensimmäistä mielekkäämpi ja helpommin ymmärrettävissä. Ensimmäinen tehtävä oli hiukan sekava ja ehkä jopa kaukaa haettu esimerkki, tosin se voi johtua myös, että se oli meidän ensimmäinen varsinainen OLO-tehtävä. Toki sieltäkin jotain uutta tarttui mukaan, jos ei muuta niin ainakin Vesan opettama reittiopaskikka :)

-olli-

hyvin ehtii!

Eilen se taas nähtiin. Tai itse asiassa jo edellispäivän iltana. Mulla on ilmeisesti joku Jätä viime hetkeen -vamma. Ei saa mitään aikaiseksi, kunnes on joko pakko tehdä tai huomaa, että ei taida enää ees ehtiä jos ei väkisin väännä oikein väkipakolla.

Yks essee, kyllä sen ehtii kirjoittaa, koko lauantai aikaa.

Sitten, taas kerran, viime minuuteilla yrittää säätää jotain kirjotusvirheitä pois tekstistä kun kauheella kiireellä kirjoittanut viimeiset kaks tuntia. Ja palauttaakin pitäis ehtiä, voi kurjuutta. No, nyt tuli taas värikynää mukaan tähän selostukseen, mutta kuitenkin vähän kiireellä piti eilen html-muotoon essee saada.

Eikö noita tehtäviä vois tehdä silloin, kun ne ilmestyy? Sama aika niihin kuitenkin menee, jos ei tyydy paniikkiratkaisuun. Ilmeisesti se vaan on mukavuudenhaluiselle ihmiselle liian vaikeaa.

Itse esseestä sen verran, että tuo Luokat ja oliot oli kaikessa laajuudessaan aika hyvä peruspaketti ensimmäisen Java-tehtävän pohjaksi – eikö niin? Itselle ainakin tuli melko hyvin kaikki vanhat ja uudet asiat mieleen, ja varmasti on helpompi alkaa ensi viikonlopun urakkaa tekemään.

Jos vaikka ajoissa tällä kertaa.

/Henri

Isistä ja lapsista

Ensimmäisessä OLO-sessiossa osa ryhmästä sai oppimistehtäväkseen selvittää luokkien ja olioiden ilmentymistä javassa eri näkökulmista. Minun, Iijan ja Ollin oppimistehtävä puolestaan oli selvittää jokaisen “isä-lapsi-suhteen” eroista ja yhtäläisyyksistä, sekä ehkä myös yhteyksistä javaan.

Lähdin miettimään asiaa siltä kannalta, että jokaisella i-l-suhteella täytyy olla jokin tekijä, joka määrittää sen. Löysinkin tähän kaksi tekijää, jotka ovat biologinen isyys ja kasvatti-isyys. Näistä ainakin toisen kohdan on toteuduttava, jotta voidaan sanoa, että kyseessä on isä ja lapsi. Ensimmäistä määrittäjää on helppo tarkastella: biologinen isä joko on tai ei ole. Kasvatti-isän määritelmä on jo huomattavasti kirjavampi. Selkeä vastaus on olemassa esimerkikisi adoptiotilanteissa, mutta vaikkapa uusioperheen i-l-suhteessa muodostuu jo avoimia kysymyksiä. Onko isähahmo oikeasti isä puolisonsa lapselle, jota on kasvattanut vasta lapsen kuudennesta ikävuodesta lähtien? Vastaavanlainen luokittelutilanne oli avauksessa ottamassamme esimerkkissä sorkkaeläimistä ja kotieläimistä. Sorkkaeläimet on helppo määritellä, mutta kotieläimen raja on häilyvämpi.

Jokaisessa i-l-suhteessa on myös jonkinlainen riippuvuusaspekti. Siinä vaihtelevia tekijöitä ovat riippuvuuden suuruus, ja kumpi on riippuvainen kummasta. Tämä riippuvaisuuden laatu vaihtelee myös yhden i-l-suhteen sisällä sen kehittyessä. Lisäksi jokaisella suhteella on myös täysin omia ja yksityisiä piirteitä, kuten yhteiset harrastukset tai käytännön kanssakäymisessä muodostuneet rutiinit.

Kaiken tämän voi myös yrittää siirtää javaan. Esimerkiksi biologisuus voisi olla yläluokan attribuutti, joita kaikki i-l-suhteet voivat “käyttää”. Ja mitä tarkemmaksi ominaisuudet määrittää, niin sitä matalemmalla näiden attribuuttien luokat ovat luokkahierarkiassa.

Ensimmäinen OLO-tapaus

Ryhmämme ensimmäisen OLO-session (10.9.) tapauksessa 1 käsittelimme Platonin ideaoppia ja sen yhteyttä Java-ohjelmointiin (luokkiin ja olioihin). Puheenjohtajana toimi Olli ja sihteerinä Asta. Avauksen jälkeen jaoimme oppimistavoitteet niin, että 2-3 henkilöä perehtyi yhteen niistä ennen seuraavan maanantain OLO-sessiota.

Oppimistavoitteet:

  • Isä-lapsi-suhteet
  • Toteutus
  • Idea/Ilmentymä
  • Rakenne

Maanantaina 17.9.2007 oli vuorossa purkusessio, jolloin ensin pareittain katsoimme, mitä olimme itse saaneet asiasta selville. Tämän jälkeen esitimme oppimamme asiat muille. Joissakin asioissa mielipiteet olivat eriäviä ja käsitteet jääneet vielä hieman epäselviksi, joten asiantuntevat assarimme selvittivät meille monen monta asiaa koskien luokkia ja olioita.

Ainakin sihteeri voi myöntää oppineensa paljon, vaikka ei ensin siltä aivan näyttänytkään :)

- Asta

OLOsession kuva

Vesan nappaama otos ensimmäisen olosession Post-it-lapuista siis löytyy täältä:

http://www.cs.hut.fi/~luusua/pics/IMG_5129.JPG

/Henri

Ensimmäinen kirjoitus

Moikka!

Pakko kokeilla, että blogaaminen onnistuu. Ensi töikseni mä katoin tuolta UKK:sta, että ei, tän blogin url:ää _ei_ näköjään voi/saa vaihtaa. Tuo hepalonsorkat näyttää siis jäävän lopulliseksi osoitteeksi, jos me ei nyt heti alkumetreillä haluta jotain edes hämäävästi terveeltä kuulostavaa vaihtoehtoa, mikä tarkoittais, että mun pitää vaan avata toinen blogi ja tuhota tämä. Pistäkää ihmeessä ehdotuksia peliin, mulle on ihan sama. Kurssihenkilökunnallekin se nyt varmaan on aeevan yks lysti, kun ei täällä ole yhtään kirjoitustakaan vielä.

Pakko vielä raottaa mun sairaan mieleni huumorintajua – meinas pudottaa tuolilta: http://www.youtube.com/watch?v=7rCAXYjMmgE

/Henri