Tietorakenteiden ja algoritmien opetus TKK:lla

  Lauri Malmi, 25.9.1998

Tiivistelmä

Tietorakenteita ja algoritmeja käsittelevä kurssi on Teknillisellä korkeakoululla ohjelmoinnin peruskurssia seuraava jatkokurssi, jossa tutustutaan moniin ohjelmoinnissa usein vastaantuleviin käytännön algoritmisiin ratkaisuihin.  Tässä tekstissä kuvataan kurssin opetusmenetelmiä, johon kuuluvat mm. kotitehtävien sähköinen jakelu ja vastausten automaattinen tarkastaminen, opiskelijoiden osallistuminen suunnittelutehtävien ratkaisujen arviointiin sekä WWW-pohjainen palautejärjestelmä.

1. Johdanto

Tietorakenteiden ja algoritmien monipuolinen tuntemus kuuluu olennaisena osana hyvään ohjelmointitaitoon.  Hyvän ohjelmoijan tulee tuntea ja osata käyttää paitsi aivan perustietorakenteita, kuten taulukoita, linkitettyjä listoja, pinoja ja jonoja, myös erilaisia järjestämisalgoritmeja, hakumenetelmiä ja -rakenteita, verkkoalgoritmeja ja mielellään paljon muutakin. Näiden asioiden hallintaan kuuluu paitsi eri menetelmien toiminnan ymmärtäminen, myös kyky arvioida menetelmien tehokkuutta ja soveltuvuutta erilaisiin käytännön tilanteisiin. Luonnollisesti niitä tulee pystyä muokkaamaan myös uusien ongelmien ratkaisemiseen.

Teknillisellä korkeakoululla tietorakenteiden ja algoritmien opetus tapahtuu pääosaltaan kolmen eri kurssin yhteydessä.  Ohjelmoinnin peruskurssilla (5 ov) käydään läpi aivan keskeisimpiä rakenteita ja algoritmeja, kuten pino, jono, jokin yksinkertainen järjestämisalgoritmi, binäärinen hakupuu ja yksinkertainen hajautusrakenne.  Sitä seuraavalla tietorakenteiden ja algoritmien kurssilla (3 ov) nämä asiat kerrataan ja esitetään laajahko katsaus erilaisiin hakurakenteisiin, järjestämisalgoritmeihin, verkkoalgoritmeihin sekä joukkoon erityiskysymyksiä.  Nämä kaksi ensimmäistä kurssia on suunnattu yleisesti kaikille niille insinööriopiskelijoille, joita ohjelmointi kiinnostaa.  Pääaineopiskelijoille on suunnattu teoreettisempi kolmen opintoviikon jatkokurssi, joka käsittelee algoritmien suunnittelu- ja analyysimenetelmiä.  Seuraavassa keskitytään "Tietorakenteet ja algoritmit" -kurssin opetusmenetelmiin.  Kurssin nimestä käytetään jatkossa lyhennystä TRAK.

Tässä paperissa esitetään erityisesti TRAK-kurssilla tehtyä kehitystyötä opetuksen laadun nostamiseksi.  Kurssilla on käytetty jo pitkään tietokoneella tarkastettavia yksilöllisiä kotitehtäviä, joiden avulla on saavutettu se, että opiskelijat saavuttavat tietyn perusosaamisen kurssin sisällöstä.  Keväällä 98 kurssin opetusmuotoja monipuolistettiin merkittävästi, jolloin tavoitteena oli kehittää tämän perusosaamisen varaan soveltavaa osaamista.  Uusia opetusmuotoja olivat massaluennoilla pidetyt harjoitukset, suunnittelu- ja analyysitehtävät,  kokeellinen tutkimusprojekti sekä näiden tueksi kehitetty palautejärjestelmä. Osa opiskeljoista myös osallistui suunnittelutehtävien ratkaisujen arvioimiseen. Saavutetut tulokset olivat hyvin myönteisiä: kurssin vaatimustaso nousi, opiskelijoiden osaaminen kurssin jälkeen parani selvästi ja opiskelijoiden palaute kurssista oli myönteistä.

Seuraavassa luvussa esitetään kurssin lähtötilanne ja tietoja osallistujista ja organisaatiosta.  Luvussa 3 kuvataan kurssia varten tehdyt kehittämissuunnitelmat syksyllä 97 ja luvussa 4 raportoidaan toteutunut tilanne keväällä 98 pidetyssä kurssissa.  Luku 5 sisältää lyhyen yhteenvedon.
 

2. Lähtötilanne

2.1 Kurssin osallistujat ja sisältö

TRAK-kurssin osallistujamäärä on ollut n. 400-500 ja keväällä 98 kurssille ilmoittautui jo lähes 600 henkeä. Tällöin osallistujista n. 2/3 on tullut tietotekniikan ja sähkö- ja tietoliikennetekniikan koulutusohjelmista ja loput muista koulutusohjelmista.  Runsas kolmasosa opiskelijoista on ollut 1. vuosikurssin opiskelijoita, vajaa puolet 2-3 vuosikurssin opiskelijoita ja loput ylemmiltä vuosikursseilta.  Kaikki ovat suorittaneet esitietoina tietokoneen käytön alkeiskurssin (1 ov) ja jonkin ohjelmoinnin peruskurssin (5 ov).  Tietotekniikan opiskelijoilla peruskurssilla käytettiin Scheme-kieltä ja muilla koulutusohjelmilla C-kieltä.

Kurssin sisältönä on ollut laaja katsaus eri tietorakenteisiin ja algoritmeihin seuraavilta sovellusalueilta:  perusrakenteet (taulukot, pinot, jonot, puut), järjestäminen, hakurakenteet, prioriteettijonot, verkkojen käsittely sekä joitakin erityiskysymyksiä kuten tiedon pakkaaminen.  Tavoitteena on ollut paitsi tutustuttaa opiskelijat näihin asioihin, myös opettaa heille algoritmianalyysin perusteet, jotta he voivat tulkita kirjallisuudessa vastaantulevia analyyttisiä tuloksia ja johtaa niitä itsekin yksinkertaisissa tapauksissa.  Kurssin on ollut sikäli teoriapainotteinen, että siinä ei ole ollut ohjelmointiharjoituksia, joissa algoritmeja olisi toteutettu itse jollakin ohjelmointikielellä.

2.2 Opetusmuodot

Kurssi on pidetty koko 90-luvun jokseenkin samassa muodossa. Siihen on kuulunut n. 40 tuntia luentoja, joukko pakollisia kotilaskuja sekä tentti. Kotilaskujen tavoitteena on ollut perehdyttää oppilaat eri algoritmien toimintaan simuloimalla niitä manuaalisesti.  Käytännössä tämä tarkoittaa sitä, että oppilas esittää, miten tietyn tietorakenteen tila muuttuu, kun annettua algoritmia suoritetaan askel askeleelta lähtien annetusta tietorakenteen alkutilasta.  Esimerkiksi: "Tallenna kirjaimet XHOIWYKSP tässä järjestyksessä binääriseen hakupuuhun ja esitä välivaiheet" tai "Sijoita kirjaimet TIETORAKENNE tässä järjestyksessä binäärikekoon ja poista sen jälkeen keon kolme päällimmäistä alkiota.  Esitä välivaiheet kunkin alkion lisäyksen tai poiston jälkeen". Voidakseen tehdä tehtävän oppilaan on välttämättä ymmärrettävä algoritmin toimintatapa yksityiskohtaisesti.  Tämän tiedon varassa hän voi myöhemmin lähteä toteuttamaan algoritmia jollakin ohjelmointikielellä.

