Arkisto tammikuu 21., 2008:lle

Nostalgiaa ohjelmointikursseilta. Loppuuko se kaikki tähän?

Hilirimpsis vikaa kertaa.

Tähän kirjoitukseen (luultavasti) päättyy minun urakkani (luultavasti) yhtenä TKK:n hassuimmin ohjelmoinnin peruskurssista suoriutuneista opiskelijoista. Tarina alkoi syksyllä 2004 T-fuksina tietoteekkarien omalla ohjelmointikurssilla, jonka lopetin ylivoimaisena jo heti alkusyksystä ja aloin miettimään alan vaihtoa. Fuksiryhmästä kaikki aktiivit olivat erittäin harrastuneita koodaajia, mikä ihmetytti meikäläistä ja ajattelin, etten opi ikinä moisia temppuja.

Samaan aikaan tuleva tyttöystävä kertoi ohjelmoinnin olevan “ihan kivaa”, mitä minä en pystynyt alkuunkaan käsittämään. Myöhemmin näin Studio1-kurssin tehtävänannot sekä henkilökohtaiset palautteet ja vertasin niitä Goblinin (=massaohjelmointikursseilla käytössä oleva tarkastusmasiina) antamiin vastaaviin tehtäviin ja palautteisiin, ja ajattelin, että mitäs ihmettä. Kylläpä vaikutti infolla tekeminen maanläheiseltä ja mukavalta.

Keväällä 2005 ajattelin, joululomalla viisastuneena, yrittää uudelleen. Tällä kertaa menin Ohjelmoinnin peruskurssi Y:lle (vai L:kö se oli). Jo muutaman viikon jälkeen lopetin ilman yhtään tuttua kurssilaista ja motivaatiota. Kaverien puutteen lisäksi toinen ihana lopettamismotivaattori oli mielestäni monotoninen Kerttu Pollari-Malmi. :) Samana kesänä oli edessä muutto T-osaston vehreämmälle puolelle olohuoneelle.
Syksyllä 2005 alkoi Studio1, joka sujuikin mukavasti kaiken muun paitsi teoriatehtävien, jotka eivät “oikein napanneet” ;) , osalta. Palkintona oli kurssin uudelleen suorittaminen myöhempänä ajankohtana. Käteen jäi 10op eli informaatioverkostojen ohjelmointikurssin verran. Seuraavana vuonna eli 2006 ajattelin käydä vain suppean kurssin, mutta ahnehdin niin paljon muitakin kursseja syksyyn, että kaikki palautukset myöhästyivät. Kurssi jäi kesken.

Tänä syksynä päätin tehdä kaiken vielä kerran alusta. Silti yli 25op muita kursseja vaikeuttivat aikataulutuksia sen verran, että tälläkään kerralla ei varsinaisesti hyvää mieltä kurssista oman panoksen takia jää, mutta onpahan tämä ainakin ohi, jos jostain syystä en onnistu reputtamaan. Näin, viides kerta toden sanonee! :)

Koska lisäksi mulla on muutamaa tenttiä vaille kaikki väsyneet perusopinnot suoritettuna, saan seuraavan vuoden-pari keskittyä pää- ja sivuaineen mukaviin opintoihin, tämähän alkaa näyttää ihan hyvältä!

En ajatellut kirjoittaa tähän mitään referaattia siitä, mitä olen kurssilla tehnyt, vaikka jo näin lukematta voisin olettaa enemmistön näin tehneen. Tällaisen vanhuksen toivomukseksi voisi vaikka esittää, ettei näitä minun viimeisiä – päivän myöhässä laadittuja – kirjoituksia hyväksyttäisi ollenkaan, ja koska ne näköjään ovat pakollisia, ensi syksynä käynnistyisi ihanaakin ihanampi kuudes ohjelmointikurssi TKK:lla. :D

Tsemppiä kaikille ensi kevään kursseille ja eiköhän törmäillä jos jossakin merkeissä. Javaillaan kun tavataan.

