Empiirinen koe PlanAnin kuvallisista metaforista Tuija Stützle 22.6.2004 Joensuun yliopisto Tietojenkäsittelytiede Pro gradu -tutkielma
Tiivistelmä Muuttujan rooli kuvaa sitä miten muuttuja saa peräkkäiset arvonsa ja mikä sen suhde on muihin muuttujiin. Noviisitason proseduraalisen ohjelmoinnin rooleja on löydetty yhteensä kymmenen: kiintoarvo, askeltaja, tuoreimman säilyttäjä, sopivimman säilyttäjä, kokooja, muuntaja, seuraaja, yksisuuntainen lippu, järjestelijä ja tilapäissäilö. PlanAni on ohjelma-animaattori, jolla animoidaan pieniä ja yksinkertaisia ohjelmia muuttujien rooliteoriaan perustuen. Jokaista muuttujaa havainnollistetaan sen roolia esittävällä kuvalla ja muuttujan saamia arvoja sekä muuttujan vertailua havainnollistetaan rooliin kuuluvilla animaatioilla. Metaforatutkimuksen mukaan oikein valittu metafora helpottaa asian ymmärtämistä ja stimuloi ajatusprosesseja. Tässä tutkimuksessa on kartoitettu miten PlanAnissa rooleista käytetyt kuvalliset metaforat välittävät roolien ominaisuuksia ja näin edistävät oppimista. Tutkimuksen kohteena oli viisi roolia: kiintoarvo, askeltaja, seuraaja, kokooja ja tilapäissäilö. Kokeen suoritti kaksi koeryhmää, joista rooliryhmä sai arvioitavaksi PlanAnissa käytetyt alkuperäiset roolikuvat ja kontrolliryhmä koetta varten keksityt lumekuvat. Kokeella kerättiin tietoa metaforien ominaisuuksista ennen kuin kuvat esiteltiin PlanAnilla, mitattiin kuinka hyvin koehenkilöt tunnistavat roolit kuvista PlanAnilla animoidun ohjelman suorituksen jälkeen, pyydettin koehenkilöiden arvioita eri kuville sekä vaihtoehtoja rooleja paremmin esittäviksi kuviksi, mitattiin rooliteorian omaksumista ennen ja jälkeen PlanAnilla suoritettua animointia sekä kyseltiin koehenkilöiden mielipiteitä roolikuvien tarpeellisuudesta. Tulosten mukaan kiintoarvoa, askeltajaa ja kokoojaa esittävät alkuperäiset roolikuvat välittävät roolien ominaisuuksia oppilaille lumekuvia paremmin. Seuraajan ja tilapäissäilön alkuperäiset roolikuvat eivät tulosten perusteella ole lumekuvia parempia metaforia rooleilleen. ACM-luokat (ACM Computing Classification System, 1998 version): H.1.2, D.2.2, K.3.2 Avainsanat: muuttujien roolit, animointi, visualisointi, ohjelmointi, metafora, empiirinen tutkimus, ohjelmoinnin psykologia, ohjelmoinnin opettaminen i
Esipuhe Lähdin neljänkympin kriisin tuloksena opiskelemaan uudelleen tietojenkäsittelytiedettä. Takana oli atk-instituutin datanomitutkinnon lisäksi parikymmentä vuotta alan töitä erilaisissa yrityksissä ja myös itsenäisenä yrittäjänä. Päälimmäisenä tunteena oli: tätäkö tämä nyt sitten on seuraavat 20 vuotta? No ainakin parin vuoden opiskelu toisi hieman muutosta puuduttavaan arkeen. Opiskelurutiinin löytymisen jälkeen kurssi seurasi toista ja asiat tuntuivat tutuilta ja melko helpoilta omaksua. Sitten tuli ohjelmoinnin empiirisen tutkimuksen kurssi, joka teki minuun suuren vaikutuksen ja sai kiinnostumaan tutkimuksesta. Halusin kokeilla miltä oikean tutkimuksen teko tuntuu. Gradu oli pyörinyt mielessä lähinnä isona ja pelottavana peikkona ja halusin varmistaa, että saan mielenkiintoisen aiheen jonka avulla jaksan taistella peikkoa vastaan. Siispä keräsin rohkeuteni ja marssin professori Jorma Sajaniemen juttusille sopivan tutkimuskohteen löytämiseksi. Kiinnostuin välittömästi Sajaniemen kehittämästä muuttujien rooliteoriasta ja halusin olla mukana sen tutkimuksessa. Alussa oli vaikeuksia löytää sopivaa metaforakirjallisuutta, koska sitä on kirjastot pullollaan aiheina kielitiede, runous, musiikki jne. Sajaniemi opasti minut oikeille lähteille, joita ei olisi kirjastosta löytynytkään. Puoli vuotta kestäneen sulattelun jälkeen aloin kirjoittaa gradua ja samalla suunnitella koetta. Työ oli mielenkiintoista ja erittäin haastavaa ja siinä sivussa sain gradun valmiiksi. Suurin ongelma oli koehenkilöiden suostuttelu, mutta lopulta sain heitäkin tarpeeksi tilastokelpoisen aineiston saamiseksi. Haluaisin kiittää professori Sajaniemeä kärsivällisestä ja rakentavasta ohjauksesta, Pirkko Pölöstä jatkuvasta kannustuksesta sekä avusta kokeen järjestämisessä, Ville Rapaa PlanAnin muutoksista sekä teknisestä tuesta, Eija Mikkosta sekä Marja Valkosta kokeen esitestauksesta ja varsinaisia koehenkilöitä kokeeseen osallistumisesta. Peikko on voitettu. ii
Sisältö 1 Johdanto 1 2 Muuttujien roolit 3 2.1 Muuttujan rooli käsitteenä....................... 3 2.2 Muuttujien roolit ja niiden ominaisuudet................ 4 2.3 Ohjelman visualisointi PlanAnilla................... 6 2.4 Muuttujan roolien visualisointi..................... 8 2.5 Roolipohjainen animointi PlanAnissa................. 9 2.6 Muuttujien roolit ohjelmoinnin oppimisen apuvälineenä........ 12 3 Metafora 14 3.1 Metaforan toimintaperiaate ja käyttötarkoitus............. 14 3.2 Metaforan käyttö tietojärjestelmissä.................. 17 3.3 Esimerkkejä tietojärjestelmien metaforista............... 19 3.4 Menetelmä metaforien valintaan.................... 21 4 Empiirinen koe 24 4.1 Koesuunnitelma............................. 25 4.1.1 Koehenkilöt........................... 26 4.1.2 Materiaalit........................... 26 4.1.3 Koejärjestely.......................... 29 4.1.4 Esikoe.............................. 32 4.2 Tulokset................................. 32 4.2.1 Metaforien ominaisuudet.................... 32 4.2.2 Roolin tunnistaminen kuvasta ja kuvan arviointi........ 36 4.2.3 Roolikuvien käytön tarpeellisuus................ 39 4.2.4 Roolien tunnistaminen ohjelmista............... 40 4.3 Tarkastelu................................ 41 4.3.1 Askeltaja............................ 42 4.3.2 Kiintoarvo........................... 43 4.3.3 Seuraaja............................. 43 4.3.4 Kokooja............................. 44 4.3.5 Tilapäissäilö.......................... 45 4.3.6 Rooliteorian omaksuminen................... 46 iii
5 Yhteenveto 47 Viitteet 49 Liite 1: Muuttujien roolien kertausmateriaali Liite 2: Muuttujien roolien kertaustehtävät Liite 3: Roolikuvien ominaisuuksia kartoittavat tehtävät Liite 4: Lumekuvien ominaisuuksia kartoittavat tehtävät Liite 5: PlanAnilla suoritettava tehtävä Liite 6: Roolin tunnistus roolikuvasta ja roolikuvan arviointitehtävä Liite 7: Roolin tunnistus lumekuvasta ja lumekuvan arviointitehtävä Liite 8: Palautetehtävä kuvien käytön tarpeellisuudesta roolien esittämisessä Liite 9: Roolien tunnistaminen ohjelmista -tehtävä Liite 10: Ohjeet kokeen pitäjälle iv
1 Johdanto Ohjelmoimaan oppiminen on monelle vaikeaa ja tätä helpottamaan yritetään löytää erilaisia apuvälineitä ja keinoja. Sajaniemi (2002a) on kehittänyt teorian muuttujien rooleista, joiden on todettu helpottavan ohjelmoinnin alkeiden oppimista ja parantavan oppimistulosta (Sajaniemi & Kuittinen, in press). Muuttujan rooli kuvaa sitä, miten muuttuja saa peräkkäiset arvonsa ja mikä sen suhde on muihin muuttujiin. Erilaiset muuttujien roolit löytyivät analysoimalla kolmen aloittelijoille tarkoitetun Pascaloppaan esimerkkiohjelmia: kiintoarvo, askeltaja, tuoreimman säilyttäjä, sopivimman säilyttäjä, kokooja, muuntaja, seuraaja, yksisuuntainen lippu, järjestelijä ja tilapäissäilö. Kiintoarvo on muuttuja, jonka arvoa ei muuteta alustuksen jälkeen. Tyypillisesti kiintoarvo on syötteenä annettu tieto, joka talletetaan muuttujaan ohjelman suorituksen ajaksi. Askeltaja saa arvonsa jollakin ennustettavalla tavalla, esimerkiksi taulukon läpikäynnissä toimiva indeksi on askeltaja. Tuoreimman säilyttäjä säilyttää viimeisimmän käsiteltävänä olevasta sarjasta arvoja, esimerkiksi viimeksi luettu syöte voidaan tallettaa tuoreimman säilyttäjään. Jokaisella roolilla on oma tyypillinen käyttäytymisensä, joka opetetaan aloittelevalle ohjelmoijalle sitä mukaa kuin ne esiintyvät esimerkkiohjelmissa. Muuttujien roolien opettamisen yhteydessä oppilaille annetaan myös strategista tietoa roolien käytöstä ohjelmissa. Roolit käsitteinä helpottavat ohjelmoinnin periaatteiden selittämistä oppilaille. Ohjelmakoodia havainnollistamaan on kehitetty myös ohjelma-animaattori, PlanAni (Sajaniemi & Kuittinen, 2003), jolla rooliteoriaan perustuen animoidaan yksikertaisten ohjelmien suoritusta. Jokaista muuttujan roolia esittää kuva, jolla pyritään välittämään käyttäjälle muuttujan roolin tärkeimpiä ominaisuuksia. Esittelen rooliteorian ja siihen perustuvan PlanAni-ohjelma-animaattorin luvussa 2. Tässä pro-gradu-tutkielmassani olen empiirisellä kokeella tutkinut PlanAnissa käytettyjä roolikuvia ja niiden sopivuutta esittämään kyseistä roolia. Olen perustanut tutkimukseni metaforateoriaan ja käyttänyt tutkimusmenetelmänä Alty & al:in (2000) metaforan valintaan, toteutukseen ja arviointiin kehittämää ohjeistoa, joka on kehitetty käytännön kokemuksiin nojaten ja viimeistelty useiden eri maissa toimivien ohjelmistotuotannon ammattilaisten ryhmätyönä. Luvussa 3 kerron metaforateoriasta ja sen soveltamisesta tietojärjestelmissä sekä esittelen käyttämäni tutkimusmenetelmän. 1
Empiirinen koe kartoitti viiden muuttujan roolin ominaisuuksia: askeltaja, kiintoarvo, seuraaja, kokooja ja tilapäissäilö. Kaikkia rooleja ei otettu mukaan tutkimukseen, koska koetilaisuus olisi silloin venynyt kohtuuttoman pitkäksi ja koehenkilöiden saatavuus entisestäänkin vaikeutunut. Lisäksi etukäteen ei voitu tietää kuinka hyvin koejärjestely toimii ja saadaanko sillä esille eroja kuvien välillä. Koska koejärjestely osoittautui toimivaksi näillä viidellä ensimmäisellä roolilla, voidaan tutkimusta jatkaa tekemällä sen pohjalta koe viimeisten roolikuvien testaamiseksi. Koetta varten kehitin rooleille myös ns. lumekuvat, jotka annettiin kontrolliryhmän tutkittaviksi; rooliryhmä arvioi alkuperäisiä roolikuvia. Kokeella halusin selvittää heijastavatko alkuperäiset roolikuvat roolien ominaisuuksia paremmin kuin lumekuvat, tunnistetaanko alkuperäiset roolikuvat PlanAnin käytön jälkeen paremmin kuin lumekuvat sekä mitä mieltä koehenkilöt ovat kuvista. Lisäksi halusin saada koehenkilöiden omia ehdotuksia rooleja paremmin esittäviksi kuviksi sekä palautetta siitä onko roolien esittäminen kuvilla ylipäätään tarpeellista. Esittelen luvussa 4 koehenkilöt ja tehtävät sekä kerron kokeen käytännönjärjestelyistä, tuloksista ja niiden arvioinnista. Lopuksi on yhteenveto luvussa 5. 2
2 Muuttujien roolit Sajaniemi ja Kuittinen (in press) ovat kehittäneet uuden tavan opettaa ohjelmoinnin alkeita aloittelijoille. Teorian mukaan ohjelmoinnin alkeiden oppiminen helpottuu ja tulos paranee, kun oppilaille esitetään esimerkkiohjelmia selittäen niitä muuttujan roolikäsitteen avulla. Oppilaille saadaan roolipohjaisen opetuksen avulla välitettyä niin sanottua hiljaista tietoa, jota yleensä syntyy vasta pidemmän ohjelmointikokemuksen tuloksena. Lisäksi ohjelman visualisoinnin PlanAni-ohjelma-animaattorin avulla on todistettu antavan oppilaille syvempää ymmärrystä ohjelman sisällöstä kuin pelkkä rooleihin perustuva opetus ilman visualisointia. Tässä luvussa esittelen ensin erilaiset muuttujien roolit ja niiden ominaisuudet. Seuraavaksi kerron muuttujien rooliteoriaan perustuvasta ohjelmakoodin visualisoinnista PlanAnilla ja lopuksi esittelen tutkimustietoa PlanAnin käytöstä ohjelmoinnin alkeiden opetuksessa. 2.1 Muuttujan rooli käsitteenä Muuttujan rooli (the role of variable) kuvaa sitä, miten muuttuja saa peräkkäiset arvonsa ja mikä sen suhde on muihin muuttujiin (Sajaniemi, 2002a). Rooli ei siis kuvaa sitä, mihin tarkoitukseen muuttujaa käytetään. Kuvassa 1 olevassa ohjelmassa on käytetty useita rooleiltaan erilaisia muuttujia. Muuttuja fib saa alkuarvokseen ensimmäisen Fibonacci-luvun eli ykkösen. Sen jälkeen fib-muuttujaan lasketaan aina seuraava Fibonacci-luku summaamalla kaksi aiempaa Fibonacci-lukua yhteen. Tämänkaltaiselle muuttujalle on Sajaniemen teoriassa (2002a) annettu rooli kokooja (gatherer). Lastfib-muuttuja saa aina arvokseen fibmuuttujan vanhan arvon eli se ikäänkuin seuraa fib-muuttujaa ja on siis roolinimeltään seuraaja (follower). Jotta saataisiin seuraava Fibonacci-luku laskettua, täytyy viimeistä edellinen Fibonacci-luku tallettaa tilapäisluonteiseen muuttujaan temp, jonka roolina on tilapäissäilö (temporary). Number-muuttuja saa vain yhden arvon ja säilyttää sen kiinteästi koko ohjelman suorituksen ajan, joten se on rooliltaan kiintoarvo (fixed value). Muuttuja i saa arvoja kolmosesta lähtien number-muuttujan sisältämään arvoon saakka kasvaen aina yhdellä suuremmaksi. Tällaista ennalta tiedetyllä numerosarjalla arvotettua muuttujaa kutsutaan roolinimellä askeltaja (stepper). 3
2.2 Muuttujien roolit ja niiden ominaisuudet Sajaniemen (2002a) mukaan erilaiset muuttujien roolit löytyivät analysoimalla kolmen aloittelijoille tarkoitetun Pascal-oppaan esimerkkiohjelmia. Näin löytyneet yhdeksän roolia kattoivat 99 prosenttia muuttujista. Myöhemmin (Ben-Ari & Sajaniemi, 2004) löytyi vielä yksi rooli lisää, muuntaja. Näin on syntynyt seuraava roolien joukko. Kiintoarvo: Kiintoarvo on muuttuja, jonka arvoa ei muuteta alustuksen jälkeen. Ohjelmassa voi olla useampia erilaisia alustuksia muuttujalle, mutta alustuksen jälkeen sen arvo ei muutu. Esimerkkinä kiintoarvosta voisi olla syötteenä annettu tieto, joka talletetaan muuttujaan ohjelman suorituksen ajaksi. program fibonacci; var lastfib,fib,temp,number,i:integer; begin lastfib := 1;fib := 1; if number <= 2 then writeln( Kaksi ensimmäistä ovat kumpikin 1. ) else begin writeln( 1.luku on 1 ); writeln( 2.luku on 1 ); for i := 3 to number do begin temp := lastfib; lastfib := fib; fib := fib + temp; writeln(i:2,.luku on,fib) end end end. Kuva 1: Fibonacci-ohjelma Pascalilla. 4
Askeltaja: Askeltaja on muuttuja, joka saa arvonsa jollain ennustettavalla tavalla. Esimerkkinä askeltajasta voisi olla muuttuja, joka toimii indeksinä taulukon läpikäynnissä tai muuttuja, jolla lasketaan syötteiden lukumäärä. Tuoreimman säilyttäjä: Tuoreimman säilyttäjä on muuttuja, joka säilyttää viimeisimmän käsiteltävänä olevasta sarjasta arvoja. Esimerkkinä voisi olla viimeksi luettu taulukon alkio, kun ollaan käymässä taulukkoa läpi askeltajan avulla. Tuoreimman säilyttäjän arvo voidaan myös muuntaa toisenlaiseen talletusmuotoon heti arvon asetuksen jälkeen. Myös viimeksi luettu syöte voidaan tallettaa tuoreimman säilyttäjään. Sopivimman säilyttäjä: Sopivimman säilyttäjään talletetaan jollakin tavalla mitattu paras arvo tietystä käsiteltävänä olevasta sarjasta. Muuttuja voi vaihtaa arvoaan useita kertoja sarjan läpikäynnin aikana, koska myöhemmin voi löytyä vielä parempi arvo. Esimerkiksi ohjelma voisi hakea syötesarjan pienintä arvoa, jolloin sen talletukseen käytetty muuttuja olisi rooliltaan sopivimman säilyttäjä. Kokooja: Kokooja saa arvonsa summaamalla tai kumuloimalla muiden muuttujien arvoja. Esimerkkinä kokoojasta voisi olla syötteinä annettujen kokonaislukujen yhteissumman laskuri. Muuntaja: Muuntaja saa aina arvonsa toisten muuttujien arvojen laskennan tuloksena. Esimerkkinä muuntajasta voisi olla muuttuja, johon lasketaan syötteinä annettujen kokonaislukujen keskiarvo aina uuden syötteen jälkeen. Syötteenä annettujen lukujen summa lasketaan kokoojana toimivaan summa-muuttujaan ja syötteiden lukumäärän laskee askeltajan roolissa toimiva lkm-muuttuja. Keskiarvo saa arvonsa laskutoimituksesta summa / lkm. Seuraaja: Seuraajan roolissa oleva muuttuja saa uudeksi arvokseen aina jonkin toisen muuttujan vanhan arvon. Esimerkkinä on listan läpikäynti, jossa seuraajana toimivaan muuttujaan on talletettu käsiteltävää alkiota edeltävän alkion tiedot. Käsiteltävän alkion tiedot on talletettu muuttujaan, joka toimii tuoreimman säilyttäjänä. Yksisuuntainen lippu: Yksisuuntainen lippu on Boolen muuttuja, joka voi saada vain 2 arvoa: true ja false. Yksisuuntainen lippu ei voi saada enää alkuperäistä arvoaan sen jälkeen kun se on muuttunut. Esimerkkinä yksisuuntaisen lipun käytöstä on esimerkiksi ohjelma, jossa sillä tarkkaillaan esiintyykö syötteiden joukossa negatiivisia 5
arvoja. Jos yksikin negatiivinen arvo löytyy, saa lippu arvon true eikä se enää koskaan voi saada takaisin alustusarvoaan false. Järjestelijä: Järjestelijä on taulukko, jota käytetään alkioiden uudelleen järjestämiseen. Esimerkiksi järjestelijä taulu alustetaan joillakin syötetyillä merkeillä, jonka jälkeen merkkien järjestys vaihdetaan päinvastaiseksi. Tilapäissäilö: Tilapäissäilö tallettaa jonkin toisen muuttujan arvon vähäksi aikaa. Esimerkkinä voisi olla swap-operaatiossa käytetty muuttuja lajittelussa. 2.3 Ohjelman visualisointi PlanAnilla PlanAni (Sajaniemi & Kuittinen, 2003) on opetuskäyttöön tarkoitettu ohjelmaanimaattori, jolla voidaan visualisoida pieniä ohjelmia. PlanAnin animointi perustuu erilaisiin muuttujien rooleihin, joita esittämään on valittu kuvat. PlanAnia on käytetty ohjelmoinnin perusteiden opetuksessa aloittelijoille ja sen on todettu parantavan oppimistulosta (Sajaniemi & Kuittinen, in press). Kuvassa 2 nähdään PlanAni visualisoimassa yksinkertaista ohjelmaa. Ohjelmakoodi on sijoitettu ikkunan vasempaan puoliskoon ja kulloinkin visualisoitavana oleva kohta korostetaan värillä. Ikkunan oikea yläpuoli on varattu muuttujien visualisointiin ja oikea alapuoli toimii syöte- ja tulostusalueena. Syötteen paikkaa kuvaa lautanen ja tulosteet tulevat paperilapulle. Kulloinkin aktiivisena oleva ohjelman kohta vasemmalla on yhdistetty nuolella vastaavaan muuttujaan oikealla. PlanAni kertoo tekemisistään etukäteen ikkunan keskelle tulostuvaan ilmoitusikkunaan. Käyttäjän täytyy aina kuitata ilmoitus vastaanotetuksi ennen animoinnin jatkumista. Tämä helpottaa käyttäjää kohdistamaan huomionsa oikeisiin asioihin näytöllä. PlanAnin myöhemmissä versioissa ilmoitusikkuna on tarkoitus korvata puhesyntetisaattorilla. Käyttäjä voi säätää animoinnin nopeutta ja ikkunoissa käytettyä kirjasimen kokoa. Animoinnin voi koska tahansa aloittaa alusta, mutta ohjelmaa ei voi animoida takaisinpäin. 6
Kuva 2: Ohjelman visualisointia PlanAnilla. 7
2.4 Muuttujan roolien visualisointi Roolin visuaalisen esitystavan piti Sajaniemen (2002b) mukaan olla sekä yleinen että erityinen. Yleinen siinä mielessä, että se kuvaisi kaikkia samassa roolissa olevia muuttujia ja erityinen tavalla, joka kuvaisi kyseisessä roolissa olevan muuttujan peräkkäisiä arvoja ja niiden suhdetta toisiinsa sekä muihin muuttujiin. Esimerkiksi kiintoarvoroolin visualisoinnin piti ilmaista, että muuttujan arvo ei ole muutettavissa. Taulukossa 1 on listattu kaikkien roolien ominaisuudet, joita vastaavat kuvalliset esitykset Sajaniemi (2002b) pyrki löytämään. Taulukko 1: Roolien visualisoitavat ominaisuudet (Sajaniemi, 2002b). Rooli Kiintoarvo Askeltaja Tuoreimman säilyttäjä Sopivimman säilyttäjä Kokooja Muuntaja Seuraaja Yksisuuntainen lippu Järjestelijä Tilapäissäilö Ominaisuudet Mahdotonta muuttaa. Tulevat arvot voidaan ennustaa, jos aikaisemmat arvot tiedetään. Yleensä arvot muuttuvat johonkin suuntaan: kasvavat tai pienenevät. Arvot saadaan sarjasta käsiteltäviä tietoja, mutta ne voivat olla mitä tahansa eli arvoilla ei ole kiinteää suhdetta keskenään. Nykyinen arvo on parempi kuin mikään muu aikaisemmista arvoista. Uusi arvo saadaan, kun yhdistetään vanha arvo uuden tiedon kanssa. Uusi arvo saadaan muokkaamalla muista muuttujista. Kiinteästi yhteydessä toiseen muuttujaan, yleensä sen edellinen arvo. Vain kaksi mahdollista arvoa, mahdotonta muuttaa takaisin alkuarvoonsa. Yksittäisiä osia ei voi muuttaa, mutta niitä voi siirtää paikasta toiseen. Hyvin lyhytaikainen. 8
Kuvassa 3 esitetään rooleja vastaavat visualisoinnit. Kiintoarvoa kuvaa hautakivi, johon hakattu tieto ei ole helposti muutettavissa (Sajaniemi & Kuittinen, 2003). Sopivimman säilyttäjää kuvataan erivärisillä kukkasilla, joista kirkasvärinen kuvaa muuttujan nykyistä eli sopivinta siihen mennessä löytynyttä arvoa. Harmaa kukkanen kuvaa muuttujan edellistä eli toiseksi sopivinta arvoa. Tuoreimman säilyttäjää esittävä kuva näyttää myös viimeistä edellisen arvonsa, mutta koska tässä tapauksessa kumpikaan arvoista ei ole toistaan parempi, ne esitetään samanlaisten, neutraalien laatikoiden sisällä. Muuttujan vanha arvo on vain yliviivattu, jotta nykyinen arvo erottuu. Askeltajaa kuvaavat jalanjäljet, jotka ovat seisahtuneet muuttujan nykyisen arvon kohdalle. Kuvassa näkyy myös askeltajan mahdolliset seuraavat ja edelliset arvot. Askelten kulkusuuntaa eli muuttujan saamia seuraavia arvoja kuvataan nuolella. Seuraajaa kuvaa koira, joka istutetaan sen muuttujan perään, jota se seuraa. Kokoojaa kuvaa laatikko, jossa näkyy sekä keskellä oleva nykyinen arvo että vasemmassa alalaidassa oleva edellinen arvo. Yksisuuntaista lippua kuvaa hehkulamppu silloin, kun muuttujan alkuarvo on true. Hehkulamppu särkyy lipun saatua false-arvon. Jos yksisuuntaisen lipun alkuarvo on false, sitä kuvataan kananmunalla. Kanapoika kuoriutuu, kun lippu saa true-arvon. Tilapäissäilöä kuvaa taskulamppu, joka on päällä juuri niin kauan kuin sitä tarvitaan. Kun tilapäissäilön arvo tulee tarpeettomaksi, taskulamppu sammuu ja arvo häviää. Taulukoiden elementtejä kuvataan elementtiä kuvaavalla roolilla. Jos esimerkiksi taulukko sisältää kokoojia, se kuvataan sarjana laatikoita. Järjestelijä-rooli kuvataan siten kuin taulukon elementit olisivat kiintoarvoja, joiden alle on helpompaa liikuttelua varten laitettu pyörät. 2.5 Roolipohjainen animointi PlanAnissa Muuttujien rooleja esittävien kuvien lisäksi myös muuttujille tehtävien operaatioiden animointi on roolipohjaista (Sajaniemi & Kuittinen, 2003). Muuttujan alustaminen, vertailu ja uuden arvon asettaminen voi olla erilaista eri rooleilla, koska siinäkin on pyritty ilmentämään kyseisen roolin erityisiä ominaisuuksia. 9
Kuva 3: Muuttujien rooleja esittävät kuvat. 10
Kuva 4: Uusi arvo kokoojan roolissa olevalle muuttujalle. Esimerkiksi kuvassa 4 kokoojan roolissa oleva muuttuja saa uuden arvon lauseella "fib := fib+temp" siten, että sen vanha arvo siirtyy kuvan vasempaan alalaitaan ja muuttuu harmaaksi. Sitten "fib+temp" -lause ilmestyy kuvan oikealle yläpuolelle osoittaen nuolella kuvan keskelle, johon ilmestyy lauseen mukainen uusi arvo. Lopuksi laskentalause ja nuoli häviävät. Animaatio ilmentää kokoojan roolissa olevan muuttujan luonnetta näyttämällä miten uusi arvo saadaan lisäämälle vanhaan arvoon jotain uutta. Kuva 5: Uusi arvo askeltajan roolissa olevalle muuttujalle. Askeltaja puolestaan saa uuden arvonsa ihan eri tavalla, kuten kuvassa 5 näkyy. Koska jo alustusvaiheen jälkeen askeltajan seuraavat ja edelliset arvot ovat kuvassa nähtävillä ja nuoli on osoittamassa arvojen kulkusuuntaa, siirtyvät kaikki askeltajan nykyiset ja entiset arvot yhden position vasemmalle muuttujan kasvaessa tai yhden position oikealle muuttujan pienentyessä siten että uusi arvo jää seisahtaneiden jalkojen kohdalle. Kuvassa 6 on esitetty kahden erilaisessa roolissa olevan muuttujan vertailuanimaatio "muuttuja > 0". Tapauksessa a) on tuoreimman säilyttäjän roolissa olevaa muuttuja, jota verrataan esittämällä muuttujan vieressä olevassa värillisessä palkissa sallitut arvot vihreällä ja ei-sallitut punaisella taustalla. Mikäli muuttujan arvo on sallitulla alueella, näytetään se muuttujasta lähtevällä ja palkin vihreälle alueelle osoittavalla vihreällä nuolella. Mikäli arvo ei ole sallittu, lähtee punainen nuoli muuttujasta palkin punaiselle alueelle. Tapauksessa b) askeltajan roolissa olevaa muuttujaa verrataan näyttämällä askeltajan roolikuvassa olevat sallitut arvot vihreinä ja ei-sallitut arvot punaisina. Mikäli 11
askeleet ovat seisahtuneet vihreän numeron kohdalle, on arvo sallittu. Erillistä palkkia sallituille ja ei-sallituille arvoille ei tarvita, koska jo askeltajan alustuksen jälkeen mahdolliset seuraavat ja edeltäneet arvot ovat tiedossa ja näkyvissä roolikuvassa. Mikäli vertailu olisi ollut muotoa "muuttuja > muuttuja2", olisi muuttuja2 molemmissa edellisistä tapauksista ilmestynyt näkyviin sen arvon kohdalle, joka sillä vertailuhetkellä oli. Kuva 6: Vertailu erilaisilla rooleilla (Sajaniemi, 2002b). 2.6 Muuttujien roolit ohjelmoinnin oppimisen apuvälineenä Sajaniemi & Kuittinen (in press) tutkivat empiirisellä kokeella parantaako muuttujien roolien opetus ohjelmoinnin alkeiden opetuksen yhteydessä oppimistulosta. Opetusta annettiin kolmella eri tavalla: perinteisellä tyylillä ilman muuttujien rooleja, muuttujien roolien avulla ilman niiden visualisointia ja muuttujien roolien avulla PlanAnilla tehtävän visualisoinnin kanssa. Kaikki ryhmät osallistuivat kurssin päätteeksi samaan kokeeseen, jonka tuloksia analysoitiin vertaamalla oppilaille syntyneitä mentaalisia malleja. Näin päädyttiin tekemään, koska tavallinen opettajien suorittama kokeiden arvostelu ei korreloinut oppilaiden todellisen ohjelmointitietämyksen kanssa. Koska muuttujien roolit ovat ohjelmoinnin apuvälineitä, ne on parasta opettaa oppilaille ohjelmoinnin alkeiden opetuksen yhteydessä sitä mukaa, kuin ne esiintyvät malliohjelmissa (Sajaniemi & Kuittinen, in press). Muuttujien roolien ominaisuuksien opettamisen lisäksi oppilaille annetaan strategista tietoa roolien käytöstä ohjelmissa. Ensimmäisten ohjelmien tekeminen on aloittelijalle hyvin vaikeaa ja opettaja voi ohjata siinä kehoittamalla miettimään ohjelman tietotarpeita ja niiden myötä ohjelmassa mahdollisesti käytettäviä muuttujia ja niiden rooleja. Roolit käsitteinä helpottavat ohjelmoinnin periaatteiden selittämistä oppilaille. 12
Empiirisen kokeen tulokset osoittivat, että roolikoulutusta saaneet oppilaat olivat omaksuneet hyvin muuttujien roolit ja osasivat käyttää niitä myös uusissa tilanteissa. Oppilaista 35 prosenttia käytti rooleja koevastauksissaan, vaikka niitä ei kokeessa vaadittu. Tärkeä tulos oli myös, että roolipohjaista opetusta saaneet pystyivät ymmärtämään ja selittämään ohjelmia kokeneelle ohjelmoijalle tyypillisellä tavalla. Kumpikin rooliopetusta saanut ryhmä oli ohjelmointitietämykseltään perinteistä opetusta saanutta ryhmää parempi. Lisäksi ryhmä, jolle roolien käyttöä ohjelmissa animoitiin PlanAnin avulla, osoitti omaavansa syvempää ohjelmarakenteiden tuntemusta kuin ilman animointia koulutettu rooliryhmä ja perinteistä opetusta saanut ryhmä. 13
3 Metafora MOT Sanakirjasto (2003) antaa sanan metafora selitykseksi kielikuvan tai vertauksen. Historiallisesti metaforia onkin käytetty kielikuvina lähinnä englantilaisessa kirjallisuudessa ja retoriikassa, mutta nykyisin metaforan merkitys on laajentunut (Hamilton, 1999). Lakoffin ja Johnsonin (1980) mukaan metaforan tarkoitus on selittää yksi asia toisen asian avulla. Lakoffin (1993) mukaan metaforan avulla pystytään pääasiassa ymmärtämään abstrakteja käsitteitä ja järkeilemään abstrakteja asioita. Metafora on perusluonteeltaan käsitteellinen, ei kielellinen asia. Metaforinen kieli (metaphorical lanquage) on vain tapa tehdä metafora näkyväksi (surface manifestation). Metaforan avulla voidaan ymmärtää suhteellisen abstrakteja tai monimutkaisia asioita toisen konkreettisemman tai ainakin yksinkertaisemman asian avulla. Esittelen tässä luvussa ensin metaforan toimintaperiaatteen esimerkin avulla sekä metaforan käyttötarkoituksen. Seuraavaksi kerron miten metaforaa käytetään tietojärjestelmissä ja annan siitä muutaman esimerkin. Lopuksi kuvaan menetelmän, jota voi käyttää metaforien suunnitteluun, toteutukseen ja arviointiin. 3.1 Metaforan toimintaperiaate ja käyttötarkoitus Kuvaan seuraavaksi Glucksbergin ja Keysarin (1993) mukaisesti miten mies on sika -metafora (kuva 7) ymmärretään ja mitä vaiheita sen ymmärtämiseen liittyy. Lause voidaan tulkita kahdella tavalla: kirjaimellisesti (linguistic) tai merkityksellisesti (speaker s meaning). Kirjaimellinen tulkinta tehdään aina ensin, mutta varsinaisen merkityksen selvittämiseksi tarvitaan yleensä lisätietoja esimerkiksi asiayhteydestä (context). Koska mies ei ole sika vaan ihminen, voidaan kirjaimellista tulkintaa pitää omituisena ( defective ). Tämän johdosta kuulija yrittää mahdollisesti tulkita asiaa metaforan avulla. Toisaalta metaforan ihminen ei ole saari kirjaimellinen tulkinta on itsestäänselvä, jolloin ihminen alkaa myös etsiä sanojan tarkoittamaa merkitystä vaihtoehtoisella tavalla. Jos puhujan tarkoittamaa merkitystä yritetään tulkita metaforan avulla, lähdetään liikkeelle vertauksesta: mies on kuin sika. Sian yleispiirteinä voidaan pitää ahneutta, lihavuutta ja likaisuutta, joten asiayhteydestä riipuen lauseen voi tulkita ainakin kolmella eri tavalla. 14
Kuva 7: Mies on sika -metaforan käyttöä (Helsingin sanomat, 2003). Metafora on usein myös harhaanjohtava, koska se on aina jossain määrin erilainen kuin sillä kuvattava asia: se voi salamannopeasti antaa ymmärtäjälleen oikean tai vääristyneen kuvan asiasta. Hamiltonin (2000) mukaan metaforinen vertaus on vain osittainen korostaen joitain erityisiä metaforan ja selitettävän asian yhteisiä ominaisuuksia. Esimerkiksi mies on sika - metaforassa korostettava yhteinen ominaisuus voisi olla ahneus. Metaforinen vertaus sisältää myös metaforan ja selitettävän asian välisiä vähemmän korostuneita eroja. Tällainen ero voisi esimerkissäni olla, että sikaa syödään jouluna, miestä ei. Edellinen esimerkki on tietenkin metaforalle tyypilliseen tapaan riippuvainen myös kulttuurista, jossa metaforaa käytetään. Metaforinen vertaus voi jäädä elämään, vaikka itse metaforaa esittävä asia olisi hävinnyt tai sen merkitys vähentynyt (Hamilton, 2000). Esmerkkinä tästä on kirjoituskonemetaforan käyttö tekstinkäsittelyohjelmissa (kuva 8), vaikka mekaaniset kirjoituskoneet ovat nykyisin hyvin harvinaisia. Metaforan avulla yritetään konkretisoida olennaisia ominaisuuksia selitettävästä asiasta eli selitetään yksi asia käyttäen apuna jotain ennestään tuttua toista asiaa. Myös opetustehtävissä toimivat henkilöt käyttävät hyväkseen metaforaa, koska se helpottaa ihmisen oppimista. Carrol ja Mack (1999) ovat artikkelissaan jatkaneet metaforan käyttötarkoitusta vielä pidemmälle: metaphors are kernel comparison statements whose primary function in learning is to stimulate active learner-initiated thought processes He tutkivat kuinka aloittelevat käyttäjät (noviisit) oppivat käyttämään tekstinkäsittelyohjelmaa. He havaitsivat, että käyttäjät mieluummin kokeilevat itse kuin lukevat ohjei- 15
Kuva 8: Kirjoituskone-metaforaa käytetään tekstinkäsittelyohjelmissa. 16
ta tai seuraavat järjestelmällistä askel-askeleelta opastusta. Vaikka käyttäjät olisivatkin lukeneet ohjeita, niiden tulkinta ja noudattaminen oli hankalaa. Ohjeet tuntuivat riittämättömiltä ratkaisemaan käyttäjien eteen tulevia monimutkaisia ongelmia. Sen sijaan he yrittivät itse kokeilemalla, päättelemällä ja järkeilemällä saada selville miten tekstinkäsittelyohjelma toimii ja miten sillä voisi eteen tulleita ongelmia ratkaista. Metaforien avulla käyttäjille voisi antaa vihjeitä tekstinkäsittelyohjelman toiminnasta ja siten aktivoida käyttäjän ajatusprosessia. 3.2 Metaforan käyttö tietojärjestelmissä Kuvallisen metaforan käyttö tietojärjestelmissä tuli tarpeelliseksi tietokoneiden käytön yleistymisen myötä, kun siirryttiin komentopohjaisista käyttöliittymistä graafisiin. Tietokoneen sisältö yritetään visuaalisella esitystavalla tehdä käyttäjälle mahdollisimman havainnolliseksi ja helposti ymmärrettäväksi, jotta tämän ei enää tarvitse ponnistella niin paljoa oppiakseen käyttämään konettaan (Wozny, 1989). Yleisesti käytetty, Macintoshin tunnetuksi tekemä työpöytä-metafora (kuva 9) esittää tietokoneen toiminnot, ohjelmat, hakemistot ja tiedostot kuvallisina ikoneina, joita voidaan hiiren avulla suorittaa, käynnistää, katsella, siirrellä, poistaa jne. Tietojärjestelmissä käytetään kahdentyyppisiä metaforia: sijaintia kuvaavia (physical) ja toiminnallisia (functional) (Wozny,1989). Esimerkki sijaintia kuvaavasta metaforasta on ikkunoiden käyttö. Käyttäjä voi käynnistää toimintoja eri ikkunoihin, muuttaa ikkunoiden järjestystä, paikkaa tai kokoa, siirtää tietoja ikkunasta toiseen jne. Sijaintia kuvaava metafora vastaa kysymykseen mitä on missä?. Toiminnallisten metaforien tehtävänä on esittää tietojärjestelmien toimintoja käyttäjälle helposti ymmärrettävällä tavalla ja vastata kysymykseen miten se toimii?. Esimerkkinä toiminnallisesta metaforasta on tekstin tai kohteen siirtäminen paikasta toiseen leikkaa ja liimaa - toiminnon avulla. Tuttu askartelutermi on onnistuneesti siirretty tietokonemaailmaan aktivoimaan käyttäjiä yhdistelemään eri asioita keskenään ja säästämään aikaa hyödyntämällä aikaisemmin tehtyä työtä. Se saattaa myös houkutella käyttäjiä etsimään omatoimisesti tietoa verkosta oman työn tueksi ja näin motivoida hankkimaan uusia kokemuksia tietokoneesta. Käyttäjien kannalta olisi myös tärkeää, että samat metaforat toistuvat useissa heidän käyttämissään sovelluksissa. Sekä Apple Computer että Microsoft ovatkin julkais- 17
Kuva 9: Työpöytä-metaforaa esittää tietokoneen toiminnot, ohjelmat, hakemistot ja tiedostot kuvallisina ikoneina, joita voi hiiren avulla esimerkiksi siirtää paikasta toiseen. 18
seet omat look-and-feel-standardinsa muiden ohjelmistotalojen käyttöön, jotta käyttäjät voisivat saada myös omien erikoisalojensa sovelluksia ennestään tutuilla käyttöliittymien ominaisuuksilla (Wozny, 1989). Woznyn (1989) mukaan noviisit aloittaessaan tietojärjestelmän käytön toimivat aikaisempien kokemuksiensa pohjalta ja yrittävät käyttää järjestelmää kokeillen aiemmin omaksumiaan menetelmiä ja työtapoja, vaikka ne olisivat manuaalimaailmasta. Jos he käyttävät tietokonetta harvoin, he eivät koskaan pääse tämän vaiheen yli, vaan käyttö aloitetaan aina tunnustelemalla ja kokeilemalla. Edistyneet käyttäjät etsivät uudesta järjestelmästä yhteneväisyyksiä (analogy) aikaisemmin käyttämiinsä järjestelmiin ja perustavat käyttönsä niille. Kaikille käyttäjäryhmille olisi parempi, jos tietojärjestelmien suunnittelussa olisi otettu huomioon mahdolliset käyttäjien ennestään tuntemat metaforat ja pyritty käyttämään niitä käyttäjälle tutulla tavalla. Jos sovellus poikkeaa metaforan toiminnasta, se pitäisi tehdä käyttäjälle selväksi ennen kuin hän itse huomaa sen ja mahdollisesti turhautuu. Lisäksi metaforien käytössä pitäisi suosia jatkuvuutta siten, että uudet sovellukset suunniteltaisiin tuntumaltaan ja mahdollisuuksien mukaan myös toiminnallisuudeltaan yhdenmukaisiksi muiden käytössä olevien sovellusten kanssa. 3.3 Esimerkkejä tietojärjestelmien metaforista Ensimmäisiä metaforaa hyväksi käyttäviä sovelluksia oli taulukkolaskenta-ohjelma (kuva 10) Visicalc (Hamilton, 2000). Sen vahvuutena on ollut toiminnallisuuden nopea ymmärtäminen jo olemassa olevien käyttäjän taitojen perusteella. Laskentataulukko oli otettu käyttöliittymään suoraan käyttäjien manuaalimaailmasta, sen idea ja käyttötapa olivat ennestään tuttuja ja sen käyttäminen oli helpompaa kuin paperisten taulukoiden. Käyttäjät pystyivät keskittymään työhönsä eli taulukon sisältöön eikä heidän tarvinnut sopeutua uuteen toimintatapaan. Tietokonejärjestelmä ikäänkuin hävisi käyttäjien näkyvistä - he vain tekivät työtään entistä paremmalla työkalulla. Tekstinkäsittelijässä käytetty kirjoituskone-metafora (kuva 8) on myös ollut käyttäjille helposti omaksuttava samoista syistä kuin edellä esitetty taulukkolaskenta-ohjelma. Kirjoituskone-metafora on myös esimerkki siitä miten metafora voi vanhentua ja käydä vähemmän tärkeäksi. Tekstinkäsittelyn käyttäjistä vain iäkkäimmät ovat joskus kirjoittaneet mekaanisella kirjoituskoneella tai nähneet sellaisen (Hamilton, 2000). 19
Kuva 10: Laskentataulukko-metaforaa käyttää myös nykyään esimerkiksi Exceltaulukkolaskentaohjelmisto. 20
Roskakori-metaforaa on pidetty erittäin kuvaavana, selkeänä ja toiminnaltaan nopeasti ymmärrettävänä, mutta Macintosh-ympäristössä toteutettuna siihen on liittynyt myös hämmennystä aiheuttava ominaisuus: kun levykeaseman siirtää roskakoriin, levyke ponnahtaa ulos asemasta. Koska roskakori on ymmärretty tiedostojen tuhoamispaikkana tai niiden väliaikaisena säilytyspaikkana ennen lopullista tuhoamista, kuvitellaan että myös levykkeen sisältö tuhoutuu roskakoriin vietäessä. Näin ei kuitenkaan ole, vaan levykkeen sisältö pysyy levykkeellä eikä siirry roskakoriin tuhottavaksi. Tällaiset metaforan väärinkäytöt voivat ärsyttää ja turhauttaa käyttäjiä ja aiheuttaa heille turhaa kognitiivista kuormitusta (cognitive dissonance). 3.4 Menetelmä metaforien valintaan Hyvin valitulla metaforalla voidaan helpottaa uuden tietojärjestelmän käytön aloittamista ja aktivoida ja innostaa käyttäjää etsimään ja kokeilemaan järjestelmän ominaisuuksia, mikä jo sinänsä parantaa järjestelmän käytettävyyttä (Alty & al., 2000). Mikäli metafora on huonosti valittu, se saattaa johtaa käyttäjäänsä harhaan, rajoittaa tämän ajattelua ja nostaa kynnystä käyttää järjestelmää. Käytännön ohjeita metaforan valintaan löytyy kirjallisuudesta vain vähän ehkä juuri siksi, että yleispätevien ohjeiden antaminen on hyvin vaikeaa. Alty & al. (2000) on tietoliikennealan järjestelmiin suunniteltujen metaforien käytännön kokemuksiin nojaten kehittänyt yhden ohjeiston metaforien valintaan, toteutukseen ja arviointiin. Ohjeisto kehitettiin EU-komission RACE-osaston käynnistämän MITS-projektin (Metaphors for Integrated Telecommunications Services) tuloksena vuosien 1993-1997 aikana. Ohjeisto viimeisteltiin työryhmissä, jotka koostuivat useista maista tulleista ohjelmistotuotannon ammattilaisista. Ammattilaisten mielipide oli tärkein kriteeri valittaessa lopulliseen ohjeistoon tulevia menetelmiä ja työkaluja. Ohjeisto koostuu kuudesta osasta: toiminnallinen määrittely, metaforien suunnittelu, metaforien analysointi, metaforien toteutus, metaforien testaus ja palautteen kerääminen. Koska tutkimukseni kohdistuu jo valittujen metaforien analysointiin, testaukseen ja palautteen keräämiseen, painotan esityksessäni eniten niitä. Toiminnallinen määrittely: Järjestelmän toiminnallisen määrittelyn tuloksena tiedetään mitä toimintoja tulevan järjestelmän täytyy sisältää, mikä luo pohjan metaforien valinnalle. Tulevan järjestelmän piirteiden kuvaus on edellytys metaforien ja järjestel- 21
män välisten yhteneväisyyksien ja erojen analysoinnille. Järjestelmän tulevia käyttäjiä voidaan pyytää kuvaamaan uuden järjestelmän toiminnallisuutta, jolloin he saattavat tehdä sen heille ennestään tuttujen metaforien avulla. Tässä vaiheessa on kuitenkin keskityttävä nimenomaan järjestelmän toiminallisuuteen eikä vielä metaforiin ja niiden ominaisiin. Metaforien suunnittelu: Metaforien suunnitteluvaiheessa yritetään löytää järjestelmän toiminnallisuutta kuvaavia metaforia. Siinä tulee huomioida käyttäjien nykyinen osaaminen ja muiden heidän käytössään olevien järjestelmien käyttämät metaforat. Parhaiten se onnistuu tutustumalla käyttäjien maailmaan kuten työpisteisiin, työskentelytapoihin, käytettyihin termeihin ja tietenkin sovellusalueeseen käyttäjän näkökulmasta. Metaforien täytyy olla nimenomaan käyttäjilleen kuvaavia, joten tässä vaiheessa kannattaa olla luova ja keksiä useita vaihtoehtoisia ratkaisuja. Metaforien analysointi: Tässä vaiheessa analysoidaan metaforan (M) ja järjestelmän (S) ominaisuudet. Ne voidaan jakaa metaforasuunnittelun kannalta oleellisiin kolmeen luokkaan. S+M+ -luokkaan kuuluvat sekä järjestelmästä että metaforasta löytyvät ominaisuudet. S+M- -luokkaan kuuluvat ominaisuudet, jotka kuvaavat järjestelmää, mutta niitä ei löydy metaforasta. S-M+ -luokkaan kuuluvat ominaisuudet, jotka löytyvät metaforasta, mutta eivät järjestelmästä. Mikäli S-M+ ominaisuuksien osuus on suuri verrattuna S+M+ ominaisuuksien määrään, saattaa jatkuva puuttuviin ominaisuuksiin törmääminen ärsyttää käyttäjää ja aiheuttaa tälle turhaa kuormitusta (conceptual baggage) (Alty & al., 2000). On parempi antaa käyttäjälle mahdollisuus "löytöretkeilijän" iloihin ja valita metafora, jossa S+Mominaisuuksien määrä olisi suuri. Tämä myös aktivoi käyttäjää etsimään uusia ominaisuuksia. Metaforien toteutus: Metaforan toteutuksessa täytyy ottaa huomioon sen esitystapa, realistisuus, johdonmukaisuus ja sopivuus. On tärkeää, että käyttäjä tunnistaa metaforan välittömästi sen nähtyään, koska hän tekee sen perusteella oletuksia järjestelmän toiminnasta. Mikäli metaforan ulkoasu on tarkka kopio reaalimaailmasta, käyttäjä olettaa toiminnallisuudenkin olevan sama kuin reaalimaailmassa. Tämä toisaalta rajoittaa käyttäjän ajattelua ja toisaalta saattaa myös turhauttaa, mikäli järjestelmä ei sisälläkään ihan kaikkea samaa toiminnallisuutta. Tietojärjestelmässä käytetään yleensä useita metaforia samanaikaisesti ja käyttäjää helpottaa, jos metaforat on valittu johdonmukaises- 22
ti. Esimerkiksi työpöytä -metaforan yhteydessä käytettyjä muita metaforia ovat työpöydällä mahdollisesti olevat kansiot, laskin, roskakori jne. On myös metaforia, jotka ovat käytössä useissa järjestelmissä, esim. leikkaa-liimaa-toiminto kohteen siirtelyyn tiedoston sisällä tai tiedostojen välillä. Nämä metaforat pitäisi esittää yhdenmukaisina kaikissa järjestelmissä, jotta ne eivät aiheuttaisi sekaannuksia käyttäjille. Metafora ei saa olla rasistinen, seksistinen, ikäsyrjintää harrastava eikä muillakaan tavoilla aiheuttaa mielipahaa käyttäjilleen. Ohjelmistoja tekevän yrityksen olisi parempi metaforia suunnitellessaan ottaa huomioon myös yrityskuva, jonka he haluavat itsestään järjestelmän käyttäjille antaa. Metaforien testaus: Metaforien testauksen tarkoitus on arvioida metaforien sopivuutta niiden käyttöympäristössä ja näin saada palautetta niiden kehittämistä varten. On tärkeää testata metaforat käyttäjien avulla käyttäjille tutussa ympäristössä mieluiten käyttäjien varsinaisilla työtehtävillä. Alty & al. (2000) pitää järkevänä videonauhoituksen tekemistä testaustilanteessa. Sen perusteella voidaan nähdä käyttäjäkohtaisia eroja sekä saadaan aineistoa järjestelmän suunnittelijoita varten. Lisäksi käyttäjiltä pitäisi saada verbaalista palautetta järjestelmän metaforista. Testauksen aikana tulisi arvioida ymmärtävätkö käyttäjät metaforan siten kuin oli tarkoitus vai tekevätkö käyttäjät metaforan takia vääriä oletuksia. Ovatko metaforat tarpeeksi realistisia, jotta käyttäjät tunnistavat ne vai liiankin realistisia rajoittaen näin liikaa käyttäjän mielikuvitusta. Lisäksi täytyy arvioida pystyykö järjestelmää laajentamaan käyttäen samoja metaforia ja ovatko metaforat johdonmukaisesti valittuja ja tulevatko ne esimerkiksi samasta perheestä. Täytyy myös varmistua siitä, että metaforat ovat järjestelmän käyttöympäristöön sopivia ja luonnollisia. Palautteen kerääminen: Palauteen kerääminen järjestelmän käyttäjiltä auttaa järjestelmän jatkokehityksessä ja seuraavia metaforia suunnitellessa. Esimerkiksi käyttäjiltä voi tulla hyviä ehdotuksia järjestelmään otettavista uusista ominaisuuksista, joita he ovat käytetyn metaforan takia yrittäneet järjestelmästä löytää. Tai käyttäjiltä voi saada palautetta epäloogisesti toimivasta metaforasta. 23
4 Empiirinen koe PlanAnissa käytettävät roolikuvat voidaan käsittää kuvallisiksi metaforiksi. Metaforatutkimuksen mukaan oikein valittu metafora helpottaa asian ymmärtämistä ja stimuloi ajatusprosesseja (Carrol & Mack, 1999). Sajaniemen & Kuittisen (in press) mukaan PlanAnilla toteutettu ohjelman visualisointi syventää oppilaiden ohjelmatuntemusta. Edellisen perusteella voisi kuvitella, että PlanAnin metaforat ovat oikein valittuja ja siten auttavat oppilaita omaksumaan ohjelman sisältöä syvemmällä tasolla kuin ilman visualisointia toteutettu roolipohjainen opetus. Halusin kokeella todistaa, että muuttujien rooleista käytetyt metaforat välittävät oppilaille roolien ominaisuuksia ja näin helpottavat rooliteorian omaksumista. Koetta varten tehtiin PlanAnista myös toinen versio erilaisilla roolikuvilla. Vaihtoehtoiset lumekuvat valitsin siten, että ne ominaisuuksiltaan mahdollisimman vähän kuvasivat muuttujien rooleja. Mikäli metaforalla olisi muuttujien roolien visualisoinnissa jotain merkitystä, tulisi kokeen osoittaa PlanAnin alkuperäisillä kuvilla parempaa tulosta kuin lumekuvilla. Tämä koe voidaan mielestäni ajatella osana Alty & al:in (2000) metaforien valintaan, toteutukseen ja arviointiin kehittämää menetelmää. Menetelmä koostuu kuudesta osasta: toiminnallinen määrittely, metaforien suunnittelu, metaforien analysointi, metaforien toteutus, metaforien testaus sekä palautteen keräys ja analysointi. Ideana on kuvata järjestelmän toimintaa ja sen ominaisuuksia ja verrata niitä ehdolla olevien, järjestelmää kuvaavien metaforien ominaisuuksiin. PlanAnissa metaforia on käytetty kuvaamaan animoitavan ohjelman muuttujia ja niiden roolien ominaisuuksia. Metaforat kuvaavat siis PlanAnin käsittelemiä tietoja, eivät PlanAni-järjestelmää. Tästä syystä olen soveltanut menetelmää korvaamalla järjestelmän toiminnallisen määrittelyn muuttujien roolien määrittelyllä. Alty & al:in (2000) suunnitteleman ohjeiston tarkoituksena on verrata useita vaihtoehtoisia metaforia järjestelmän ominaisuuksiin ja valita toteutettavaksi niistä paras vaihtoehto. Tässä kokeessa PlanAnista oli toteutettuna kaksi erilaisilla roolikuvilla varustettua versiota, joita oli tarkoitus vertailla käyttäjien antaman palautteen avulla. 24
4.1 Koesuunnitelma Kokeessa käytettiin koehenkilöinä Sajaniemen & Kuittisen (2003b) koeryhmää, joka oli saanut ohjelmoinnin alkeiden opetusta muuttujien roolikäsitteen avulla, mutta ei ollut käyttänyt PlanAnia. Koehenkilöt olivat nähneet oikeat PlanAnissa käytetyt roolikuvat mustavalkoisina paperisessa, opetukseen liittyvässä materiaalissa noin puolitoista vuotta ennen kokeen suorittamista. Lumekuvia koehenkilöt eivät olleet aikaisemmin nähneet. Rooliteoria palautettiin koehenkilöiden mieleen kirjallisella kertausmateriaalilla siten, ettei roolikuvia missään vaiheessa esitelty koehenkilöille. Koehenkilöt testattiin kertauksen jälkeen tasokokeella, jossa piti tunnistaa muuttujien rooleja. Kokeeseen osallistuvat jaettiin tasokokeen perusteella kahteen taidoiltaan yhtä vahvaan ryhmään, jotka saivat testattavakseen erilaiset kuvat. Alkuperäiset roolikuvat sai testattavakseen rooliryhmä ja lumekuvat annettiin kontrolliryhmälle. Kokeessa käytettiin between-subject designia, millä vältettiin oppimisefekti kuvien välillä. Koe koostui useasta eri osiosta, joilla pyrittiin kartoittamaan kuvien ominaisuuksia, testaamaan niiden mieleen jäämistä, saamaan palautetta niiden tarpeellisuudesta ja osuvuudesta sekä mittaamaan roolien tunnistamistaidon kehittymistä kokeen aikana. Ensimmäinen osio pyrki kartoittamaan roolikuvien herättämiä mielikuvia, joita oli tarkoitus verrata taulukossa 1 lueteltuihin roolien ominaisuuksiin. Kokeen toinen osio pyrki testaamaan roolikuvia käytännössä eli koehenkilöt tutustuivat ensimmäisessä osiossa arvioimiinsa roolikuviin seuraamalla yksinkertaisen ohjelman suoritusta PlanAnilla. Tämä kokeen osa suoritettiin, koska Alty & al:in (2000) mukaan on tärkeää arvioida käytettyjä metaforia siinä yhteydessä ja ympäristössä kuin niitä tullaan käyttämään. PlanAni animoi muuttujien rooleja metaforien avulla, joten arviointi oli syytä tehdä sitä käyttäen. Alty & al. suositteli myös testauksen nauhoittamista videolle, mikä testattaessa järjestelmän metaforia mielestäni onkin perusteltua. Koska tässä testattiin pelkästään sitä, miten metafora kuvaa muuttujan roolia eikä PlanAnin toimintaa tai sen käyttöä, en pitänyt tarpeellisena nauhoittaa koetilannetta videolle. Kokeen kolmas osio pyrki selvittämään jäivätkö PlanAnissa käytetyt roolikuvat koehenkilöiden mieleen sekä keräämään palautetta niiden osuvuudesta ja tarpeellisuudesta. Neljännessä osiossa roolihenkilöiden piti kokeen kertausosiossa tehdyn tasotestin tapaan tunnistaa ohjelmakoodista muuttujien rooleja. Tarkoituksena oli testata oliko koehenkilöiden roolituntemus kehittynyt kokeen aikana. 25
4.1.1 Koehenkilöt Sajaniemi & Kuittinen (2003b) ovat tutkineet parantaako muuttujien roolien opetus ohjelmoinnin alkeiden opetuksen yhteydessä oppimistulosta. Ohjelmoinnin alkeita opetettiin kolmella eri tavalla: perinteisellä tyylillä ilman muuttujien roolikäsitettä, muuttujien roolien avulla ilman niiden visualisointia ja muuttujien roolien avulla PlanAnilla tehtävän visualisoinnin kanssa. Koehenkilöt tähän kokeeseen valittiin siten, että he olivat kuuluneet Sajaniemen & Kuittisen (2003b) rooliopetusta ilman visualisointia saaneeseen koeryhmään. Kutsu kokeeseen lähetettiin kaikille yllämainittuun ryhmään kuuluneille ja heistä 13 suostui osallistumaan. Koehenkilöistä 12 oli miespuolisia ja yksi oli nainen. Jako tasavahvoihin ryhmiin tehtiin roolien kertausvaiheen jälkeen pidetyn tasotestin perusteella: 7 rooliryhmään ja 6 kontrolliryhmään. Osallistujille annettiin palkkioksi lounasliput paikalliseen lounasravintolaan. 4.1.2 Materiaalit Rooliteorian kertausta varten molemmat koeryhmät saivat saman kirjallisen kertausmateriaalin (liite 1; Sajaniemi, 2004). Tasokokeessa oli kolme pientä Pascal-kielistä ohjelmaa, joista täytyi tunnistaa muuttujien roolit (liite 2; Sajaniemi, 2004). Ensimmäistä varsinaista koeosiota varten oli erikseen kysymyspaperit rooliryhmälle (liite 3) ja kontrolliryhmälle (liite 4). Ensimmäisenä tehtävänä molemmilla ryhmillä oli kirjoittaa neljä verbiä annetuista kuvista (kuva 11). Toisena tehtävänä oli kirjoittaa neljä adjektiivia annetuista kuvista. Kuvat esittivät rooleja kiintoarvo, askeltaja, seuraaja, kokooja ja tilapäissäilö. Toista koeosiota varten PlanAnista oli rooliryhmän käyttämän alkuperäisen version (kuva 2) lisäksi lumekuvilla (kuva 12) tehty kontrolliryhmälle annettu versio. Animoitava ohjelma oli molemmissa sama Pascal-kielinen Fibonacci-ohjelma. PlanAnista oli käytössä suomenkielinen versio, jotta muuttujien roolien nimet vastaisivat kertausmateriaalissa olleita roolinimiä. Lisäksi PlanAni täytti koko näyttöruudun eikä mitään muita ohjelmia päässyt kokeen aikana käyttämään. Tehtävänä (liite 5) molemmilla koeryhmillä oli antaa ohjelmalle syötteeksi luku 6 ja kirjoittaa vastauspaperiin ohjelman suorituksen aikana muuttujille sijoitetut arvot. 26
Kuva 11: Kokeessa eri rooleista käytetyt alkuperäiset ja lumekuvat. 27
Kuva 12: Ohjelman visualisointia PlanAnilla lumekuvien avulla. 28
Kolmannessa koeosiossa haluttiin palautetta PlanAnilla suoritettuun osioon. Koska PlanAnista oli kaksi versiota, myös palautekyselystä oli omat versiot rooliryhmälle (liite 6) ja kontrolliryhmälle (liite 7). Tehtävässä 4 oli esillä PlanAnin roolikuvat ja jokaisesta kuvasta piti kertoa mitä roolia se esittää. Lisäksi piti arvioida kouluarvosanalla (4-10) kuinka hyvin kuva roolia esittää ja kirjoittaa tai piirtää kuva, joka esittäisi roolia kympin arvoisesti. Molemmat ryhmät jatkoivat arviointia tehtävässä 5 (liite 8) ottamalla kantaa siihen miten hyödyllistä roolien kuvilla esittäminen on, onko siitä jotain apua tai voisiko siitä olla jotain haittaa. Viimeisenä osiona oli molemmille koeryhmille yhteinen tehtävä 6 (liite 9; Sajaniemi, 2004), jossa täytyi tunnistaa muuttujien roolit kolmesta pienestä Pascal-kielisestä ohjelmasta. Ohjelmat olivat erilaisia kuin kertauksen päätteeksi pidetyssä tasokokeessa käytetyt ohjelmat. Kokeen paperiset materiaalit oli niitattu yhteen kolmeksi erilaiseksi nipuksi, joista jokaisen ensimmäisenä sivuna oli kansilehti sisältäen päivämäärä- ja nimitiedot. Kertausmateriaalinippu tasokokeineen oli yhteinen molemmille koeryhmille, rooliryhmä sai tehtävänipun oikeilla roolikuvilla ja kontrolliryhmä lumekuvilla. Lisäksi kokeenjohtajia varten oli tehty ohjeet (liite 10) kokeen toistamiseksi mahdollisimman samanlaisena. Ohjeet sisälsivät kokeenjohtajien vuorosanat, tekemiset sekä koetehtävien kestoajat. Koetta varten oli varattu kaksi mikroluokkaa, joista toiseen oli asennettu rooliryhmää varten PlanAnin oikeat versiot ja toiseen kontrolliryhmää varten tehdyt, lumekuvilla varustetut PlanAnin versiot. 4.1.3 Koejärjestely Muuttujien roolien kertaus Koehenkilöille annettiin kertausmateriaali ja tasokoe (liite 1 ja liite 2; Sajaniemi,2004) nipussa, jonka ensimmäisenä sivuna oli päivämääräja nimitiedot keräävä kansilehti. Koehenkilöitä pyydettiin kirjoittamaan nimensä kansilehdelle, perehtymään kertausmateriaaliin ja tekemään materiaalin lopussa olevat tehtävät. Tehtävien tekemisessä voi vapaasti käyttää hyväksi kertausmateriaalia. Aikaa tehtävien tekemiseen oli 15 minuuttia. 29