Tehtäviä on teetetty siten, että kaikista kurssin osa-alueista oppilaan on ratkaistava tietty määrä tehtäviä.  Näin on voitu varsin hyvin taata tietty perusosaaminen, jota edellytetään kurssin läpäisemisessä.  Tälle saatiin konkreettinen vahvistus, kun  kotilaskusysteemiin siirryttiin vuonna 90. Silloin todettiin, että kurssin tentissä hylättyjen osuus putosi selvästi ja hyväksyttyjen arvosana nousi selvästi edelliseen vuoteen nähden, jolloin kurssin suorittaminen edellytti yhden ohjelmointiharjoitustyön tekemistä sekä tenttiä /1/.  Harjoitustyössä oppilas perehtyi hyvin yhteen tai kahteen algoritmiin, mutta muihin aiheisiin perehtyminen jäi huomattavasti ohuemmaksi.

Kotitehtävien pakollisuus osoittautui siis selvästi edulliseksi.  Sen katsottiin kuitenkin edellyttävän tehtävien tarkastamista ja palautteen antamista.  Usein käytettyä menettelyä, jossa oppilaat ilmoittavat, mitkä tehtävät ovat tehneet ja voivat joutua satunnaisesti esittämään ryhmälle ratkaisunsa, ei katsottu hyväksi.  Kaikki ratkaisut haluttiin tarkastaa ja antaa palautetta kaikille edes pisteiden avulla. Menettelyn haittapuolena todettiin jo heti alussa, että tarkastaminen aiheutti kohtuuttoman työmäärän opettajille (20 kotilaskua * 500 henkeä = 10000 tarkastettavaa tehtävää). Tällöin ruvettiin pohtimaan, miten tarkastamista voitaisiin automatisoida. Koska suurin osa kotitehtävistä oli luonteeltaan sellaisia, että ratkaisuvaihtoehtoja oli vain yksi tai korkeintaan muutama, päätettiin toteuttaa TRAKLA-järjestelmä huolehtimaan tarkastamisesta.  Työ tehtiin oppilasprojektina lukuvuonna 1990-91 ja järjestelmä otettiin käyttöön kevään 91 kurssilla.

2.3 TRAKLA-järjestelmä

TRAKLA-järjestelmä /1/ perustuu siihen, että opiskelija saa opettajan määrittelemät tehtävät sähköpostitse ja palauttaa vastaukset tekstimuotoisena samoin sähköpostitse TRAKLA-serverin tarkistettavaksi ja pisteytettäväksi.  Automaattinen tarkistaminen on mahdollistanut sen, että jokainen opiskelija saa henkilökohtaisen tehtävän, jossa on erilainen käsiteltävä data.  Tämän vuoksi ratkaisujen kopiointi on mahdotonta.  Tämä on suuri etu, koska nyt voitiin luontevasti antaa opiskelijoille lupa yhteistyöhön ratkaisun pohtimisessa.  Aikaisemmin henkilökohtaisten tehtävien käyttö oli tarkastustyömääränsä vuoksi mahdotonta ajatellakkaan, jolloin kaikille yhteisten tehtävien käyttö johti usein mekaaniseen ratkaisun kopiointiin ilman, että opiskelija välttämättä lainkaan ymmärsi ratkaisuaan.  Luonnollisesti uusikaan järjestelmä ei voinut estää sitä, että joku opiskelija ratkaisee tehtävät toisen puolesta. Tätä ei nähty suurena ongelmana, koska palautteen perusteella opiskelijat pitivät kurssia sisällöltään hyödyllisenä, jolloin asioiden omakohtainen opiskelu oli hyvin motivoivaa.  Lisäksi tehtävien vaatima minimityömäärä mitoitettiin varsin alas: 40 prosenttia maksimipisteistä ja kustakin kurssin viidestä osa-alueesta vähintään 25% maksimipisteistä.  Jos sai vähintään 80% maksimipisteistä, sai tenttiarvosanaan korotuksen.  Tuloksia tarkasteltaessa havaittiin selvästi, ettei pyrkimystä tehdä tehtäviä juuri minimipisteillä esiintynyt, vaan tehtäviä tehtiin vapaaehtoisesti huomattavasti enemmän.

Alkuperäinen järjestelmä perustui siihen, että tehtävät palautettiin yhden kerran ennen annettua määräaikaa ja tarkistusohjelma ajettiin sen jälkeen, jolloin oppilaat saivat tiedon tuloksistaan seuraavana päivänä.  Kun järjestelmää uudistettiin kesällä 95, menettelyä muutettiin niin, että vastauksia tarkistettiin saman tien, kun ne saapuivat TRAKLA-palvelimelle ja oppilas sai tiedot pisteistään tyypillisesti muutamassa minuutissa.  Tämän lisäksi uusi järjestelmä salli myös sen, että oppilaalla oli mahdollista myös korjata vastaustaan muutaman kerran, jolloin hän voi poistaa mahdollisten kirjoitus- ja muotovirheiden aiheuttamat pistemenetykset. Hän saattoi myös korjata vastaustaan mietittyään tehtävää tarkemmin, mutta tehtävien luonteen vuoksi minkäänlainen yrityksen ja erehdyksen menetelmä ei ollut mahdollinen. Kussakin tehtävässä mahdollisten ratkaisuvaihtoehtojen määrä on erittäin suuri ja oikean vastauksen löytäminen edellyttää siksi asian todellista ymmärtämistä.  Uusi menettely luonnollisesti paransi oppilaiden suorituksia.  Menetelmän edut: henkilökohtaiset tehtävät, välitön palaute ja mahdollisuus korjata vastauksiaan tehtävää tarkemmin mietittyään, olivat ilmeisiä oppimisen kannalta. Mikään opetuksen järjestely, joka perustuu ihmistyönä tehtävään tarkastustyöhön ja palautteen antamiseen, ei pysty käytännössä tarjoamaan samoja etuja, koska se vaatisi aivan kohtuuttomasti liikaa resursseja.

Opettajan kannalta järjestelmässä oli vielä se etu, että pistekirjanpito saatiin automatisoitua, koska jo pisteiden mekaaniseen kirjaamiseen kului huomattavasti aikaa, joka olisi voitu käyttää järkevämminkin.

