OHJE KIRJAPAINOLLE: B5-arkin vasen- ja yläreuna kohdistetaan A4-arkin vasempaan ja yläreunaan. Näin pitäisi marginaaliksi tulla taitteen puolella noin 33 mm ja muualla noin 22 mm. Tietojenkäsittelytiede 29 Lokakuu 2009 sivut 17–36 c kirjoittaja(t) Toimittaja: Jorma Tarhio Tuloksia ja kokemuksia ohjelmasuorituksen visualisoinnista Erkki Kaila, Teemu Rajala, Mikko-Jussi Laakso & Tapio Salakoski Turun Yliopisto, Informaatioteknologian laitos & TUCS – Turku Centre for Computer Science {ertaka,temira,milaak,sala}@utu.fi Tiivistelmä Ohjelmasuorituksen visualisointi on potentiaalisesti käyttökelpoinen menetelmä ohjelmoinnin perusteiden opettamiseksi aloittelijoille. Sen vaikutuksia on kuiten- kin tutkittu melko vähän. ViLLE on Turun yliopistossa kehitetty ohjelmasuorituk- sen visualisointityökalu. Tässä artikkelissa esittelemme järjestelmän vaikutuksista tehtyjä tutkimuksia tuloksineen. Lisäksi esittelemme uusina kvalitatiivisina tulok- sina opiskelijoiden palautetta työkalun käyttöön liittyen. Tulokset ja palaute osoit- tavat, että ViLLEä voidaan hyödyntää tehokkaasti ohjelmoinnin alkeiden opetta- miseen aloitteleville ohjelmoijille. 1 Johdanto Ohjelmointitaitoa voidaan pitää eräänä tietojenkäsittelytieteen opintojen tärkeim- pänä yksittäisenä päämääränä — linjas- ta tai opintojen suuntauksesta riippumat- ta. Useiden tutkimusten (ks. esim. [8] tai [1]) mukaan opiskelijoilla on kuiten- kin huomattavia vaikeuksia peruskäsittei- den omaksumisessa. Niukkojen opettaja- resurssien ja suurten ryhmäkokojen vuok- si henkilökohtaisen ohjauksen mahdolli- suudet ovat yleensä vähäiset. Tästä joh- tuen tarve erilaisille opetuksen apuväli- neille — ja erityisesti sellaisille apuväli- neille, joita opiskelijat voivat käyttää itse- näisesti oppimisen apuna — on ilmeinen. Visualisoinnilla tarkoitetaan ohjelman tai algoritmin esittämistä graafisesti. Wig- ginsin [11] mukaan visualisoinnin tarkoi- tuksena on auttaa käyttäjää ymmärtämään mitä ohjelma tekee, miksi se tekee niin, miten se toimii ja mitä suorituksesta seu- raa. Visualisointijärjestelmien päämäärä- nä on siis konkretisoida ohjelmien ja al- goritmien suorituksen muuten abstrakteja piirteitä. Oletettavasti järjestelmien avul- la voidaan helpottaa ohjelmien ymmärtä- mistä ja näin ollen edelleen parantaa op- pimistuloksia. Algoritmeja visualisoivien järjestelmien käyttöä opetuksen apuna on- kin tutkittu kohtuullisen laajasti (ks. esim. [2] tai [4]); ohjelmasuorituksen visuali- soinnissa tilanne on toinen: vaikka erilai- sia järjestelmiä on kehitetty suhteellisen paljon, löytyy tutkimuksia oppimisvaiku- tuksista niukasti.
20
Embed
Tuloksia ja kokemuksia ohjelmasuorituksen visualisoinnista · Turun Yliopisto, Informaatioteknologian laitos & TUCS – Turku Centre for Computer Science {ertaka,temira,milaak,sala}@utu.fi
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
OHJE KIRJAPAINOLLE: B5-arkin vasen- ja yläreuna kohdistetaan A4-arkin vasempaan jayläreunaan. Näin pitäisi marginaaliksi tulla taitteen puolella noin 33 mm ja muualla noin 22 mm.
Tuloksia ja kokemuksiaohjelmasuorituksen visualisoinnista
Erkki Kaila, Teemu Rajala, Mikko-Jussi Laakso & Tapio SalakoskiTurun Yliopisto, Informaatioteknologian laitos
&TUCS – Turku Centre for Computer Science
{ertaka,temira,milaak,sala}@utu.fi
Tiivistelmä
Ohjelmasuorituksen visualisointi on potentiaalisesti käyttökelpoinen menetelmäohjelmoinnin perusteiden opettamiseksi aloittelijoille. Sen vaikutuksia on kuiten-kin tutkittu melko vähän. ViLLE on Turun yliopistossa kehitetty ohjelmasuorituk-sen visualisointityökalu. Tässä artikkelissa esittelemme järjestelmän vaikutuksistatehtyjä tutkimuksia tuloksineen. Lisäksi esittelemme uusina kvalitatiivisina tulok-sina opiskelijoiden palautetta työkalun käyttöön liittyen. Tulokset ja palaute osoit-tavat, että ViLLEä voidaan hyödyntää tehokkaasti ohjelmoinnin alkeiden opetta-miseen aloitteleville ohjelmoijille.
1 Johdanto
Ohjelmointitaitoa voidaan pitää eräänätietojenkäsittelytieteen opintojen tärkeim-pänä yksittäisenä päämääränä — linjas-ta tai opintojen suuntauksesta riippumat-ta. Useiden tutkimusten (ks. esim. [8]tai [1]) mukaan opiskelijoilla on kuiten-kin huomattavia vaikeuksia peruskäsittei-den omaksumisessa. Niukkojen opettaja-resurssien ja suurten ryhmäkokojen vuok-si henkilökohtaisen ohjauksen mahdolli-suudet ovat yleensä vähäiset. Tästä joh-tuen tarve erilaisille opetuksen apuväli-neille — ja erityisesti sellaisille apuväli-neille, joita opiskelijat voivat käyttää itse-näisesti oppimisen apuna — on ilmeinen.
Visualisoinnilla tarkoitetaan ohjelmantai algoritmin esittämistä graafisesti. Wig-
ginsin [11] mukaan visualisoinnin tarkoi-tuksena on auttaa käyttäjää ymmärtämäänmitä ohjelma tekee, miksi se tekee niin,miten se toimii ja mitä suorituksesta seu-raa. Visualisointijärjestelmien päämäärä-nä on siis konkretisoida ohjelmien ja al-goritmien suorituksen muuten abstraktejapiirteitä. Oletettavasti järjestelmien avul-la voidaan helpottaa ohjelmien ymmärtä-mistä ja näin ollen edelleen parantaa op-pimistuloksia. Algoritmeja visualisoivienjärjestelmien käyttöä opetuksen apuna on-kin tutkittu kohtuullisen laajasti (ks. esim.[2] tai [4]); ohjelmasuorituksen visuali-soinnissa tilanne on toinen: vaikka erilai-sia järjestelmiä on kehitetty suhteellisenpaljon, löytyy tutkimuksia oppimisvaiku-tuksista niukasti.
18 Tuloksia ohjelmasuorituksen visualisoinnista
Kuva 1: ViLLEn esimerkkieditori.
Tieteellisesti todistettujen oppimistu-losten saavuttaminen oli eräs lähtökoh-dista kehittäessämme ViLLE-nimistä oh-jelmasuorituksen visualisointijärjestelmääTurun Yliopistossa. Järjestelmää on pyrit-ty testaamaan mahdollisimman monipuo-lisesti, opiskelijoiden erilaiset lähtökohdathuomioiden. Tähän artikkeliin on koot-tu tähän mennessä julkaistuja tutkimuksiajärjestelmän käytöstä ohjelmoinnin ope-tuksessa tuloksineen, minkä lisäksi esit-telemme uusia tuloksia opiskelijoilta ke-rätyn palautteen pohjalta. Lisäksi esitte-lemme järjestelmän yleiset ominaisuudet
suhteellisen kattavasti, niin opettajan kuinoppijan kannalta, ja pohdimme järjestel-män tulevaisuutta. Artikkeli on julkaistuenglanniksi käännettynä lehdessä ”Infor-matics in Education” [3].
2 ViLLE2.1 Ominaisuudet yleisesti
ViLLE on Turun Yliopistossa kehitettyohjelmasuorituksen visualisointijärjestel-mä. Sen tarkoituksena on havainnollis-taa ohjelman tiloissa sen suorituksen aika-na tapahtuvat muutokset erilaisten graafis-
Kaila, Rajala, Laakso, Salakoski 19
Kuva 2: Kysymyseditori.
ten ja tekstimuotoisten elementtien avul-la. Järjestelmä tukee joustavasti eri ohjel-mointikieliä ja mahdollistaa uusien syn-taksien ja esimerkkien määrittelyn si-säänrakennettujen editorien avulla. Opet-taja voi lisäksi muodostaa esimerkkei-hin liittyen harjoitustehtäviä. Esimerkitja harjoitukset voidaan järjestelmän vien-titoimintoa hyväksikäyttäen tarjota hel-posti opiskelijoiden saataville esimerkik-si verkkoon tai muistitikulle. Integroimal-la harjoitukset TRAKLA2-palvelimeen[7] voidaan automaattisesti tarkastetta-vat tehtävät ottaa osaksi ohjelmointikurs-
sia, esimerkiksi korvaamaan (tai täyden-tämään) perinteiset demonstraatiot tai las-kuharjoitukset. Lisätietoa ViLLEstä löy-tyy järjestelmän kotisivuilta osoitteestahttp://ville.cs.utu.fi.
2.2 Ominaisuudet opettajankannalta
Opettajan näkökulmasta ViLLEn tärkeim-pänä ominaisuutena voidaan pitää sensoveltuvuutta erilaisiin kursseihin: käy-tettävä ohjelmointikieli (tai ohjelmointi-kielet), esimerkit ja tehtävät ovat kaikki
20 Tuloksia ohjelmasuorituksen visualisoinnista
Kuva 3: ViLLEn syntaksieditori.
muokattavissa sisäänrakennettujen edito-reiden avulla. Tarkoituksena on sekä mah-dollistaa helppo integrointi mille tahan-sa ohjelmointikurssille että tarjota työka-lu, jolla opettaja voi toteuttaa joustavastiomaa opetusfilosofiaansa tarvitsematta si-toutua esimerkiksi määrättyyn ohjelmoin-tikieleen tai valmiisiin esimerkkeihin taitehtäviin.
2.2.1 Esimerkkien muokkaaminen
Esimerkit on jaettu aiheittain kategorioi-hin. Opettaja voi sekä muokata valmii-ta esimerkkejä että luoda kokonaan uusia
esimerkkejä esimerkkieditorin (kuva 1)avulla. ViLLE kääntää Javalla kirjoite-tun ohjelmakoodin automaattisesti kai-kille määritellyille kielille ja muodos-taa jokaisesta rivistä selitykset sekä vi-sualisoinnin kannalta tarpeelliset suoritus-tapahtumamäärittelyt. Työkalu tukee Ja-van määrittelyistä peruskurssien kannaltaolennaisimpia ominaisuuksia: painopisteon niissä ominaisuuksissa, jotka pystytäänhavainnollisesti visualisoimaan, ja jotkaesiintyvät yleisesti peruskursseilla käyte-tyissä ohjelmointikielissä; näin ollen esi-merkiksi oliotuki on rajallinen.
Kaila, Rajala, Laakso, Salakoski 21
Kuva 4: ViLLEn visualisointinäkymä.
2.2.2 Kysymykset ohjelmansuorituksesta
Opettaja voi määritellä kysymyksiä ohjel-man suorituksesta sitouttaakseen opiske-lijat seuraamaan visualisointia tiiviimmin.Nykyisellään järjestelmä tukee monivalin-takysymyksiä ja graafisia taulukkokysy-myksiä. Kysymykset määritellään kysy-myseditorin (kuva 2) avulla.
Kysymykset liitetään esimerkkiohjel-man suoritukseen ja ne esitetään opis-kelijalle automaattisesti tämän suoritet-tua ohjelman määrättyyn pisteeseen asti.TRAKLA-palvelinta käyttämällä voidaan
lisäksi pitää automaattisesti kirjaa opiske-lijan läpikäymistä tehtävistä ja oikeidenvastausten määrästä (ks. aliluku 2.4).
2.2.3 Ohjelmointikielten määrittely
Ohjelmointikielten syntakseja voidaanmääritellä ViLLEn syntaksieditorin (ku-va 3) avulla. Määriteltävä syntaksi on esi-tetty editorin oikeassa ikkunassa ja vas-taavat rivit Javan syntaksissa vasemmas-sa. Lisäksi alhaalla olevassa ikkunassa onesitetty editoitavan rivin syntaksin selitys.
Rivivastaavuus Java-kielen on kanssaon pakollinen kaikissa määritellyissä syn-
22 Tuloksia ohjelmasuorituksen visualisoinnista
takseissa, jotta ohjelman suoritus ja mää-ritellyt kysymykset sijoittuvat oikeille pai-koilleen valitusta kielestä riippumatta. Ri-vien määrittely ei kuitenkaan ole pakollis-ta: näin esimerkiksi Pythonin lohkot voi-vat loppua tyhjään riviin Javan vastaa-vien lohkojen päättyessä sulkevaan aalto-sulkeeseen.
2.3 Ominaisuudet opiskelijankannalta
ViLLEn avainominaisuudet opiskelijankannalta voidaan jakaa seuraaviin katego-rioihin:
Ohjelman suorituksen visualisointi:ViLLE visualisoi esimerkkiohjelman suo-rituksen rivi kerrallaan (kuva 4). Ohjelma-rivien korostuksen lisäksi järjestelmä esit-tää omilla alueillaan mm. tiedon muuttu-jien arvoista ja näkyvyydestä, selityksensuoritettavasta rivistä ja ohjelman tulos-teet. Aliohjelmat ja niiden paluuarvot (sa-moin kuin aliohjelmille kuuluvat paikal-liset muuttujat) esitetään kutsujärjestyk-sessä omissa kehyksissään erillisessä kut-supinossa. Lisäksi järjestelmä esittää ha-luttaessa globaalit muuttujat (käytännössätaulukot) arvoineen omassa kehyksessään.
Kieliriippumattomuus: ViLLE visua-lisoi ohjelmat samalla tavalla ohjelmoin-tikielestä riippumatta. Opiskelija voi vaih-taa käytettävää ohjelmointikieltä missä ta-hansa suorituksen vaiheessa. Lisäksi jär-jestelmässä on erillinen rinnakkaisnäky-mä (kuva 5), jossa saman esimerkkiohjel-man suoritus esitetään yhtäaikaisesti kah-della valinnaisella ohjelmointikielellä.
Visualisoinnin kontrollit: Opiskelijavoi kontrolloida suorituksen etenemis-tä monipuolisesti: suorituksessa on mah-
dollista liikkua askel kerrallaan eteen- taitaaksepäin, minkä lisäksi ohjelma (tai osasiitä) voidaan suorittaa automaattisesti jat-kuvana halutulla nopeudella. Ikkunan ala-laidassa olevalla liukusäätimellä opiskeli-ja voi lisäksi halutessaan siirtyä suorituk-sessa mihin tahansa vaiheeseen nopeasti.Liukusäätimellä on myös sekundäärinenfunktio: sen askelista voidaan nopeastipäätellä ohjelman suoritukseen kuuluvienaskelten määrä, ja sopivilla esimerkeil-lä vertailla algoritmien (esimerkiksi kaksierilaista järjestelyalgoritmia) tehokkuuttavastaavilla syötteillä.
Vuorovaikutus: Kysymyksiin vastaa-misen (kuva 6) lisäksi opiskelijat pys-tyvät opettajan niin halutessa muokkaa-maan esimerkin koodia visualisointitilas-sa. Muutokset ohjelmakoodissa voidaanvisualisoida välittömästi kääntämisen jäl-keen. Koska ohjelmien muokkaus on kui-tenkin nykyisessä versiossa tehtävä ai-na esimerkkiohjelman Java-kieliseen ver-sioon, ei ominaisuus luonnollisesti sovellukaikkien kurssien käyttöön.
2.4 Automaattisesti arvioiduttehtävät
TRAKLA-palvelinta käyttämällä ViLLEntehtävät voidaan siirtää verkossa suori-tettavaksi kokonaisuudeksi (kuva 7). Pal-velin huolehtii opiskelijoiden kirjautumi-sista, pistemäärien ylläpidosta ja tehtävä-kierrosten avautumisesta ja sulkeutumi-sesta haluttuina ajankohtina. Opiskelijatvoivat suorittaa yksittäiset tehtävät niinmonta kertaa kuin haluavat. Lisäksi opet-taja voi asettaa kierrokselle minimipiste-määrän, joka opiskelijoiden on vähintäänsaavutettava kurssin läpäistäkseen. Ver-kossa suoritettavat ViLLE-tehtävät ovatnykyisellään käytössä useissa korkeakou-luissa Suomessa, ja palaute (ks. aliluku
Kaila, Rajala, Laakso, Salakoski 23
Kuva 5: ViLLEn rinnakkaisnäkymä.
3.4) opiskelijoilta on ollut pääsääntöisestierinomaista: järjestelmä näyttää täyttävänpaikkansa ohjelmakoodin lukutaidon pa-rantamisessa erityisesti ohjelmoinnin al-kutaipaleella.
3 Tutkimuksia ViLLEnkäytöstä
3.1 Järjestelmän tehokkuusopetuskäytössä
ViLLEn tehokkuutta opetuskäytössä tut-kittiin Turun Yliopiston ”Johdatus in-formaatioteknologiaan” -kurssilla. Tutki-mukseen osallistui 72 opiskelijaa (N=72),ja siinä haettiin vastausta kahteen tutki-musongelmaan: 1) ”Onko ViLLEstä apuaohjelmoinnin peruskäsitteiden oppimises-sa?” ja 2) ”Onko oppimisessa eroa, mi-
Kuva 6: Taulukkokysymys ViLLEn visualisointinäkymässä.
käli aikaisempi ohjelmointikokemus ote-taan huomioon?”. Vastaavat nollahypotee-sit olivat, että ViLLEstä ei ole hyötyä oh-jelmoinnin oppimisessa, ja että vaikutuson sama aloittelijoille ja kokeneemmilleohjelmoijille. Tutkimus järjestettiin kurs-sin kolmannella viikolla, jolloin varsinais-ta ohjelmointiasiaa ei oltu vielä käsitelty.Opiskelijoille järjestettiin kuitenkin erilli-nen perehdytysluento, jonka aikana muunmuassa esiteltiin käytetty ohjelmointikie-li. Lisäksi kurssin toisella viikolla kurssinkotisivuille lisättiin linkki ViLLEen, jot-ta järjestelmä ja sen käyttö olisi opiskeli-
joille tuttua ennen tutkimusta. Tutkimus-ta varten opiskelijat jaettiin satunnaisestikahteen eri ryhmään: koeryhmään kuului32 oppilasta (N=32) ja vertailuryhmään40 (N=40). Molemmat ryhmät aloittivatkahden tunnin tietokoneluokkaharjoituk-sen suorittamalla esitestin viidentoista mi-nuutin aikana. Testin kolmessa kysymyk-sessä kussakin opiskelijoille esitettiin oh-jelmakoodilohko, ja pyydettiin määritte-lemään ohjelman tulostus. Esitestin jäl-keen molemmat ryhmät opiskelivat testis-sä esitettyjä aiheita käymällä vapaasti lä-pi html-muotoisen ohjelmointitutoriaalin.
26 Tuloksia ohjelmasuorituksen visualisoinnista
Kuva 7: ViLLE-tehtäviä verkossa.
Koeryhmään kuuluvat opiskelijat pystyi-vät lisäksi suorittamaan tutoriaalissa ole-vat ohjelmointitehtävät ViLLEn avulla.Tutoriaalin läpikäynnin (45 minuuttia) jäl-keen molemmat ryhmät suorittivat jälki-testin puolen tunnin aikana. Jälkitestiinkuului esitestin kysymysten lisäksi kaksivaativampaa tehtävää, joista ensimmäises-sä opiskelijoiden piti itse muodostaa an-netun tehtävän suorittava ohjelma, ja toi-sessa päätellä rekursiivisen algoritmin si-sältävän ohjelman tuloste. Alku- ja jälki-testien tehtävät pisteytettiin nollasta kym-meneen siten, että nolla tarkoitti täysinväärää vastausta, ja jokainen piste tarkoit-ti 10% nousua vastauksen oikeellisuudes-sa. Maksimipistemäärä esitestissä oli näinollen 30 ja jälkitestissä 50 pistettä. Esi-testin pisteet molemmille ryhmille on esi-tetty taulukossa 1, mukaan lukien pistei-den keskiarvot, keskihajonta (suluissa) jakaksisuuntaisen t-testin avulla lasketut p-arvot ryhmien välillä.
Yhdessäkään kysymyksessä ei esiin-
tynyt tilastollisesti merkitsevää eroa. Ab-soluuttisella asteikolla vertailuryhmä suo-riutui paremmin kysymyksissä K2 ja K3,ja koeryhmä kysymyksessä K1.
Jälkitestin tulokset on esitetty taulu-kossa 2. Jokaisen kysymyksen yhteydessäon ilmoitettu suluissa vastaavan kysymyk-sen numero esitestissä. Yhteispisteistä onesitetty sekä jaettujen (eli kysymysten, jo-ka esiintyivät sekä esi- että jälkitestissä)että kaikkien pisteiden keskiarvo. Lisäksion esitetty vastaavien kysymysten esi- jajälkitestin pisteiden erotus.
Vertailtaessa sekä esi- että jälkitestissäesiintyneitä (l. yhteisiä) kysymyksiä huo-mataan, että vertailuryhmä suoriutui pa-remmin kysymyksessä JK1, ja koeryhmäkysymyksissä JK2 ja JK3. Joka tapaukses-sa erot ovat liian pienet, jotta nollahypo-teesi voitaisiin hylätä.
Taulukossa 3 on vertailtu esi- ja jäl-kitestien tuloksia ryhmien sisällä. Ku-ten taulukosta nähdään, molemmat ryh-mät suoriutuivat tilastollisesti merkitse-
Kaila, Rajala, Laakso, Salakoski 27
Taulukko 3: Esi- ja jälkitestin tulokset.
Pisteet Vertailuryhmä KoeryhmäEsitesti 10,58 10,41
Jälkitesti 17,55 18,13Erotus yhteensä 6,98 7,72
p-arvo 0,000 0,000
västi paremmin jälkitestissä kuin esitestis-sä (p-arvo < 0,01). Tästä voidaan päätel-lä, että järjestetyn kaltaisten tilaisuuksienavulla on mahdollista opiskella itsenäises-ti hyvinkin tehokkaasti ohjelmoinnin pe-ruskäsitteitä.
Toisena tutkimusongelmana selvitet-tiin onko aikaisemmalla ohjelmointikoke-muksella vaikutusta oppimistuloksiin. Tä-tä varten molemmat ryhmät jaettiin tulok-sia tarkastellessa edelleen kahtia: niihin,joilla ei ollut yhtään aikaisempaa ohjel-mointikokemusta (EAO), ja niihin, joil-la oli ennestään jonkin verran ohjelmoin-tikokemusta (JAO). Tuloksia tarkasteltiinaluksi ryhmien sisällä (inside groups).Esitestin tulokset ryhmittäin ohjelmointi-kokemus huomioiden on esitetty taulukos-sa 4. Taulukosta nähdään, että aikaisem-paa kokemusta omaavien tulokset ovat ti-lastollisesti merkitsevästi parempia vertai-luryhmässä (p ~0,001) ja lähes tilastolli-sesti merkitsevästi parempia koeryhmäs-sä (p ~0,051). Voidaan olettaa, että koke-neiden ohjelmoijien tulisi saada parempiapisteitä, joten tässä voitaisiin periaattees-sa käyttää myös luottamisväliä (p < 0,1).Vastaavat tulokset jälkitestistä on esitet-ty taulukossa 5. Taulukosta nähdään, et-tä vertailuryhmissä tilastollisesti merkit-sevä ero noviisien ja aikaisemmin ohjel-moineiden välillä säilyi myös lopputes-tissä. Koeryhmässä ero on kuitenkin ka-ventunut siten, että tilastollinen merkitse-vyys on hävinnyt (p-arvot 0,212 ja 0,151).
Koska tulos ei ole tilastollisesti veden-pitävä (koeryhmässä p ~0,051 esitestis-sä, vaadittava p < 0,05) vertailtiin tu-loksia myös ryhmien yli. YksisuuntainenANOVA-varianssianalyysi kaikkien nel-jän ryhmän yli esi- ja jälkitestin yhteis-ten kysymysten summille antoi F(3,68) =8,168 (esi) ja F(3,68) = 3,139 (jälki), p <0,05. Tämän jälkeen laskettiin post-hoc-analyysin avulla homogeeniset osajou-kot esi- ja jälkitestin tuloksille. Esitestis-sä luonnollisesti kahdeksi homogeenisek-si osajoukoksi muodostuivat ensinnäkinkoeryhmän EAO ja vertailuryhmä EAO(KEAO ja VEAO), ja toiseksi koeryh-män JAO ja vertailuryhmän JAO (KJAO jaVJAO). Jälkitestissä tilanne muuttui, silläKEAO kuului kumpaankin osajoukkoon,ja otti näin molempia JAO-ryhmiä kiin-ni. Näin ollen näyttää siltä, että ViLLEstäon erityisesti hyötyä kokemattomille oh-jelmoijille ja tulosta voidaan pitää merkit-tävänä, koska järjestelmän käyttöön varat-tu aika oli verrattain lyhyt. Esi- ja jälki-testin kysymyksille laskettiin Cronbachinalfa-luotettavuusarvot: arvot (esitestin =0,667 ja jälkitestin = 0,831) osoittavat, ettäinstrumenttia voidaan pitää erittäin luotet-tavana. Tutkimus on esitetty kokonaisuu-dessaan artikkelissa [10].
28 Tuloksia ohjelmasuorituksen visualisoinnista
Taulukko 4: Esitestin tulokset aikaisempi ohjelmointikokemus huomioiden.
Vertailuryhmä KoeryhmäKysymys EAO
(N=23)JAO(N=17)
p-arvo EAO(N=20)
JAO(N=12)
p-arvo
K1 4,17(2,33)
6,59(2,53)
0,003 5,60(2,11)
7,17(2,76)
0,107
K2 1,22(1,78)
4,71(4,31)
0,005 1,00(2,22)
4,00(4,51)
0,049
K3 1,00(2,86)
4,94(4,62)
0,005 1,65(3,62)
2,83(4,34)
0,414
Yhteensä 6,39(4,68)
16,24(9,63)
0,001 8,25(5,44)
14,00(8,48)
0,051
Taulukko 5: Jälkitestin tulokset aikaisempi ohjelmointikokemus huomoioiden.
Naps ym. [9] esittelivät vuorovaikutuk-sen taksonomian, jonka tarkoitus on jäsen-tää käyttäjän sitoutumisen määrää visuali-sointijärjestelmään. Taksonomia koostuukuudesta tasosta:
1. Ei-katsominen: Ei visualisointijär-jestelmää käytössä
2. Katsominen: Käyttäjä seuraa pas-siivisesti visualisointia. Nimestäänhuolimatta tasoon kuuluvaksi laske-taan kaikki havainnointi katsomisenlisäksi. Käyttäjä voi kontrolloida vi-sualisoinnin kulkua, muttei osallis-tu muuten aktiivisesti.
3. Vastaaminen: Käyttäjä vastaa vi-sualisoinnista esitettyihin kysy-myksiin.
4. Muokkaaminen: Käyttäjä muuttaavisualisointia, esimerkiksi muok-kaamalla visualisoitavaa ohjelma-koodia tai algoritmia.
5. Rakentaminen:Käyttäjä osallistuuaktiivisesti visualisoinnin muodos-tamiseen, esimerkiksi kirjoittamallaohjelmakoodin.
6. Esittäminen: Käyttäjä esittää vi-sualisoinnin muiden arvioitavaksi jaevaluoi sitä yhdessä ryhmän ja opet-tajan kanssa.
Luvussa 3.1 esitettyä tutkimusta laa-jennettiin siten, että esitettyjen ryhmien li-säksi mukaan otettiin kolmas ryhmä, jo-ka tutoriaalin lisäksi käytti ViLLEä koe-ryhmää alemmalla taksonomian tasolla.Käytännössä mukana oli siis kolme ryh-mää: ei-katsominen (N = 40), katsominen(N=65) ja vastaaminen (N = 32). Katso-misryhmän käyttämästä ViLLEn versiosta
oli poistettu kokonaan kysymykset ohjel-man suorituksesta. Tarkoituksena oli sel-vittää, saadaanko tutkimuksen avulla vah-vistettua Napsin ym. [9] hypoteesi, jon-ka mukaan visualisointijärjestelmän käy-töllä voidaan saavuttaa oppimisvaikutuk-sia vain jos sitä käytetään vuorovaikutuk-sen tasoilla kolmesta ylöspäin. Esi- ja jäl-kitestit ja tutkimuksen kulku olivat saman-sisältöiset kuin luvussa 3.1.
Yksisuuntaisen ANOVA-testin avullalasketut ryhmien väliset tilastolliset erotesi- ja jälkitestissä on esitetty taulukossa6. Kuten taulukosta nähdään — ja luvus-sa 3.1 jo todettiin — ei tilastollisia ero-ja ryhmien välillä esiintynyt. Myös kat-somisryhmän opiskelijat paransivat tulok-siaan tilastollisesti merkitsevästi tilaisuu-den aikana (p-arvo esi- ja jälkitestin tu-loksia verratessa ryhmän sisällä < 0,01).Tarkastellaan seuraavaksi noviisien ja oh-jelmointikokemusta omaavien opiskelijoi-den oppimistulosten eroja kaikkien ryh-mien sisällä. Tulokset on esitetty taulu-kossa 7. Esitestissä ei-katsomis- ja katso-misryhmien sisällä noviisien ja aikaisem-min ohjelmoineiden kesken oli tilastolli-sesti merkitsevä ero ja vastaamisryhmässälähes tilastollisesti merkitsevä ero. Kutenedellisessä luvussa huomattiin, vastaamis-ryhmältä ero oli hävinnyt lopputestissä.Katsomisryhmällä ero kuitenkin säilyi (p-arvo < 0,001). Tästä voidaan päätellä, ettäViLLEstä hyötyäkseen noviisien on käy-tettävä sitä katsomistasoa korkeammallavuorovaikutuksen tasolla. Edellisen var-mistamiseksi suoritettiin yksisuuntainenANOVA-varianssianalyysi jälkimittauksi-neen. Analyysin mukaan esitestin pistei-den perusteella muodostuu kaksi homo-geenista osajoukkoa siten, että kaikki no-viisit kuuluvat eri joukkoon kuin koke-neemmat (taulukko 8). Lopputestin tulok-sia vastaavalla tavalla analysoitaessa vas-taamisryhmän noviisit saivat kuitenkin ai-
kaisemmin ohjelmoineita ryhmiä kiinni(taulukko 9). Analyysi vahvistaa edelläesitettyä päätelmää: ViLLE on erityisenhyödyllinen noviiseille ohjelmoinnin pe-rusteiden oppimisessa, mutta vain, jos si-tä käytetään taksonomian korkeammallatasolla. Pelkkää passiivista visualisointiakäyttämällä vastaaviin oppimistuloksiin eipäästä.
3.3 Aikaisemman käyttökoke-muksen merkitys oppimis-vaikutuksiin
Halusimme myös tutkia järjestelmän ai-kaisemman käyttökokemuksen merkitys-tä oppimistuloksiin. Oletettavaa on, et-tä järjestelmään aikaisemmin tutustuneetopiskelijat pystyvät paremmin keskitty-mään opetettavaan asiaan, koska järjestel-män käyttöön liittyvä kognitiivinen taakkaon pienempi. Tutkimus järjestettiin kah-della samansisältöisellä lukion perusoh-jelmointikurssilla. Kurssien ainoana eronaoli se, että jälkimmäisellä kurssilla opis-kelijat tutustutettiin alusta alkaen ViLLEnkäyttöliittymään ja ominaisuuksiin. Oppi-mista testattiin samankaltaisella tilaisuu-della kuin aiemmissa luvuissa mainituis-sa tutkimuksissa, tosin esi- ja jälkitestis-sä olevat kysymykset muotoiltiin osittainuudestaan (mm. rekursio koettiin lukioi-
käisille liian monimutkaiseksi käsitteek-si). ViLLEä ennen käyttämättömät oppi-laat muodostivat vertailuryhmän (N=17)ja aikaisempaa kokemusta omaavat koe-ryhmän (N=7). Vaikka ryhmäkoot olivatmelko pieniä, tilastollisesti tulokset muo-dostuivat kuitenkin merkitseviksi.
Oppilaiden lähtötason yhteneväisyy-den varmistamiseksi tarkasteltiin heidänaikaisempien tietojenkäsittelyn ja mate-matiikan kurssiensa arvosanoja ennen tut-kimusta. Arvosanojen keskiarvot ja -hajonnat on esitetty taulukossa 10. Ryh-mien välillä ei esiintynyt arvosanoissa ti-lastollisesti merkitsevää eroa, ja absoluut-tisestikin erotus on vähemmän kuin yksipiste. Esi- ja jälkitestin tulokset ryhmittäinon esitetty taulukossa 11.
Esitestissä ryhmien välillä ei ollut ti-lastollisesti merkitsevää eroa, mutta jäl-kitestissä tilanne muuttui. Merkitsevä erolöytyy sekä jaetuissa (eli sekä esi- et-tä jälkitestissä esiintyvissä) että kaikissakysymyksissä. Tuloksista voidaan päätel-lä, että aikaisempi tutustuminen järjestel-mään vahvisti selvästi oppimisvaikutuk-sia. Voidaankin sanoa, että erilaisten jär-jestelmien oppimisvaikutuksia tutkittaes-sa on tärkeä tutustuttaa opiskelijat järjes-telmän käyttöön. Lisäksi tutkimus vahvis-ti edellisissä luvuissa mainittuja tuloksia,joiden mukaan ViLLEstä on hyötyä oh-jelmoinnin peruskäsitteiden oppimisessa:
32 Tuloksia ohjelmasuorituksen visualisoinnista
Taulukko 10: Matematiikan ja tietojenkäsittelyn kurssienarvosanat (asteikko 4. . . 10).
Ryhmä Matematiikka TietojenkäsittelyVertailuryhmä 6,75 (1,60) 7,94 (1,09)
Koeryhmä 7,67 (2,25) 8,57 (1,62)
p-arvo 0,330 0,220
Taulukko 11: Esi- ja jälkitestin tulokset ryhmittäin.
molemmat ryhmät saivat jälkitestissä ti-lastollisesti merkitsevästi paremmat pis-teet kuin esitestissä. Tulokset on esitet-ty kokonaisuudessaan artikkelissa Laaksoym. [5].
3.4 Opiskelijoiden mielipiteitäjärjestelmästä
Kvantitatiivisten testien lisäksi halusimmeselvittää opiskelijoiden mielipiteitä järjes-telmän käytöstä. Mielipiteet kerättiin Tu-run yliopiston Johdatus informaatiotekno-logiaan -kurssin osallistujilta kurssin lo-pussa. ViLLE oli olennaisena osana kurs-sin suoritusta, sillä kurssin demonstraa-tiot suoritettiin kokonaisuudessaan ViL-LEn automaattisesti tarkastettavien ohjel-makoodin lukutaitotehtävien avulla. Ky-selyyn vastasi yhteensä 114 (N=114) opis-kelijaa ja se jakaantui kolmeen osaan:yleiset kysymykset järjestelmästä, järjes-telmän hyödyt eri käsitteiden oppimisessaja mielipiteet järjestelmän eri ominaisuuk-sista.
Ensimmäisessä osuudessa esitettiin
kuusi väittämää järjestelmästä ja pyydet-tiin opiskelijoita arvioimaan seitsenportai-sella asteikolla (1: täysin eri mieltä, 7:täysin samaa mieltä) niiden todenmukai-suutta. Vastausten perusteella opiskelijatnäyttävät olevan sitä mieltä, että järjestel-mä soveltuu hyvin ohjelmoinnin alkeiso-petukseen (kaikkien vastaajien keskiarvo5,64), on helppokäyttöinen (ka. 5,49) jahelpottaa ohjelmointiin liittyvien käsittei-den oppimista (ka. 5,41).
Toisessa osuudessa kysyttiin olikoViLLEstä hyötyä erilaisten ohjelmointikä-sitteiden oppimisessa (taulukko 12); käy-tössä oli sama seitsenportainen asteik-ko. Opiskelijoiden vastausten perusteel-la ViLLE koettiin hyödylliseksi kaikkienkysyttyjen käsitteiden ymmärtämisessä —ainoastaan taulukoiden osalta vastausenkeskiarvo jäi alle viiden (ka. 4,73). Avoin-ten palautekommenttien perusteella, tämäjohtuu suurelta osin taulukkokysymyksiinvastaamiseen liittyneestä käytettävyyson-gelmasta.
Kolmanneksi kysyttiin mielipiteitäViLLEn eri ominaisuuksien hyödyllisyy-
destä (taulukko 13). Vastausten keskiha-jonnat on merkitty sulkeisiin. Lukuun ot-tamatta ohjelmien visualisointia useallaeri kielellä, kaikkien kysyttyjen ominai-suuksien hyödyllisyys arvioitiin yli vii-deksi. Erityisesti muuttujien tilojen vi-sualisointi ja tehtävien automaattinen ar-viointi arvioitiin hyödyllisiksi (keskiarvot5,90 ja 5,80). Useilla kielillä visualisoin-nin muita heikompi keskiarvo johtuneeainakin osittain siitä, että opiskelijat ei-vät todennäköisesti käyttäneet koko omi-naisuutta. Muutenkin ominaisuudesta onvarmasti eniten hyötyä silloin, kun jonkinohjelmointikielen perusteet ovat jo hallus-sa, ja aloitetaan uuden ohjelmointikielenopiskelu.
Lisäksi opiskelijoita pyydettiin arvioi-maan asteikolla 1–7 (1 = liian vähän,7 = liian paljon) ViLLE-tehtävien koko-naismäärää kurssilla (ka. 4,48, keskiha-jonta 0,96), ja kysymysten määrää yksit-täistä tehtävää kohden (ka. 4,13, keskiha-jonta 0,76). Keskiarvojen perusteella opis-kelijoiden mielestä kurssilla oli sopivastiViLLE-tehtäviä ja tehtäviin liittyi sopivamäärä kysymyksiä.
Opiskelijoilla oli myös mahdollisuusantaa vapaamuotoista palautetta. Palauteoli pääosin positiivista, mutta myös joitainnegatiivisia kommentteja saatiin. Positii-visina puolina mainittiin esimerkiksi seu-
raavat:
• ”Mielestäni oli tehokkaampaa op-pimisen kannalta tehdä ViLLE-tehtäviä kuin käydä asioita luennol-la läpi.”
• ”Koin ViLLEn kurssilla todella hyö-dylliseksi! Sen avulla pystyi hah-mottamaan ohjelmointia aivan eritavalla kuin luennolla.”
• ”Kynnys tehtävien tekemiseen onmatala, erilaisia harjoituksia onpaljon ja tehtävät voi tehdä missäja milloin huvittaa.”
Negatiiviset kommentit liittyivätyleensä ohjelman käyttöliittymän toimin-nallisuuteen:
• ”Kysymysten kohdalla olisi kätevääpäästä lukemaan ohjelman suori-tuksen historiaa sekä muistitilojenkehityksen.”
• ”Kaikki oleellisimmat asiat eivätmahdu kuvaruudulle. Miksi ihmees-sä ViLLEen pitää loggautua?”
• ”Ärsyttävää, kun ViLLE ikkunaa eivoinut rullata alas- tai ylöspäinsuorituksen aikaisten kysymysten il-mestyessä ruutuun.”
Lisäksi osa opiskelijoista kaipasiViLLE-harjoitusten rinnalle (tai sijasta)perinteisempää opiskelua, esim. yhteistenmikroluokkaharjoitusten muodossa:
• ”Hyvä työkalu opiskeluun, muttatoivoisin enemmän pienryhmähar-joittelua.”
• ”Ihan hyvä ohjelmoinnin alkeidenopetteluun, mutta luennoista sainsilti enemmän irti.”
Kokonaisuutena opiskelijoilla tuntuiolevan hyvinkin positiivinen kuva ViL-LEn hyödyllisyydestä, mutta parannet-tavaa luonnollisesti löytyi. Mielipiteidenperusteella opiskelijat näyttäisivät pitävänmielekkäimpänä kurssia, jossa ViLLE-tehtävät on nivottu perinteisempien opis-kelumetodien sekaan. Kohtuullisen run-sas palaute ohjelman käyttöliittymään liit-tyvistä ongelmista on myös otettu huo-mioon järjestelmää edelleen kehitettäessä,ja mm. taulukkokysymyksiin vastaaminentoimii nykyisellään (toivottavasti) loogi-semmin kuin versiossa, josta mielipiteeton kerätty.
4 Järjestelmäntulevaisuus
ViLLE on käytössä ohjelmoinnin opetuk-sessa useassa eri yliopistossa Suomessa,
ja lisäksi kevään 2009 aikana se on otettukäyttöön Monashin yliopistossa Austra-liassa. Tarkoituksenamme on tulevaisuu-dessa kehittää järjestelmää käyttäjäkoke-muksien ja mielipiteiden perusteella jatutkia edelleen minkälaisia vaikutuksiasillä on ohjelmoinnin oppimiseen. Tavoit-teena on lisätä uusia ominaisuuksia tu-kemaan myös vuorovaikutuksen taksono-mian korkeampia tasoja. Lisäksi järjes-telmään kehitetään parhaillaan tehtävä-pohjia, joiden avulla tehtäviä voidaan sa-tunnaistaa. Tehtäväpohjien avulla voidaanesimerkiksi ohjelmien muuttujat ja nii-den lähtöarvot arpoa satunnaisesti, jolloinsamojen tehtävien uudelleen tekeminenmuuttuu mielekkäämmäksi. Myös erilais-ten tehtävätyyppien lisääminen on työn al-la: tarkoituksena on lisätä ainakin koo-dirivin järjestelytehtäviä, joissa koodirivitannetaan sekoitettuna, ja opiskelijan pitääjärjestää ne tietyn tuloksen aikaansaavaanjärjestykseen.
5 Johtopäätökset
Kerättyjen tutkimustulosten, kokemustenja palautteen perusteella voidaan yhteen-vetona esittää seuraavat johtopäätöksetViLLEstä:
• ViLLEä käyttämällä aloittelijat voi-vat saavuttaa parempia oppimistu-
Kaila, Rajala, Laakso, Salakoski 35
loksia lyhyenkin harjoitustilaisuu-den aikana . . .
• . . . mutta vain, mikäli työkalua käy-tetään korkeammalla vuorovaiku-tuksen taksonomian tasolla. Pelk-kä visualisointien seuraaminen (elityökalun käyttö katsomistasolla) einäytä riittävän tulosten saavuttami-seen; tulokset siis vahvistavat Nap-sin ym. [9] hypoteesin.
• Oppimishyötyjen saavuttamiseksiopiskelijat pitää lisäksi tutustuttaajärjestelmään riittävän perinpohjai-sesti etukäteen, jotta fokus voidaansuunnata asioiden oppimiseen jär-jestelmän käytön opettelun sijasta.
• Suurin osa opiskelijoista pitää ViL-LEä hyödyllisenä perusteiden ope-tuksen kannalta, osan mielestä senparas käyttömuoto olisi kuitenkintyökalun käytön integrointi muuhunopetukseen ja riittävän henkilökoh-taisen ohjauksen tarjoaminen senrinnalla.
• ViLLE tarjoaa opiskelijoille mah-dollisuuden opetella ja harjoitel-la itsenäisesti sellaisia perusasioita,joihin luennoilla ei aikarajoitustentakia voida keskittyä kaikkien opis-kelijoiden kannalta riittävällä laa-juudella.
• ViLLEn fokus on vahvasti ohjel-makoodin lukutaidon opettamises-sa. Lopezin ym. [6] mukaan opis-kelijoiden koodinlukutaito korreloisuoraan ohjelmakoodin kirjoitustai-don kanssa.
• Opettajan kannalta järjestelmän tär-keimpänä ominaisuutena voidaanpitää sen joustavuutta, erityisestikäytettävän ohjelmointikielen va-linnan suhteen.
Kaiken kaikkiaan kokemukset järjestel-mästä vaikuttavat tähän mennessä posi-tiiviselta: sekä oppimistulokset että opis-kelijoiden mielipiteet vahvistavat käsitys-tä siitä, että ViLLE on aidosti hyödylli-nen apuväline opetettaessa ohjelmoinninperusteita aloittelijoille. Kun aloittavienopiskelijoiden ohjelmointitaidot vaikutta-vat vuosi vuodelta huonommilta, on sel-vää, että järjestelmälle löytyy käyttöä tu-levaisuudessakin.
Viitteet
[1] Ala-Mutka, K. 2005. Ohjelmoinninopetuksen ongelmia ja ratkaisuja.Tekniikan opetuksen symposium 20.-21.10.2005. Helsinki University ofTechnology. http://www.dipoli.tkk.fi/ok/p/reflektori/verkkojulkaisu/in-dex.php?p=verkkojulkaisu.
[2] Hundhausen, C.D., Douglas, S.A. &Stasko, J.D. 2002. A Meta-study ofAlgorithm Visualization Effectiveness.Journal of Visual Languages and Com-puting, 13, 259–290.
[3] Kaila, E., Rajala, T., Laakso, M.-J. &Salakoski, T. 2009. Effects, Experiencesand Feedback from Studies of a Pro-gram Visualization Tool. Informatics inEducation, 8, 1, 17–34.
[4] Laakso, M.-J., Myller, N. & Korhonen,A. 2008a. Comparing learning perfor-mance of students using algorithm vi-sualizations collaboratively on differentengagement levels. Ilmestyy teoksessaJournal of Educational Technology andSociety.
[5] Laakso, M.-J., Rajala, T., Kaila, E. & Sa-lakoski, T. 2008b. The Impact Of PriorExperience In Using A VisualizationTool On Learning To Program. Teokses-sa Proceedings of CELDA 2008, Frei-burg, Germany.
36 Tuloksia ohjelmasuorituksen visualisoinnista
[6] Lopez, M., Whalley, J., Robbins, P. &Lister, R. 2008. Relationships betweenreading, tracing and writing skills inintroductory programming. TeoksessaProceeding of the fourth internationalworkshop on Computing education re-search, September 06-07, 2008, Sydney,Australia, 101–112.
[7] Malmi, L., Karavirta, V., Korhonen, A.,Nikander, J., Seppälä, O. & Silvasti,P. 2004. Visual Algorithm SimulationExercise System with Automatic Assess-ment: TRAKLA2. Informatics in Educa-tion, 3, 2, 267–288.
[8] McCracken, M., Almstrum, V., Diaz,D., Guzdial, M., Hagan, D., Kolikant,Y., Laxer, C., Thomas, L., Utting, I.& Wilusz, T. 2001. A Multi-National,Multi-Institutional Study of Assessmentof Programming Skills of First-year CSStudents. ACM SIGCSE Bulletin, 33, 4,125–140.
[9] Naps, T. L., Rößling, G., Almstrum, V.,Dann, W., Fleischer, R., Hundhausen,C., Korhonen, A., Malmi, L., Mcnal-ly, M., Rodger, S. & Velázquez-Iturbide,J. Á. 2002. Exploring the Role of Vi-sualization and Engagement in Compu-ter Science Education. Teoksessa Wor-king Group Reports from ITiCSE on In-novation and Technology in ComputerScience Education, 35, 2, 131–152.
[10] Rajala, T., Laakso, M.-J., Kaila, E. & Sa-lakoski, T. 2008. Effectiveness of Pro-gram Visualization: A Case Study withthe ViLLE Tool. Journal of Informa-tion Technology Education: Innovationsin Practice, 7, 15–32.
[11] Wiggins, M. 1998. An overview ofprogram visualization tools and sys-tems. Teoksessa Proceedings of the 36thannual Southeast regional conference,194–200.