-Henri

Minkä tyylinen oppija olen? Minkälainen tapa oppia ohjelmointia sopii itselleni?

Toinen kymmenen tärkeyspisteen otsikko yllä. Varsinkin ensimmäinen kysymys on jokaiselle opiskelijalle ja jopa ihmiselle tärkeä asia, jonka keksimiseen voi mennä kauankin aikaa. Jälkimmäinen kysymys tarkentaa ensimmäistä, joten rajaan tämän kirjoituksen aiheen ohjelmoinnin opiskeluun.

Olen aina ollut hirveän laiska opiskelemaan mitään itselleni vähänkään tylsää tai vastenmielistä. Ohjelmointi lukeutuu molempiin kategorioihin. Siksi kurssilla olevat teoriatehtävät ovat olleet tuskallisia tehdä, vaikka niistä läpi selvisinkin. Itse ohjelmointi menee ihan hyvin, ja koen oppivani sitä nopeimmin kokeilemalla. Kurssikirjaa en ostanut, vaan lainasin kirjastosta, mutta se maksoi minulle 11 euroa, koska kaksi kertaa unohdin uusia lainan ja sainpa tilille hetkeksi lainauskiellonkin. :)

Itse asioista selvää ottaminen on raskasta ja aikaavievää. Varsinkin graafisiin käyttöliittymiin liittyvät asiat ovat tämän vuoksi olleet minulle raskaita. Sadat valmiit luokat ja niiden tuhannet metodit ja niistä sopivimpien etsiminen ja löytäminen ovat varmasti alkukynnyksen ylittymisen jälkeen käteviä käyttää, mutta minulle opettelun henkinen muuri on liian korkea ylitettäväksi – tai ainakin on ollut tähän asti.

Pidän vihjeiden perusteella tekemisestä, ja siksi olenkin aina nauttinut Studio1-kurssin ohjelmointiosan tehtäväkierroksista, joissa kerrotaan, missä järjestyksessä asiat kannattaa tehdä ja miltä niiden tulee näyttää. Jopa käytännön toteutukseen saa vähän apua, tai ainakin on kerrottu, mistä aiheeseen liittyvää teoriaa kannattaa opiskella. Varsinkin tänä vuonna vihjeet olivat tehtävänantojen välittömässä yhteydessä, mikä auttoi omaa keskittymistä ja opiskelua paljon. Minulle yhdessä tekeminen on aina ollut mieluisaa, mutta Studio1-kurssin suuresta yhteisöllisyydestä huolimatta ohjelmoimisesta on jäänyt vähän negatiivinen kuva “yksinäisen puuhasteluna”. Ehkä siksikään ohjelmointi ei ole minun lempitekemistäni, etten usko koskaan haluavani tehdä tai suunnitella ohjelmia käytännön tasolla.

OLOsessioissa on hyvä idea, pienryhmäoppiminen ja asioiden pureskelu yhdessä, mutta sen toteutus on mielestäni itselleni sopimaton. Olisi hyvä, jos tilaisuudessa olisi puheenjohtajana asioista eniten tietävä, jolta olisi helppo kysyä mitä tahansa mieleen tulevaa ongelmaa. Tällä hetkellä OLOsessiot ovat ryhmäläisten yhteistä pohtimista asioista, joista assistentit jo valmiiksi tietävät erittäin paljon mutta ovat taka-alalla. Itselleni voisi sopia paremmin suorempi “tässä aihe, lähdetään purkamaan tällä tavalla” -lähestyminen kuin Post-it -laput, tussit ja seitsemän tuskaista askelta. Myös se, että tapaamisen puheenjohtajaksi joutuu joku tehtävään sopimaton tai sitä haluamaton henkilö, on mielestäni aivan turhaa. Jos tapaamisen perusideassa on mielestäni joku virhe, asioiden omaksuminen ja niistä keskusteleminen vaikeutuvat minulle henkilökohtaisesti aika paljon. Itselleni sopisi ehkä parhaiten, että asiat käytäisiin läpi yhdessä ja pienryhmätasolla mistä tahansa asiasta voisi herättää keskustelua, jos ei ymmärrä tai haluaa lisäselvitystä. Keskusteluun voisivat osallistua kaikki, mutta sitä johtaisivat assistentit käytännönläheisin esimerkein. Tähän suuntaan ollaan ymmärtääkseni oltu muutama viime vuosi siirtymässäkin.