Lukuvuonna 1996-97 järjestelmään tehtiin vielä yksi merkittävä parannus, kun otettiin käyttöön WWW-pohjainen käyttöliittymä, ns. WWW-TRAKLA /2/.  Kurssille ilmoittautuminen ja omien tulosten seuraaminen kävi nyt päinsä suoraan WWW-lomaketta käyttäen.  Lisäksi suuri osa tehtävistä voitiin ratkaista graafisessa muodossa, mikä on useimmissa tilanteissa huomattavasti luonnollisempi tapa kuin esittää ratkaisut pelkkänä tekstinä.  Kun oppilas oli saanut ratkaisunsa valmiiksi, käyttöliittymä lähetti TRAKLA-palvelimelle sähköpostiviestin, jossa vastaus oli TRAKLAn ymmärtämässä muodossa. Oppilas sai TRAKLAlta muutaman minuutin kuluttua sähköpostiviestin, jossa oli tehtävien pisteytys.

2.4 Kehityspaineet

TRAKLA on ollut hyvin käyttökelpoinen opetuksen apuväline.  Sen rajoituksena on lähinnä ollut tehtävien yksipuolisuus.  Automaattisesta tarkastuksesta johtuen ei ole voitu teettää tehtäviä, joissa tietoja joutuu soveltamaan aivan uudenlaisten ongelmien ratkaisemiseen eli suunnittelemaan ja analysoimaan algoritmeja uusiin ongelmiin.  Tämä on ollut lähtökohtana kurssin kehittämiselle kevätlukukaudella 1998.

Toinen ongelma on ollut siinä, että koska uusien tehtävien liittäminen TRAKLAan on ollut varsin työlästä, järjestelmä on alkanut tavallaan sitoa kurssin sisältöä - jotta sitä voitaisiin käyttää tehokkaasti hyväksi, täytyy käyttää siinä olevia tehtäviä.  Tätä ongelmaa ratkotaan liittämällä järjestelmään vähitellen uusia tehtäviä.

2.5 Kurssin organisaatio

Kurssin orgaanisaatio on ollut hyvin kevyt. Kurssista vastaava lehtori on vastannut luennoista ja koordinaatiosta.  Hänen apunaan on ollut 1-2 pienellä osa-aikaisella määräyksellä toimivaa tuntiassistenttia, jotka ovat antaneet opiskelijoille neuvontaa, ylläpitäneet TRAKLA-järjestelmää ja tarkastaneet osan kotitehtävistä sekä tenteistä.
 

3. Kehittämissuunnitelma

Tässä luvussa esitetään, miten kurssin opetusta kehitettiin lukuvuonna 1997-98.  Saaduista kokemuksista kerrotaan luvussa 4.

3.1 Tavoitteet

Kurssilla oli neljä keskeistä tavoitetta.
  1. Keskeisin tavoite oli se, että oppilaan tulee oppia keskeiset tietorakenteet ja algoritmit seuraavilla alueilla: perusrakenteet, järjestäminen, hakurakenteet, prioriteettijonot ja verkkosovellukset.  Hänen tulee ymmärtää ja osata selostaa, miten rakenne tai algoritmi periaatteessa toimii ja osata demonstroida asian esittämällä algoritmin etenemisen tai tietorakenteen kehityksen paperilla tai graafisesti.  Tällainen osaaminen toimii olennaisena pohjana algoritmien toteutukselle käytännössä.
  2. Oppilas tuntee algoritmien tehokkuuden suhteessa muihin vastaavaa ongelmaa ratkoviin algoritmeihin ja pystyy pääpiirteissään erittelemään, mihin tilanteisiin tietty algoritmi tai tietorakenne soveltuu ja mihin ei.
  3. Oppilaan tulee oppia algoritmianalyysin peruskäsitteet ja ymmärtää analyysin antamien tulosten käyttökelpoisuuteen liittyvät ongelmat.
  4. Oppilaan tulee osata soveltaa keskeisiä algoritmeja uusien yksinkertaisten ongelmien ratkaisuun, perustella valintansa ja analysoida esittämäänsä uutta algoritmia yksinkertaisissa tapauksissa.
Viidentenä tavoitteena, joka on optionaalinen ja edellyttää ylimääräistä vapaaehtoista suoritusta, oli oppia algoritmien tehokkuuden kokeellisen arvioinnin perusteet ja tulosten kriittinen tarkastelu.

3.2 Opetusmenetelmät

Opetusmenetelmiä valittaessa tavoitteena oli, että opiskelijalla olisi aktiivinen rooli käytännön tekijänä.  Tarvittava tieto pyrittiin kuitenkin tarjoamaan helposti saatavilla olevassa muodossa, jotta tietojen etsimiseen ei kuluisi liikaa aikaa.  Tästä syystä luennoilla käytiin läpi kurssin keskeinen sisältö ja kurssilla käytettiin oppikirjaa, joka kattaa lähes kaiken läpikäytävän aineiston.  Puuttuva aineisto toimitettiin opetusmonisteiden kautta.  Ainoastaan viimeksi mainitussa kokeellisessa analyysissä, jonka tekeminen oli vapaaehtoista, edellytettiin oppilailta omaehtoista tiedon hankintaa.

Oppilaiden omaan työskentelyyn kuuluivat sekä yksittäin että pienessä ryhmässä tehtävät harjoitukset, sekä osalla opiskelijoista toisten esittämien ratkaisujen arviointi.  Lisäksi vapaaehtoiseen osuuteen kuului pieni ohjelmointiprojekti.  Näiden lisäksi oppilaat joutuivat osallistumaan tenttiin. Kutakin opetusmuotoa käsitellään seuraavassa tarkemmin.

Luennot

Luentojen tarkoitus oli tukea em. kolmen ensimmäisen tavoitteen saavuttamista. Kurssin luentomäärä pidettiin tuntimääräisesti ennallaan, eli 3h viikossa koko lukukauden ajan, yhteensä n. 40 tuntia.  Luentojen tukena olivat luentomonisteet, jotka sisälsivät lähinnä luennoilla esitettävien kalvojen pienennökset.  Ne jaettiin heti kurssin alussa, jolloin luennolla saattoi täydentää niitä tai korjata niihin tulleita muutoksia.  Luentorunko ja kunkin luennon pääsisältö asetettiin esille kurssin WWW-sivulle, jolloin oppilailla oli koko ajan varsin tarkka käsitys, mitä asioita oli esillä kullakin viikolla.

Luentoja ei kuitenkaan pidetty perinteisenä lähes puhtaana tiedon jakamistilaisuutena.  Niitä rikastettiin ja kevennettiin siten,  että kaikkien luentojen yhteydessä oli lyhyitä harjoituksia, joissa käsiteltiin juuri läpikäytyä asiaa 2-3 hengen ryhmissä.  Näin oppilas joutui heti soveltamaan juuri kuulemaansa asiaa, jolloin oppiminen tehostui.  Työskentelyn tukena oli se, että kaikilla li käytettävissä luentomonisteet ja oppikirja, jossa asia oli esitetty.  Lisäksi pienissä ryhmissä oppilaat voivat toisiltaan kysyen varmistaa, että he olivat ymmärtäneet asian oikein.  Opettaja kiersi salissa harjoituksen aikana vastaten kysymyksiin, mutta luonnollisesti hänellä ei ollut mahdollisuutta vastata kaikille. Kukin harjoitus kesti 15-20 minuuttia, jonka jälkeen opettaja selitti mallivastauksen ja vastasi mahdollisiin kysymyksiin.

