Ah! Vihdoinkin tilaisuus vuodattaa kaikkien tietoisuuteen kurssin aikana syntyneet patoutumat!
Studio 1, kenties TKK:n laajin kurssikokonaisuus, on niin järkälemäinen paketti, että lienee mahdotonta olettaa sen miellyttävän kaikkia. Tosin eihän kurssien tarkoitus olekaan olla henkilökohtaiseksi räätälöityjä kokonaisuuksia, vaan tarjota alusta tehokkaalle oppimiselle. Itse kuitenkin viihdyin Studio 1:n tarjoamalla viiden kuukauden intensiivimatkalla java-ohjelmoinnin saloihin.
Ensimmäisten ohjelmointiharjoitusten pyörähtäessä käyntiin syyskuun puolivälissä oli olo kuin Atlantin keskelle joutuneella haaksirikkoutuneella: maata ei näkyvissä eikä kukaan ole heittämässä pelastusrengasta. Javan syntaksi tuntui täydeltä heprealta, eikä kääntäjän antama palaute auttanut lainkaan virheiden etsimisessä. Virheitä oli niin paljon, ettei yksinkertaisesti tiennyt mistä lähteä paikkaamaan. Teki mieli huutaa ja potkia.
Kun ylityöllistettyjen assareiden hihoista oli nyitty tarpeeksi monen ohjelmointisession ajan, alkoi Javan perusrakenne hahmottua.
Kolmosharjoitukseen mennessä syntaksi oli jo siihen malliin hallussa, ettei assareiden apua oikeastaan tarvinnut kuin joidenkin
hahmotusvaikeuksien korjaamiseen. (Btw, rekursio-osatehtävä oli ehdottomasti kurssin suurin kompastuskivi, johon meni aikaa… runsaasti.)
Java API muuttui pikkuhiljaa pienen javaistin parhaaksi kaveriksi, eikä se näyttänyt lainkaan yhtä kryptiselta kuin ensimmäisten harjoitusten aikana. Kurssin loppua kohti edeten ohjelmointi sujui parhaiten kotona kahvikupin äärellä. Olen tyytyväinen, että useat asiat tuli opeteltua kantapään kautta. Assarien neuvoessa ratkaisun riitti, kunhan virheen sai korjattua ja ohjelma toimi. Itseopiskelussa joutui oikeasti pähkäilemään, mikä oli virheen todellinen aiheuttaja ja mistä se johtui, joka oli oppimiskokemuksen kannalta huomattavasti parempi lopputulos. Kun bugin sai liiskattua “minä itse”-menetelmällä, oli voittajafiiliskin taattu. Lopputulos ei kuitenkaan ollut välttämättä mitä elegantein.
Olisikin hyvä, jos seuraavalle Studio 1:lle järjestettäisiin muutama osa-aika-assari lisää ensimmäisen ohjelmointitehtävän ajaksi.
Ensimmäisten ohjelmointiharjoitusten aikana, kun ei juuri onnistunut etenemään harjoituksissa ilman kurssikaverien tai assareiden apua. Mikäli assaria ei ollut saatavilla, ohjelmointitehtävä jumitti. Jumitus taas aiheutti suurta ahdistusta, kun deadline lähestyi kerta kerralta.
OLO-sessioihin kuuluneet robottiturnaus sekä bottiseminaari, olivat ihan “kivaa” kastiketta kurssin ohella, mutta allekirjoittanut koki jälkimmäisen melko tarpeettomana. Robottiturnaus ja erityisesti sen loppuhuipennus oli yksi kurssin mieleenpainuvimmista hetkistä.
Tehtävän punainen lanka lieni ryhmässä tapahtuvan ongelmanratkaisun opettaminen, joka on elintärkeä taito tämänpäiväisessä ohjelmistokehityksessä. Ohjelmat ovat paisuneet niin massiivisiksi, että ne ovat poikkeustapauksia lukuunottamatta isomman ryhmän kehittämiä. Erityisesti parasta sokkeloalgoritmia pohdittaessa kanssa-OLOilijoiden ajatukset tukivat toinen toistaan.
Robottiturnauksen aikaisesta ajankohdasta johtuen monien ohjelmointitaidot olivat vielä kovin puutteellisia. Meidän ryhmämmekin nojasi pitkälti Lassen aikaisemman ohjelmointikokemuksen harteilla. Vaikka kaikilla ryhmillä oli varmasti hyviä ideoita, ei niiden toteuttaminen onnistunut vielä tässä vaiheessa kurssia.
Bottiseminaarinkaan ajoitus ei osunut ihan nappiin. Päällä oleva Java-tehtävä ja hyökyaallon lailla vyöryvä matematiikan välikoe saivat varmasti itse kunkin lykkäämään botin kehityksen prioriteettilistan häntäpäähän. Tuntui myös, ettei botin ohjelmointi tarjonnut hirveästi uutta annettavaa Java-ohjelmoinnin saralta.
Teoriatehtävät herättivät myös suuremmassa yleisössä närää kurssin aikana. Osin siksi, että niiden painoarvo oli kovin vähäinen ja ainakin itselleni tuntui hieman hassulta tehdä essee tai käsitekartta aiheesta, josta ei ollut ennen kuullutkaan. Tapana olikin istua kalakirja sylissä ja hahmottaa kokonaisuutta käsite käsitteeltä tietokoneen ruudulle. En silti tuomitse täysin “teoria ensin, käytäntö perässä”-ideaa. Teoriatehtävän teko pakottaa perehtymisen aiheeseen, ennen sen kimppuun ryhtymistä. On varmasti yksilöllistä kumpi menetelmä kellekin sopii, mutta itse olisin kokenut helpommaksi sen, että teoriatehtävä olisi ajoittunut vasta ohjelmointitehtävän jälkeen. Kun on peuhannut kymmeniä tunteja koodaten ArrayListejä ja HashMappeja, on niistä kirjoittaminen huomattavasti paljon helpompaa, kun tietää mitä haluaa sanoa.
Esseiden painoarvo kurssiarvosanassa oli monien mielestä liian pieni. Itse pidin sitä melko sopivana. Onhan ohjelmointikurssin
tarkoitus ohjelmoinnissa eikä käsitepallukoiden värittämisessä. Sen sijaan projektin painoarvon nostaminen ei lienisi pahitteeksi. 20% merkitys kurssiarvosanaan on melko vähäinen siihen nähden, että moni käytti sen tekemiseen yli sata tuntia. Tentistä kun keräsi 10% kurssiarvosanasta vain kolmen tunnin työllä.
Blogin 20% herätti hieman kummastusta. Mikäli blogin tilalla olisi henkilökohtainen kurssipäiväkirja (kuten edellisenä vuosina) olisi painoarvo
perusteltu. Nykyisellään blogi tuntui keräävän liian vähän merkintöjä painoarvoonsa nähden. Eikä blogi tuntunut olevan liiemmin läsnä kurssilla. Se oli “välttämätön paha” minne piti käydä raapustamassa aina silloin tällöin pakollinen merkintä.
Tulevaa kurssia varten pudottaisin itse 5% pois blogilta ja lisäisin sen projektille.
EDIT: Muiden postauksia tutkaillessa huomaa, että lähes kaikki ovat kokeneet painoarvojen olevan vinkeitä suuntaan tai toiseen.
Summa summarum; siihen nähden miten massiivisesta kurssista oli kyse, oli se poikkeuksellisen onnistuneesti toteutettu.