Loppupähkinöintiä

Paljon aikaa siihen meni, ja jotain sai vastineeksi. Ärsyttävää kurssissa oli apupyörittä aloittaminen ja homman määrä (ja kurssin pituus 5kk). Positiivista kurssissa (esimerkiksi verrattuna muiden käymään python-kurssiin) olivat tehtävänannot (pelejä) ja luennot (ne jotka JK luennoi). Myös pienryhmissä pähkäileminen oli mukavaa touhua.

Tärkein anti oli Javan muuttuminen jostain tuntemattomasta työkaluksi. Nyt koen että saan koodaamalla aikaan tahtomani, ja että voisin vaikka jatkaa pelien pienimuotoista koodaamista myöhemmin. En karsastanut ideaa koodaamisesta vaan halusin oppia sen. Asenteeni ehkä helpotti omaksumista, vaikka perjantai paniikin paniikki sitä heikensi. Lopetinkin sitten kerrasta koodin koodaamisen pe-la yöllä.

Esseet ja käsitekartta olivat tietyllä tavalla avuliaita oppimismuotoja, mutta niiden arvosteluperusteet jäivät minulle epäselviksi. Katsoin esseistäni pari kertaa teoriaa koodatessa, mutta muuten en olisi kaivannut niiden työmäärää kurssille.

Ja jottei loppuläpätys ole lyhyempi kuin muilla:

Mainokset
Robotin koodaus

Robotin koodaus

Kokoonnuimme lomaviikkomme keskellä T-talolle koodaamaan robottiturnaukseen osallistuvaa robottia. Päivän ohjelma: aluksi palaveri, ruuan jälkeen koodausta Paniikissa.

Aloitimme palaverilla, jossa selvitimme robotilta vaadittavia ominaisuuksia, algolitmia, käytettäviä Javan ominaisuuksia (Point, HashMap) ja ohjelmoinnin jakamista eri henkilöille. Aluksi olimme aivan ulapalla mitä täytyisi tehdä, loppuun saimme yksinkertaistettua tilanteen siten että toteutamme Tremaux’n algoritmin. Robotti asettaa käyntikerrat itse luomaansa sijaintiin (Point-pisteeseen) ja valitsee reitin joka toteuttaa Tremauxia. Lisäksi toteutamme ohjelmoinnin yhdessä koodatessa samana päivänä.

Kun ulkona oli vielä valoisaa…

Lue loppuun

Tapaus 2 purkaminen

Edellisellä kerralla olimme määritelleet jokaiselle parille suunniteltavan ”ohjelman”. Suunnitteluun käytetty runsas aika toi tulosta ja ohjelmat olivat toimivia ja esitietovaatimukset ainakin osittain pitäviä.

Turtles-ohjelmasta totesimme seuraavaa: epäonnistumisen mahdollisuus huomioitu (jos lipastossa ei olekaan turtles-paitaa) ja lipasto tyhjennetään loogisesti läpikäyden lattialle (totesimme sen vastaavan hyvin ihmisten käytöstä lukuunottamatta Vesaa joka pitää vaatteitaan jo valmiiksi läjässä).

Teen keittäminen pseudokoodia noudattaen todettiin mahdolliseksi, vaikkakin vaatii paljon koodia.

Hipasta oli tarjolla kaksi eri koodia, joista yksinkertaisempi oli suunnilleen muotoa ”jahtaa tai pakene” ja poliisia ja rosvoa simuloiva versio olikin jo haasteellisempi. Onnistuimme listimään yhden bugin vaatimalla esitietoihin osallistujamäärän, jotta poliisit eivät jää jahtaamaan tyhjyyttä.

Yhteenlasku oli tylsän matemaattinen ja esitietoja tarvittiin lisää se että ohjelma ymmärtää lukujen ”pituuden”.

Voileivän tekeminen onnistuu, mutta jäi epäselväksi tiskautuuko astiat, kun ne laitetaan takaisin siihen kaappiin mistä ne otettiin. Paljon koodia arkisesta asiasta.

Viimeisin ohjelma ei ollut mitään pseudokoodia vaan aivan toimiva HSL-simulaattori. Koko ryhmä oli Olowi-luukku auki kun Vesan pikkuveli osasi nousta 102, maksaa (tai palata hakemaan rahaa), mennä istumaan ja jaksoi odottaa ennen tätä noin 15 kpl 510-busseja.

Lopputulemana: kaikille saattoi syntyä alitajuinen kuva ohjelman suunnittelusta, vaikka ei tätä olisi tajunnutkaan.

Tapaus1: Loogisen hierarkian löytäminen

Tapaus1: Loogisen hierarkian löytäminen

Tapauksen aineistona ja virikkeenä oli esimerkki Platonin ideaopista, Aristoteleen logiikasta ja lainaus Ola Larsmon esseestä ”The Animals that belong to the emperor. Three issues on the Library of Babel”. Lisäksi viitteitä siitä että aihealuetta (hierarkia, ylä/alakäsitteet, luokittelu) voidaan liittää Java-ohjelmointiin.

Ryhmä päätyi (liian hiljaiseksi ja yksilölliseksi havaitun) stormaamisen jälkeen seuraaviin osakokonaisuuksiin (jotka koettiin kuitenkin hieman liian laajoiksi) Olen yksinkertaistanut nämä kokonaisuudet seuraavasti:

Keinot (miten/millä luokitellaan)
Tavoite (miksiluokitellaan, mihin sillä pyritään)
Ongelmat (mitä ongelmia syntyy luokittelemisestä)

”Loogisen hierarkian löytäminen” päätettiin sitoa (assarien kehoituksesta) myös Javaan. Oppimistavoitteiksi asetimme lopulta seuraavat:

1 Selvittää valmiina olevia luokittelun keinoja

a) Platonin ideaoppi
b) systematiikka
c) muut luokittelun keinot

2 Luokittelun ongelmat

a) yleiset
b) kulttuuriset

3 Luokittelun tavoitteet

+ tilanne jossa luokittelua ei ole

4 Ohjelmointi/Java

a) luokat ja oliot
b) periytyminen javassa

4-aiheen sisällä jako tehtiin siten että asiaa pohtii henkilöpari joista toisella on jo valmis käsitys aiheesta ja toisella ei ole mitään tietoa. Tällöin parin työskentely olisi hedelmällisempää asiaan perehtymättömien kannalta. Muut aiheet jaettiin vapaaehtoisemmin.