Tällaisten harjoitusten etuna oli oppimisen kannalta myös se, että ne pilkkoivat luennon lyhyempiin osiin.  Kolmen peräkkäisen luentotunnin keskittynyt kuuleminen on hyvin raskasta ja opetetusta asiasta jää todennäköisesti vähemmän mieleen verrattuna uuteen järjestelyyn.  Harjoitustehtävien motivaatiota lisäsi se, että ne olivat tyypiltään samanlaisia kuin kurssin muut kotilaskut, mutta vain yksinkertaisempia.

Harjoitusten vuoksi uuden asian luennointiin jäi luonnollisesti vähemmän aikaa, n. 1.5 - 2 tuntia / luentokerta.  Tämä pakotti opettajan keskittymään olennaisiimpiin asioihin.  Loput kurssiaineistosta jäivät sen varaan, että oppilaat perehtyivät niihin omaehtoisesti oppikirjasta.  Tällä saavutetiin myös se latentti oppimistavoite, että oppilaat joutuivat perehtymään uusiin asioihin kirjallisuudesta itse - kaikkea ei tarjottu heille valmiina.

Kotitehtävät

Kotitehtävät laadittiin siten, että ne tukivat kaikkien neljän ensimmäisen tavoitteen saavuttamista, eli ensinnäkin niillä pyrittiin varmistamaan kurssin perusaineiston hyvä osaaminen ja toiseksi harjoittaa valmiuksia analyyttisiin ja suunnittelutehtäviin.  Tällä perusteella tehtäviäkin oli kahdentyyppisiä, perustehtäviä ja soveltavia tehtäviä.

Perustehtävät tehtiin entiseen tapaan tietokoneavusteisesti WWW-TRAKLAn avulla, koska tämä oli jo hyväksi havaittu tapa oppia hallitsemaan kurssin perusaineisto. Tehtävät olivat osin samoja kuin luennoilla olleissa harjoituksissa, mutta nyt niissä käsiteltiin vähän isompaa ja jokaiselle henkilökohtaista dataa.  Siten asiat tulivat luentojen jälkeen jälleen kerrattua, mutta jokainen joutui nyt soveltamaan tietojaan itsenäisesti. Osa tehtävistä edellytti lisäksi sitä, että opiskelija joutui opiskelemaan asian itse, koska kaikkea ei käsitelty luennolla. Olennainen asia oli se, että jokaisen piti ratkaista perustehtävistä riittävä määrä tehtäviä jokaisesta aihepiiristä, jotta sai arvosanan hyväksytty.  Ratkaisemalla enemmän tehtäviä voi nostaa arvosanaa.

Soveltavissa tehtävissä suunniteltiin uusia algoritmeja ja analysoitiin niitä.  Algoritmit voi esittää jollakin ohjelmointikielellä (Pascal / C) tai pseudokielellä ja algoritmista ratkaisua tuli täydentää antamalla sanallinen kuvaus algoritmin toiminnasta.  Tehtävät olivat kaikille samoja ja niitä voi ratkoa pienissä 2-3 hengen ryhmissä. Vastaukset palautettiin paperilla ja arvostellut vastauspaperit palautettiin opiskelijoille kommentoituina.  Ryhmätyön salliminen oli tietoinen valinta, koska suunnittelutehtävissä ei ollut mitenkään mielekästä kieltää keskustelua ratkaisuista opiskelijoiden kesken.  Päinvastoin, keskustelu oli järkevää, koska siinä tulee esiin uusia ideoita ja kritiikkiä ja siksi oli järkevää ohjata opiskelijat valmiiksi ryhmiin.  Menettely myös pienensi arvosteltavien ratkaisujen määrän noin puoleen.  Soveltavat tehtävät lisäsivät opiskelijan kannalta kurssin työmäärää entiseen kurssiin nähden, mutta ryhmätyötä tehden lisäys oli paljon pienempi kuin, jos jokaisen edellytettäisiin ratkaisevan tehtävät henkilökohtaisesti.

Kaikesta huolimatta vastauksia soveltaviin tehtäviin tuli hyvin runsaasti. Ryhmiä muodostui n. 200 ja kun jokainen ryhmä palautti n. 15-20 tehtävän ratkaisut, saatiin arvioitavaksi 3000-4000 vastausta.  Jälleen kerran tarkastustyö muodostui ongelmaksi, kun palautetta haluttiin antaa kaikista tehtävistä kaikille ryhmille.  Tämän ongelman ratkaisemiseksi otettiin opiskelijat mukaan ratkaisujen arviointiin.

Opiskelijoiden osallistuminen ratkaisujen arviointiin

Pieni osa opiskelijoista valittiin ns. koosteryhmiin. He eivät ratkaisseet itse soveltavia tehtäviä, vaan kävivät läpi palautetut vastaukset annettujen ohjeiden ja malliratkaisujen mukaan ja arvioivat ratkaisut hyväksytyksi tai hylätyksi.  Lisäksi he laativat WWW:hen yhteenvedon, jossa on kerrottu useimmat erilaiset ratkaisutavat, joita tehtäviin oli esitetty. Yleensähän suunnittelu- ja analyysitehtävissä ei ole yhtä oikeaa ratkaisua vaan monia eri mahdollisuuksia lähestyä ja ratkaista ongelma.  Yhteenvetoon liittyy myös se, että ryhmät kommentoivat ja arvioivat ratkaisuja. Ryhmän suoritus arvosteltiin raportin ja näiden kommenttien perusteella.  Opettaja puolestaan luki ja kommentoi ratkaisukoosteet selittäen niiden hyvät ja huonot puolet.  Tämä materiaali (koosteet + kommentit) tuli tenttimateriaaliksi, jolloin muut oppilaat näkivät erilaisia ratkaisutapoja ja voivat tutustua niiden hyviin ja huonoihin puoliin.

Kutakin koosteryhmää ohjasi joku kurssin henkilökunnasta, jolloin voitiin selvittää arvioinnissa olevat ongelmatapaukset ja ryhmä sai ohjausta raporttinsa kirjoittamiseen.  Kurssin henkilökunta selasi ratkaisuja ja niistä annettuja arvioita läpi, jotta voitiin saavuttaa arvioinnin kohtuullinen yhtenevyys.  Jos opiskelijat olivat tyytymättömiä saamaansa arvioon, he voivat aina kääntyä asiassa kurssin henkilökunnan puoleen, joka tarkasti arvion.

Projekti

