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.
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ä.
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.
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.
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ä.
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.
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.
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.
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.
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.
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:
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%)
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.
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:
Huonosti :
(0%)
Kohtalaisesti : 33 (9%)
Hyvin : 179 (52%)
Erittäin hyvin : 132 (38%)
6) Paljonko aikaa käytit perustehtävien tekemiseen, keskimäärin
kierrosta kohden.
(344 vastannutta)
0-5 tuntia : 189 (54%)
5-10 tuntia : 138 (40%)
10-15 tuntia : 13 (3%)
yli 15 tuntia : 4
(1%)
7) Anna yleisarvosana perustehtäville (mielekkyys, oppimisen
kannalta, toteutustapa)
(341 vastannutta)
1 : (0%)
2 : 12 (3%)
3 : 56 (16%)
4 : 209 (61%)
5 : 64 (18%)
keskiarvo :3.95
8) Miten hyödylliseksi koit sovellustehtävät?
(343 vastannutta)
Täysin hyödyttömiksi : 6
(1%)
Ehkä niistä jotain iloa on : 124
(36%)
Hyödyllisiä : 176 (51%)
Erittäin hyöd. ja opet. teht. :
37 (10%)
9) Olivatko sovellustehtävien tehtävänannot riittävän
selkeitä ja yksiselitteisiä
(342 vastannutta)
Hyvin epäselviä : 11
(3%)
Epäselviä : 123 (35%)
Melko selkeitä : 191 (55%)
Hyvin selkeitä : 17
(4%)
10) Mihin suuntaan sovellustehtäviä pitäisi mielestäsi
kehittää? Valitse vaihtoehto, joka parhaiten vastaa käsitystäsi
(341 vastannutta)
Vähemmän tehtäviä : 67
(19%)
Helpompia tehtäviä : 101
(29%)
Enemmän alg. konstruointiteht. : 55
(16%)
Enemmän esseetehtäviä : 10
(2%)
Nykyinen valikoima & määrä hyvä
: 108 (31%)
11) Mitkä olivat suurimmat vaikeudet sovellustehtävissä
(valitse parhaiten sopiva)
(340 vastannutta)
Pseudokoodin kirjoittaminen : 28
(8%)
Tarvittiin tietoja, ei luennolta/kirjasta help. löyt.
: 84 (24%)
Niihin meni liikaa aikaa : 118
(34%)
Tehtävien vaikeus : 79
(23%)
Ei ollut ongelmia : 31
(9%)
12)Paljonko aikaa käytit sovellustehtävien tekemiseen,
keskimäärin kierrosta kohden.
(341 vastannutta)
0-5 tuntia : 23 (6%)
5-10 tuntia : 96 (28%)
10-15 tuntia : 142 (41%)
15-20 tuntia : 63 (18%)
yli 20 tuntia : 17 (4%)
13) Anna yleisarvosana sovellustehtäville (mielekkyys, oppimisen
kannalta, toteutustapa)
(340 vastannutta)
1 : 25 (7%)
2 : 77 (22%)
3 : 144 (42%)
4 : 85 (25%)
5 : 9 (2%)
keskiarvo :2.92
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.
1 : 1 (0%)
2 : 12 (3%)
3 : 68 (22%)
4 : 163 (52%)
5 : 65 (21%)
keskiarvo :3.90
Seuraavassa palautetta koko kurssista (kaikkia kysymyksiä ei ole tähän laitettu, koska osa niistä on teknisiä luonteeltaan).
Perustehtävät : 262
(76%)
Sovellustehtävät : 80
(23%)
16) Kumpi mielestäsi paremmin auttaa kurssin sisällön
oppimista.
(343 vastannutta)
Perustehtävät : 274
(79%)
Tenttiin valmistautuminen : 69
(20%)
17) Kumpi mielestäsi paremmin auttaa kurssin sisällön
oppimista.
(343 vastannutta)
Sovellustehtävät : 179
(52%)
Tenttiin valmistautuminen : 164
(47%)
alle 40 tuntia : 10 (2%)
40-80 tuntia : 91 (26%)
80-120 tuntia : 154 (44%)
120-160 tuntia : 78 (22%)
yli 160 tuntia : 10 (2%)
31) Onko kiinnostuksesi aiheeseen lisääntynyt/vähentynyt?
(342 vastannutta)
Romahtanut : 3 (1%)
Vähentynyt : 16 (5%)
Lisääntynyt : 203 (75%)
Lisääntynyt paljon : 48
(17%)
En ota kantaa : 72
32) Onko kurssi ollut vaikea?
(343 vastannutta)
Työtä ja tuskaa : 19
(5%)
Hankala : 76 (22%)
Sopivan vaativa : 208 (60%)
Melko helppo : 38 (11%)
Helpot 3 ov:a : 2
(0%)
33) Tuntuuko, että opintojaksossa on sopivasti työtä
verrattuna opintoviikkoihin?
(341 vastannutta)
Aivan liikaa : 18 (5%)
Paljon työtä : 135
(39%)
Juuri sopivasti : 182 (53%)
Aika vähän : 5
(1%)
Helpot 3 ov:a : 1
(0%)
34) Anna kurssille yleisarvosana (1-5)
(343 vastannutta)
1 : (0%)
2 : 11 (3%)
3 : 82 (23%)
4 : 203 (59%)
5 : 47 (13%)
keskiarvo :3.83
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
/2/ A. Korhonen: World Wide Web (WWW) tietorakenteiden ja algoritmien
tietokoneavusteisessa opetuksessa, Master's Thesis, Department of Computer
Science, Helsinki University of Technology, 1997.