Tentissä huomasin, että ensimmäisten kahden osan teoriat eivät olleet ollenkaan tarvittavalla tavalla hallussa, mutta se oli odotettavaakin laiskasta lukemisesta johtuen. Tämä kaikki heijastui myös ohjelmointitehtäviin, joissa kesti aina aikansa opiskella tulevaa teoriaa ennen kuin pääsi kunnolla vauhtiin. Tekemällä teoriatehtävät kunnolla olisi ehkä säästänyt joissain ohjelmointiharjoitusten asioissa, mutta oppinut ehkä paljon sellaistakin, jota ohjelmointiharjoituksissa ei suoranaisesti tarvinnut. Minulle hieman vastenmielisen aihepiirin asiat eivät motivoineet tarpeeksi opettelemaan kaikkia asioita kunnolla.

Itselleni siis ohjelmoinnin opiskeluun sopivat parhaiten yhdessä tekeminen ja avoin keskustelu asioista enemmän tietävien kanssa, sekä käytännön kokeileminen ja itse tekeminen. Asioiden opettelu ennakkoon oppikirjoista tai nettiartikkeleista ei välttämättä ole se omin juttu, vaikka se varmasti paljon olisi oppimista helpottanutkin.

-Henri

Miten kurssia voisi parantaa?

Aah.. The mother of all questions. Not. Mutta kuitenkin tärkeä asia.

Koska uusien opiskelijoiden ensimmäinen syksy perinteisesti kuluu lähes kokonaisuudessaan tietokoneen äärellä ohjelmointia opetellessa, opetusajan maksimaalinen hyödyntäminen on mielestäni erittäin oleellinen asia. Olin itse Studio1-kurssilla ensimmäistä kertaa jo kaksi vuotta sitten. Kurssi on mielestäni muuttunut aika paljonkin silloisesta. Me emme tehneet ollenkaan tenttiä, blogin paikalla oli jokaisen henkilökohtainen portfolio, ohjelmointitehtäviä oli nykyisen kuuden sijasta viisi, bottiturnausta ei ollut, kumpaakaan turnausta ei arvosteltu, OLOsessioiden opetuksen taso oli heikompaa ja ainakaan muistaakseni projektityölle ei oltu varattu ohjattua opetusta joululoman aikana.

Lähes kaikki uudistukset ovat mielestäni parannuksia menneeseen, mutta käytännön pikkuasioita voisi viilata. Jos ohjelmointitehtävien keskiarvo on melkein neljä, mutta tentistä jaetaan sääliykkösiä, pitää mielestäni miettiä. Ovatko vaatimukset linjassa ohjelmointitehtävien vaatimusten kanssa, vai onko ohjelmointitehtäviä tehty yhteistyössä niiden muutamien asiat oikeasti parhaiten hallinneiden kanssa? Jos ohjelmointi- ja teoriatehtävien keskiarvot kohoavat lähelle nelosta, mutta tenteissä on havaittavissa selkeä kahtiajako osaajiin ja osaamattomiin, on joku pielessä.