Projekti oli vapaaehtoinen lisä vakiokurssiin, jonka suorittamalla voi saada 2 ylimääräistä opintoviikkoa ns. henkilökohtaisena opintosuorituksena. Projekti tehtiin ryhmätyönä ja siinä perehdyttiin syvällisemmin johonkin kurssin osa-alueeseen.  Tähän liittyi tutustuminen uusiin algoritmeihin kirjallisuuden avulla ja algoritmien vertailu toisiinsa sekä teoreettisella tasolla (analyyttiset tulokset) että käytännössä.  Kokeellinen osa oli keskeisin asia ja siinä ohjelmoitiin joukko algoritmeja, verrattiin niiden suorituskykyä ja laadittiin tästä raportti. Pääpaino oli vertailussa eikä ohjelmoinnissa.  Algoritmit projekteihin valittiin siten, että niiden koodin piti olla saatavilla valmiina tai pseudokoodina, jolloin ohjelmointiin ei mennyt liikaa aikaa. Opiskelijat voivat esittää myös omaa projektia kurssin opettajalle.

Tentti

Tentissä kontrolloitiin sitä, että opiskelija pystyi itsenäisesti selittämään oppimansa asiat ja soveltamaan niitä käytäntöön. Tenttialueeseen kuuluivat luennot ja luentomonisteet, oppikirjasta valitut asiat sekä kotitehtävät ja niiden malliratkaisut, jolloin kotitehtävien tyyppisiä mutta ei samoja tehtäviä voi tulla myös tenttiin.
 

4. Kokemukset

Tässä luvussa esitetään, mitä kokemuksia saatiin kurssilla, joka pidettiin kevätlukukaudella 1998.  Asioita esitetään sekä opettajan että oppilaiden näkökulmasta ja mukana on otteita kurssin palautekyselystä, joka pidettiin kurssin päätteeksi.

Kurssille ilmoittautui vajaat 600 henkeä, joista runsaat 500 teki kotitehtäviä vakavissaan. Loput kävivät lähinnä tutustumassa aiheeseen ja päättivät varhaisessa vaiheessa jättää kurssin suorittamatta.

4.1 Luennot

Luentoja toteutui 14 viikkoa.  Läpikäytävää asiaa tarvitsi karsia yllättävän vähän edelliseen vuoteen verrattuna.  Tiivistys kohdistui viimeiseen kokonaisuuteen (erikoiskysymyksiä), joka on muutenkin ollut kurssilla vähän lisäkkeen asemassa. Luentoja seurasi lähes loppuun saakka n. 100-150 henkeä.  Näiden lisäksi osa opiskelijoista seurasi niitä TV-kanavan kautta, mutta näiden lukumäärä ei ole tiedossa.

Luentoharjoituksia oli lähes kaikilla luennoilla, jolloin tehtäviä tehtiin 2-4 kpl / luento joko yhdessä tai kahdessa jaksossa.  Aikaa harjoituksiin kului n. 15-40 minuuttia / luento. Usein tehtävät esitettiin yhden luentotunnin lopussa, jolloin opiskelijat saattoivat käyttää myös luentotaukoa niiden pohtimiseen.  Itse harjoituksessa opettaja kiersi salin käytävillä seuraten tehtävien tekemisen edistymistä ja vastaten tarvittaessa kysymyksiin.  Kaikkien opiskelijoiden luokse ei salissa päässyt, mutta kokemus oli, ettei tämä ollut ongelma. Kysyjät olivat useimmiten samoja henkilöitä, jotka myös istuivat paikoilla, mihin pääsi käymään.

Harjoitusten pitäminen kevensi selvästi tilaisuutta opettajan kannalta. Kolmen peräkkäisen luentotunnin jälkeen opettaja oli aikaisemmin tuntenut melkoista väsymystä - nyt tätä oloa ei ollut, koska hänen ei tarvinnut keskittyä puhumiseen niin tarkasti koko tätä pitkää aikaa.  Opettajan kannalta positiivista oli myös se, että hän sai kontaktin ainakin joihinkin oppilaisiin.  Tavallisella massaluennollahan ei pääse antamaan henkilökohtaista ohjausta kuin ohimennen tauolla.  Uusi systeemi tuntui siten opettajan kannalta selvästi motivoivammalta kuin aikaisempi "tavallinen luennointi".

Selvästi oli havaittavissa, että vain osa oppilaista, karkeasti ottaen noin puolet, teki tehtäviä luentoharjoituksen aikana. Osa ei tehnyt mitään.  Tähän vaikutti aivan ilmeisesti tehtävän aihepiiri, joka oli etenkin kurssin alkupuolella joillekin tuttu ja tehtävä oli siten heille turhan helppo.  Toisaalta oli paljon ihmisiä, jotka eivät tehneet mitään missään vaiheessa tai tekivät jotain aivan muuta harjoitusten aikana.  Ryhmätyötä, johon kannustettiin kurssin alussa, näyttivät tekevän vain ne, jotka muutenkin istuivat luennolla yhdessä.  Yksin istuvat eivät näyttäneet hakeutuvan toisten luokse.

 Kurssin alussa päästiin parhaimmillaan harjoituksen purkamisessa tilanteeseen, jossa opettaja pyysi oppilaita esittämään ratkaisuehdotuksen, jota hän saattoi kommentoida ja kysyä heiltä perusteluja asiaan.  Näin syntyi jopa hieman keskustelua.  Myöhemmissä harjoituksissa tehtävien luonne ei tähän soveltunut, koska ratkaisuja ja ratkaisumenetelmiä oli vain tasan yksi.  Jälkikäteen ajatellen asian ei tarvitse olla näin - tehtäviä voisi muokata siten, että ne sallivat erilaisia ratkaisuja.

Seuraavassa on esitetty opiskelijoilta kurssin lopussa saatua palautetta asiasta:

Palautetta

    1) Luentojen yhteydessä järjestettiin harjoituksia, joissaharjoiteltiin luennolla esillä
       olleita asioita. Teitkö näitä harjoituksia luennon aikana? (248 vastannutta)

                                         En tehnyt      : 43    (17%)
                                     Vain muutaman      : 96    (38%)
                                        Yli puolet      : 59    (23%)
                                      Lähes kaikki      : 50    (20%)
 

    2) Jos teit harjoituksia aktiivisesti luennon aikana,auttoiko se sinulle asian oppimista?
       (193 vastannutta)

                                        Eipä juuri      : 16    (8%)
                                     Jonkin verran      : 56    (29%)
                                       Aika paljon      : 82    (42%)
                                    Todella paljon      : 39    (20%)
 

    3) Jos et tehnyt harjoituksia tai teit niitä vain vähän,vaikka olit luennolla mukana,
       mikä oli siihen useimmiten syynä? (186 vastannutta)

        Asia oli sen verran tuttua, ettei sitä tarvinnut harjoitella    : 73    (39%)
        Asia oli niin vaikeaa, ettet pystynyt tart. tehtävään kiinni    : 6     (3%)
        Aikaa tehtävän tekemiseen oli liian vähän                       : 2     (1%)
        Ajattelit katsoa tehtävän läpi myöhemmin kotona rauhassa        : 32    (17%)
        Halusit lepuuttaa aivojasi tai miettiä jotain muuta             : 73    (39%)
 

    4) Kannattaako tällaisia luentoharjoituksia mielestäsi pitää opetusmuotona:(323 vastannutta)

                                                Ei      : 6     (1%)
                                            Joskus      : 127   (39%)
                                        Aika usein      : 83    (25%)
                                      Ehdottomasti      : 107   (33%)
 

4.2 Kotitehtävät

Perustehtävät

Perustehtävät, jotka tehtiin WWW-TRAKLA-järjestelmän avulla, onnistuivat erittäin hyvin. Niitä järjestettiin 5 kierrosta ja tehtäviin sovellettiin suunniteltua tiukempaa arvosanaskaalaa, jossa hyväksyttyyn suoritukseen riitti 50% pisteistä ja korkeimpaan arvosanaan 5 vaaditiin 90% pisteistä. Arvosanan 5 sai lähes 60% kurssilaisista.  Osasyynä hyvään tulokseen oli varmasti se, että WWW-TRAKLA tarjosi 3-5 palautuskertaa tehtävää kohti, jolloin nähtyään pisteensä vastausta saattoi korjata ja lähettää sen uudelleen arvioitavaksi.  Tämä vain vahvisti oppimista, koska tehtävien luonteen vuoksi yrityksen ja erehdyksen menettely ei ollut mahdollista, vaan suorituksen parantaminen vaati todella asian ymmärtämistä.

Soveltavat tehtävät

Soveltavat tehtävät jaettiin kolmeen erilliseen kierrokseen, jotka jaksotettiin kurssin aikatauluun perustehtävien lomaan.  1. kierroksen tehtävät olivat liian vaikeita.  Tämän vahvisti  ko. kierroksen jälkeen järjestetty nopea kysely, jonka perusteella tehtäviin kului selvästi liikaa aikaa.  Asian täytyi puuttua, koska nämä tehtävät olivat lisäys edellisiin vuosiin verrattuna, vaikka kurssin opintoviikkomäärä pysyi ennallaan. Jatkossa tehtäviä hieman helpotettiin ja lisäksi kaikilla kolmella tehtäväkierroksella nimettiin osa tehtävistä bonustehtäviksi, joista sai ylimääräisiä pisteitä.  Arvosanarajat määriteltiin 3*7 tehtävän maksimipisteiden mukaan, mutta jokaisella kierroksella oli lisäksi 2-3 bonustehtävää

Soveltavat tehtävät päätettiin arvostella pisteillä, vaikka alunperin suunnitelma oli se, että tehtävät arvostellaan hyväksytty / hylätty -linjalla.  Syynä tähän oli se, että tehtävien vaikeustaso poikkesi varsin paljon toisistaan ja oli luontevaa antaa vaikeammasta tehtävästä enemmän pisteitä kuin helpommasta.  Pistearvostelu tarjosi mahdollisuuden hyvittää opiskelijaa myös osittain oikeasta vastauksesta.  Arvosanan 3 sai 50% maksimipisteistä, arvosanan 4 75%:lla ja arvosanan 5 90%:lla maksimipisteistä.  Alempia arvosanoja 1-2 ei annettu, vaan alle 50% tulos katsottiin hylätyksi. Menettely osoittautui kuitenkin virheeksi, koska kävi ilmi, että tehtäviä pisteyttäneiden koosteryhmien antamissa tuloksissa oli liikaa heittoja.  Pieni osa tehtävistä jouduttiin arvostelemaan kokonaan uudelleen opettajan toimesta.  Tässä mielessä alkuperäinen karkeampi seula oli ollut hieman ongelmattomampi.

Koosteryhmät

Koosteryhmien toiminta sujui kohtuullisesti.  Ryhmiä saatiin 7 kpl, joissa oli yhteensä 20 henkeä.  Lähes kaikkien motiivina oli oppia asiaa paremmin, ja he olivat varautuneet muita kurssilaisia suurempaan työmäärään.  Heille annettiin tehtävistä kirjalliset malliratkaisut ja varsin yksityiskohtaiset pisteytysohjeet, jotka käytiin vielä suullisesti läpi.  Osoittautui, että he eivät olleet perehtyneet tehtäviin itsenäisesti ennen ratkaisujen läpikäyntiä.  Kullakin ryhmällä oli ohjaajana joku kurssin henkilökuntaan kuulunut henkilö, joka piti palaverin ryhmän kanssa kullakin kierroksella.  Lisäksi 1. kierroksen jälkeen pidettiin  kaikkien ryhmien kanssa yhteinen koostekeskustelu, jossa käsiteltiin ongelmallisia ratkaisuja ja niiden pisteytystä.  Muilla kierroksilla tätä ei katsottu tarpeelliseksi, vaan epäselvät tapaukset käsiteltiin suoraan ohjaajan kanssa.

Kukin ryhmä kirjoitti raportin tarkastuksen tuloksista kahdelta ensimmäiseltä kierrokselta.  Niissä heidän piti pohtia tehtävien problematiikkaa ja haasteita opiskelijan näkökulmasta, selvittää arvosteluperiaatteitaan, jos ne poikkesivat annetuista ohjeista tai täydensivät niitä. Lisäksi heidän tuli esittää ja kommentoida tyypillisiä tai mielenkiintoisia, joko oikeita tai virheellisiä ratkaisuja. Raportit olivat jossain määrin pettymyksiä ja monessa niistä analyysi jäi hyvin kapeaksi.  Erilaisia esimerkkiratkaisuja oli esitetty vain vähän, mihin yhtenä tärkeänä syynä oli se, että ryhmät eivät halunneet kopioida oppilaiden vastauksia omiin raportteihinsa. Lisäksi monissa tehtävissä useimmat ratkaisut olivat samoja tai lähes samoja kuin malliratkaisuissa esitetyt vaihtoehdot, jolloin niiden esittäminen uudelleen ei ollut mielekästä.  Opettajan kannalta hyödyllistä tietoa kertyi siitä, että ryhmät luettelivat tehtävissä olleita tyyppivirheitä. Tulevaisuudessa näihin voidaan siten paremmin kiinnittää huomiota.

Kun tutkittiin erilaisten tehtävien arvostelua, todettiin, että matemaattiset tehtävät olivat ongelmattomia, koska niihin oli pääsääntöisesti vain yksi oikea ratkaisu ja kaavojen johtamiseen oli vain hyvin suppea määrä vaihtoehtoja.  Samoin essee-kysymykset, joissa oppilaiden piti pohtia tai eritellä eri ratkaisuvaihtoehtoja jossakin ongelmassa, olivat varsin selkeitä arvostella.  Ohjeissa oli annettu tiedot, mitä asioita vastauksesta tuli löytyä ja paljonko kustakin asiasta sai pisteitä. Sen sijaan ne tehtävät, joissa piti suunnitella jokin uusi algoritmi, osoittautuivat osalle koosteryhmille liian vaativiksi arvioida.  Ensinnäkin annetun algoritmin oikeellisuuden selvittäminen edes pääpiirteissään ei ole helppoa sinällään.  Toiseksi ryhmillä ei ollut pohjaa arvioida, kuinka kauan ratkaisua kannattaa yrittää selvittää.  Osa käytti liiaksi aika epäselvien tuhruisten ratkaisujen selvittämiseen, kun opettaja olisi aika pienellä katsomisella todennut, ettei tästä vastauksesta kannata lähteä ottamaan tolkkua.  Arvosteluperiaatteena oli näet jo etukäteen mainittu ratkaisun selkeys.  Juuri tästä johtuen algoritmisissa tehtävissä arvostelutuloksissa oli selviä virheitä ja osa tehtävistä jouduttiin tarkastamaan uudelleen kurssin henkilökunnan toimesta.