Mielestäni tentin osuutta kurssin arvostelusta kannattaisi nostaa korkeammaksi, ja vaikeammin arvosteltavissa olevien asioiden, kuten näiden blogikirjoitusten sekä robo- ja bottiturnauksen arvostelun osuutta pienentää tai poistaa kokonaan. Tentin arvosanan tulisi mielestäni olla suoremmin linjassa koko kurssin arvosanan kanssa, koska samaa menetelmää käytetään muutenkin yleisesti koulumme kursseilla. Toisaalta ennen kurssia arvottujen ryhmien töiden oikeudenmukainen arvosteleminen on ongelmallista, koska riittää, että ryhmässä on yksi ohjelmointimestari, joka tekee tehtävän valmiiksi ja muut hoitavat dokumentointiosuuden. Jos ryhmään ei ohjelmointimestaria satu, on se huonompi juttu.

Kun mietin, kumpi oli parempi idea, tehdä portfolio vai kirjoittaa yhteistä blogia, en päässyt selvään lopputulokseen. Portfoliota tehdessä kenenkään ei tarvitsisi vaivata päätään sillä, miten muiden ryhmäläisten panos vaikuttaa omaan kurssiarvosanaan, mutta toisaalta olen ymmärtänyt, että ohjelmointi suuremmassa mittakaavassa yleensä on ryhmätyötä, jossa ryhmällä on yhteisiä tavoitteita ja vastuita. Toisaalta portfoliota tehdessä saa harjoitusta html:n käytöstä, saa itse päättää, minkälainen toteutuksesta tulee ja pääsee ehkä enemmän toteuttamaan itseään muuten kuin verbaalisesti. Blogissa on helppo seurata, minkälaisissa tunnelmissa muut ryhmäläiset kurssia suorittavat, ja kertoa omia mielipiteitään muille. Yhteisessä vastuussa on taas arvosteluongelmansa, vaikka blogi arvioidaan osaksi henkilökohtaisestikin. Tässä ryhmädynamiikkaa testataan toki eri tavalla kuin robo- ja bottiturnauksissa, sillä ei riitä, että yksi kirjoittajamestari hoitaa homman, kun muut katselevat vieressä, vaan ainakin melkein koko ryhmän panosta tarvitaan blogin onnistumiseen. Tämän vuoksi blogi sopii ryhmässä arvosteltavaksi kokonaisuudeksi mielestäni huomattavasti robo- ja bottiturnausta paremmin.

Ohjelmointitehtävien lisääminen yhdellä ei uskoakseni vaikuttanut kovin oleellisesti kurssin kokonaistyöläyteen, mutta graafisten käyttöliittymien osuuden lisääminen yhdestä viidesosasta yhteen kolmasosaan kurssin ohjelmointitehtävien sisällöstä on mielestäni huippu-uudistus! Vieläkin koen itselleni henkiseksi esteeksi graafisten käyttöliittymien tekemisen, sillä hyppäys valmiiden luokkien hyödyntämisen maailmaan tuntuu liian suurelta.

OLOsessiot, nuo ainaiset henkilökohtaiset riippakiveni, ovat minun nähdäkseni edelleen kurssin “löysin” osa. Jos nuo kymmenisen kaksoistuntia vaihdettaisiin vaikka yhdessä ohjelmoimiseksi niin, että edelleen pienryhmissä yksi assari kerrallaan tekisi konkreettisia mallitehtäviä yhdessä ryhmän kanssa, luulen, että saavutettava hyöty olisi moninkertainen verrattuna nykyiseen. Saataisiin kaksinkertainen määrä opetusta ja konkreettisia esimerkkejä siitä, miten kannattaa tehdä ja miten ei, kun nykyään sessioissa istutaan tuppisuina ja kirjoitellaan post-it -lapuille mielestäni aivan turhanpäiväisiä asioita, kun konkreettinen oppiminen jää todella vähäiseksi.

Kokonaisuudessaan kurssi on mainio paketti, ja varsinkin ohjelmointitehtävät ovat erittäin mielenkiintoisia. Edellä pohdiskelemillani asioilla voisi ehkä viilata toimivamman ja tehokkaamman ratkaisun, mutta varmasti käytännön muutoksia tarvitsisi miettiä tarkkaan ennen toteuttamista.

-Henri