Koosteryhmien omat kokemukset työstään olivat myönteisiä työmäärästä riippumatta.  He kokivat oppineensa paljon joutuessaan ottamaan selvää toisten ratkaisuista.  Lisäksi yleinen kommentti oli, että "en enää koskaan jätä suttuista paperia arvosteltavaksi", kun he olivat itse nähneet, miten hankalaa niiden tarkastaminen on ja miten se voi vaikuttaa tulokseenkin.

Tehtävien vaikeustason ja vaatimustason helpottuminen näkyi tuloksissa niin, että lopputuloksissa 80% oppilaista läpäisi tehtävät suoraan (osa täydentää vielä kesän aikana suorituksia) ja reilusti yli puolet sai vähintään arvosanan 4.  Arvosanajakaumaa vielä hieman paransi se, että kurssin palautekyselyyn vastaamisesta sai 2 ylimääräistä pistettä (max 77 pistettä).

Seuraavassa oppilailta saatua palautetta:
 

4.3 Projekti

Projekti järjestettiin pienenä kokeiluna, josta saataisiin kokemuksia tulevaisuuden varalle.  Mukaan ilmoittautui seitsemän 2-3 hengen työryhmää, jotka saivat tästä ylimääräisestä suosituksesta kaksi opintoviikkoa lisää kurssin normaalisuorituksen päälle. Jokaisella ryhmällä oli ohjaajana joku kurssin henkilökunnasta. Yksi ryhmä jätti työnsä kesken.

Kukin ryhmä perehtyi annettuun aiheeseen ja laati ensin ns. teoriaraportin, johon se kokosi vertailtaviin algoritmeihin liittyvän aineiston (ominaisuudet, koodi), jonka se oli kirjallisuuslähteistä koonnut.  Sen lisäksi sen tuli esittää suunnitelma, miten kokeet suoritetaan ja tuloksia käsitellään.  Koska kokeellinen algoritmitutkimus on asia, mitä ei oppikirjoissa lainkaan käsitellä ja muutenkin asiasta on kirjoitettu suhteellisen vähän, ryhmät saivat lähteeksi kaksi TKK:lla tehtyä väitöskirjaa, joissa kokeellisella työllä on ollut merkittävä osuus.  Luonnollisestikaan heidän ei tarvinnut perehtyä ko. kirjojen teoriaosuuteen vaan ainoastaan siihen osaan, joka käsitteli koejärjestelyjä, mittaamista ja tulosten käsittelyä.  Kuitenkin he saivat tällä tavoin myös kosketuksen alan tutkimukseen.

Kirjallisen materiaalin lisäksi ryhmien käytössä oli valmiina ohjelmia tai ohjelmakoodia, joiden avulla he saattoivat luoda testidataa ja suorittaa mittaukset.  Näin meneteltiin, koska tavoitteena oli, että projekti keskittyisi kokeellisen tutkimuksen problematiikkaan, eikä liikaa aikaa ja energiaa menisi "koevälineiden" pystyttämiseen.

Erillisessä palaverissa, jossa läsnä oli kurssin vetäjä ja ryhmän ohjaaja, käytiin läpi ryhmän esittämä koesuunnitelma ja esitettiin siihen kommentteja ja parannuksia.  Tämä osuus oli lähinnä kurssin vetäjän vastuulla, sillä kurssin opiskelija-assistenteilla ei ollut vielä paljonkaan näkemystä kokeiden problematiikkaan.

Projektin lopputulokset esitettiin suullisesti minikonferenssissa, jossa jokainen ryhmä esitti tuloksensa n. 20 minuutin mittaisessa esitelmässä muille ryhmille. Lisäksi he laativat täydellisemmän kirjallisen raportin, jonka kurssin vetäjä arvosteli.  Koska ryhmien jäsenet olivat 1-3 vuosikurssin opiskelijoita, joista useimmat eivät luultavasti olleet pitäneet esitelmiä TKK:lla aikaisemmin, konferenssiesitelmissä oli suuria tasoeroja.  Sitä olisi voinut varmasti tasoittaa antamalla etukäteen esiintymisohjeita. Lisäksi jälkikäteen ajatellen palautteen antaminen esitelmästä lyhyenä kirjallisena kommenttina olisi ollut järkevää.  Itse loppuraportit olivat tasoltaan paljon tasaisempia ja mukana oli todella hyviä raportteja.

Projektiryhmiltä ei kerätty erikseen palautetta.  Loppuraporteissa annettu vapaaehtoinen palaute oli varsin yleisluontoista.  Toisaalta ryhmien toimintaa seurattiin palavereissa jo erikseen, jolloin säilyi hyvä tuntuma siihen, mitä ongelmia ilmeni.

 4.4 Tentti

Tentti onnistui hyvin.  Se ei ollut erityisen vaikea, mutta kattoi keskeiset tavoitteet kurssilla. Tentin arvosanajakauma oli poikkeuksellisen korkea.  Vertailu edellisten vuosien tentteihin on luonnollisesti vaikeaa, koska tentit ovat olleet erilaisia. Vertailua helpottaa se, että tyypillisesti vaikeassa tentissä arvosanarajat laskevat ja helpossa nousevat.  Nyt rajat olivat erittäin korkealla ja siitä huolimatta tentin keskiarvosana nousi 0.5:llä numerolla (arvosanaskaala 0-5).  Palautekyselyssä opiskelijat arvioivat tenttiä seuraavasti:

4.5 Arvosana ja kokonaisarvio

Perustehtävien ja sovellustehtävien painoarvo oli kummallakin 30% ja tentillä 40% kurssin kokonaisarvosanasta.  Projekti arvosteltiin erikseen skaalalla 1-5.

Seuraavassa palautetta koko kurssista (kaikkia kysymyksiä ei ole tähän laitettu, koska osa niistä on teknisiä luonteeltaan).

Kurssi oli menestys.  Parhaiten sitä voidaan kuvata sillä, että

5. Jatkosuunnitelmat

Saatujen kokemusten perusteella on hahmoteltu useita tapoja kehittää kurssia.

Perustehtävien osalta kurssi toimii jo nykyisellään hyvin, joten niihin ei tarvita muutoksia, muuten kuin tehtävävalikoimaa laajentamalla ja tehtävistä automaattisesti annettavaa palautetta kehittämällä.  Nykyisessä muodossaan ne takaavat joka tapauksessa vankan perusosaamisen tason, jonka päälle kurssn muut osat voidaan rakentaa.

Soveltavien tehtävien osalta kehittämistarpeita on sen sijaan runsaasti.  Tämä tuli esiin erityisesti siitä, että perustehtäviä pidettiin opettavaisempina kuin soveltavia tehtäviä, kun tavoite oli päinvastainen.  Työmäärän alussa aiheuttama shokkivaikutus varmaan vaikutti arvioon.  Lisäksi joissakin tehtävissä oli pieniä virheitä ja epätarkkuuksia, mikä samoin laski tehtävien motivaatiota.  Seuraavassa on hahmoteltu tuleva toteutustapa:

Osa tehtävistä pidetään ennallaan, erityisesti matemaattiset tehtävät, joihin vastaus on eksakti.  Näistä voidaan mahdollisesti jotkin siirtää perustehtävien puolelle automaattisen tarkistuksen piiriin. Essee-tehtävien osuutta kasvatetaan ja ne muotoillaan siten, että tehtävissä pohditaan jotain tiettyä ongelmaa ja annetun algoritmin virittämistä siihen soveltuvaksi.  Samalla opiskelijat joutuvat pohtimaan erilaisia ristivetoja, joita ongelmaan sisältyy.  Nämä tehtävät tarkastetaan entiseen tapaan koosteryhmien avulla, koska kokemusten mukaan niiden tarkistamisessa ei ollut suuria ongelmia.

Suunnittelutehtävien tulee olla konkreettisempia.  Tehtävän perustyyppinä on se, että annetaan ongelma ja pyydetään esittämään sen tekniseen ratkaisuun tarvittavat tietorakenteet ja algoritmit ja perustelemaan valintansa.  Ongelmat pyritään  asettamaan siten, että niihin ei ole yhtä ainoaa selkeää oikeaa vastausta, vaan oppilaiden on otettava kantaa joihinkin trade-offeihin (ja havaittava nämä).

Oppilaat ratkaisevat suunnittelutehtäviä entiseen tapaan korkeintaan 3 hengen työryhmissä, mutta tehtävien tarkastaminen  organisoidaan kokonaan uudelleen siten, että kaikki joutuvat sekä ratkaisemaan tehtäviä että arvioimaan ratkaisuja.  Saatujen kokemusten perusteella on hyvin hyödyllistä, että opiskelijat joutuvat katsomaan ja ottamaan selvää toistensa ratkaisuista.  Asiaa täytyy kuitenkin ohjata ja valvoa tarkemmin, jotta arviointien epätasaisuus ei pääsisi loukkaamaan kenenkään oikeusturvaa.

Seuraavalla kurssilla asiaa lähestytään sillä tavalla, että opiskelijat joutuvat simuloimaan tietynlaista tarjouskilpailua:  He saavat useilta eri ryhmiltä ehdotuksen, miten annettu ongelma ratkaistaisiin ja miksi se pitäisi ratkaista juuri näin.  Heidän tehtävänään on sitten arvioida ratkaisujen laatu ja asettaa ne tavalla tai toisella paremmuusjärjestykseen.  Toinen analogia, jolla menettelyä motivoidaan on tilanne, jossa henkilö kysyy muutamalta kollegalta neuvoa, miten asia kannattaisi ratkaista ja saatuaan erilaisia neuvoja hän joutuu päättämään, mitä niistä kannattaisi noudattaa. Menettelyllä pyritään myös siihen, että tehtävien ratkaisijat asennoituisivat tilanteeseen myös kuten tarjouskilpailuun - huonoja, epäselviä ja keskeneräisiä ehdotuksia ei kannata lähettää, koska niillä ei ole mahdollisuuksia.

Käytännössä asia toteutetaan seuraavasti.  Kaikki työryhmät jaetaan kahteen yhtäsuureen osaan A ja B. Ensimmäisellä kierroksella A-ryhmät ratkaisevat tehtäviä ja B-ryhmät tarkastavat niitä.  Toisella kierroksella roolit vaihtuvat. Jokainen ryhmä ratkoo esim. 3 erilaista tehtävää.  Heidän ratkaisunsa jaetaan viidelle eri tarkastusryhmälle arvioitavaksi.  Samat tarkastusryhmät saavat kaikkiaan viiden ratkaisijaryhmän työt arvioitavakseen, jolloin jokainen tarkastusryhmä käy läpi 5 eri ratkaisua kuhunkin kolmeen eri tehtävää.

Tarkastajat toimivat asiakkaan roolissa.  Heidän tehtävänään on vertailla "tarjouskilpailussa saatuja esityksiä" ja arvioida niiden keskinäinen paremmuusjärjestys arvostelemalla ne asteikolla 1-5 (samoja arvosanoja voi myös käyttää).  Ryhmän tulee perustella arvionsa tulokset kirjallisesti ja laatia arviontipöytäkirja, jonka kurssin vetäjät arvostelevat.

Ryhmät organisoidaan siten, että 5 eri arviointiryhmää arvioi täsmälleen samoja ratkaisuja, jolloin kurssin vetäjien on helppo vertailla näiden raportteja keskenään ja pisteyttää ne sen perusteella.  Jos arvioijien tulokset ovat hyvin samansuuntaisia, ei ole edes tarpeen lukea ratkaisuja itse, mutta jos ne menevät pahasti ristiin, tämä on syytä tehdä. Koska kunkin ratkaisuryhmän työn arvioi 5 eri tarkastusryhmää, voidaan työn arvosana määrittää siten, että otetaan viidestä arviosta paras ja huonoin pois ja lopuista otetaan keskiarvo.  Näin saavutetaan pitkälle riippumaton tulos.  Kotiinveto "tutun ryhmän" toimesta ei onnistu, koska paras tulos jää pois.  Sen sijaan se paljastuu, jos arvioijien tulos kovasti poikkeaa muiden arvioijien tuloksista.

Menettelyllä päästään siihen, että sunnittelutehtävät ovat isompia ja realistisempia.  Lisäksi jokainen joutuu tutustumaan ratkaisujen arviointiin ja sen vaikeuteen ja perustelemaan näkemyksensä.  Arviointiprosessi on myös realistisen tuntuinen ja koska arvioita verrataan toisiinsa, työtä ei voi tehdä hutiloiden. Kurssin vetäjien tehtäväksi jää kummallakin kierroksella arviointiraporttien lukeminen.  Jos työryhmiä on n. 200 kuten tällä hetkellä, vetäjät joutuvat lukemaan ja pisteyttämään 100 vertailuraporttia / kierros + tekemään jonkin verran ylimääräisiä tarkistuksia.  Työtä vielä helpottaa se, että arviot tehdään 5 raportin nipuissa, joita voidaan verrata keskenään.  Tämä on paljon kohtuullisempi työ verrattuna siihen, että luettaisiin itse 200*3 ratkaisua ja arvioitaisiin ne itse
 
 

6. Yhteenveto

 

 Viitteet

/1/  J. Hyvönen, L.Malmi:  TRAKLA - A System for Teaching Algorithms Using Email and a Graphical Editor. Proceedings of HYPERMEDIA in Vaasa'93, pp. 141-147, 1993.

/2/ A. Korhonen:  World Wide Web (WWW) tietorakenteiden ja algoritmien tietokoneavusteisessa opetuksessa, Master's Thesis, Department of Computer Science, Helsinki University of Technology, 1997.