Ei! Ei siitä napista! – Lyhyt ohje Oppi­koppi-oppi­mi­sa­na­ly­tiik­ka­jär­jes­tel­män PowerBI-työkirjapohjaan

Tämä artik­keli on osa Kare­liassa kehi­te­tyn avoimen lähde­koo­din Oppi­koppi-järjes­tel­män doku­men­taa­tiota. Artik­ke­lissa kuva­taan, kuin järjes­tel­män noutama oppi­mi­sa­na­ly­tiik­ka­data yhdis­te­tään PowerBI-työkir­jaan, ja miten sen avulla luodaan perus­nä­kymä kurssin tapah­tu­miin erilais­ten graa­fis­ten element­tien avulla. Tavoit­teena on selven­tää PowerBI-työkir­jan raken­netta kolman­nen osapuo­len mahdol­li­sesti tekemää jatko­ke­hi­tystä varten. Pyrin käyt­tä­mään PowerBI:hin liit­ty­vissä asioissa vastaa­via käsit­teitä, kuin mitä Micro­sof­tin doku­men­taa­tiossa käytetään.

Mitä PowerBI-kyse­ly­pa­ra­met­reja on käytössä?

PowerBI-kyse­ly­pa­ra­met­rilla tarkoi­te­taan käyt­tä­jän määrit­te­le­mää muut­tu­jaa, jonka avulla voidaan muokata esimer­kiksi noudet­ta­van tieto­läh­teen asetuk­sia. Tässä tapauk­sessa sitä hyödyn­ne­tään verk­ko­pal­ve­li­mella olevan data­läh­teen vaih­ta­mi­seen. Para­met­reja on mahdol­lista muokata avaa­malla PowerBI:n para­met­rien hallin­taik­ku­nan, josta vali­taan edel­leen para­met­rien muok­kausik­kuna (kuva 1). Muok­kausik­ku­nasta on havait­ta­vissa kaksi työkir­jaan määri­tel­tyä para­met­ria, cour­seid ja server.  Molem­mat ovat teks­ti­tyyp­pi­siä, ja oletusar­vona (Current Value) niillä on merk­ki­jono “XXXX”.

Kuvakaappaus käyttöliittymästä. Otsikko Manage Parameters, täytettävinä kenttinä Name, Description, Type, Suggested Values, Current Value
Kuva 1. Para­met­rien muokkausikkuna.

Para­met­reja käyte­tään määrit­tä­mään URL-osoit­teet, joista tauluk­ko­jen tiedot noude­taan. Para­met­rien arvot on asetet­ta­vissa PowerBI:n pääik­ku­nasta. Ensim­mäi­seksi vali­taan para­met­rien editoin­ti­toi­minto työka­lu­pal­kista (kuva 2), jonka jälkeen syöte­tään kulle­kin para­met­rille halutut arvot (kuva 3).

Kuvakaappaus käyttöliittymästä jossa valitaan valikosta kohta Edit parameters
Kuva 2. Kyse­ly­pa­ra­met­rien muok­kausik­ku­nan avaaminen.

Kuvakaappaus käyttöliittymästä. Otsikko Edit parameters ja laatikot courseid ja server
Kuva 3. Kyse­ly­pa­ra­met­rien muokkaus.

Kuvassa 4 on määri­tetty para­met­rien avulla URL-osoite aktii­vi­suus­da­tan hake­mi­selle.  Mikäli server-para­met­riksi määri­tel­lään “https://oppikoppi”, ja cour­seid-para­met­rin arvoksi “1234”, URL preview-kentässä näkyvän väliai­kai­sen esityksen

{server}/powerbi/{courseid}_activity.json

perus­teella muodos­tuu lopul­li­nen osoite:

https://oppikoppi/powerbi/1234_activity.json

Kyse­ly­pa­ra­met­rien avulla samaa PowerBI-pohjaa on mahdol­lista käyttää useam­man palve­li­men ja data­läh­teen kanssa, olet­taen että data on jokai­sella palve­li­mella saata­villa saman­lai­sella hake­mis­to­ra­ken­teella sekä nimeämiskäytännöllä.

Kuvakaappaus käyttöliittymästä. Otsikko: JSON ja valintalaatikot
Kuva 4. Data­läh­teen URL-osoit­teen määrit­tä­mi­nen kyse­ly­pa­ra­met­reja hyödyntäen.

Mistä PowerBI-työkir­jan data koostuu?

PowerBI-työkir­jassa on useam­pia taulu­koita, kuten kuvasta 5 on havait­ta­vissa. Taulu­kot sisäl­tä­vät dataa pääosin eri lähteistä. Mukana on myös muuta­mia yhdis­te­tau­lu­koita, jotka muodos­te­taan useam­man data­läh­teen avulla.

Valintalista
Kuva 5. PowerBI-työkir­jan taulukot. 

Acti­vity-tauluk­ko­si­säl­tää kaikki Moodle-työti­lan tapah­tu­mat. Se sisäl­tää päiväyk­sen aika­lei­mana, tapah­tu­man tekijän sähkö­pos­tin, nimen, xapi-verbi­tun­nis­teen, akti­vi­tee­tin selko­kie­li­sen nimen, akti­vi­tee­tin URL-osoit­teen, sekä tapah­tu­mien lukumäärän.

All Event Dates on niin sanottu kalen­te­ri­tau­lukko, joka muodos­te­taan dynaa­mi­sesti aktii­vi­suu­den aika­lei­mo­jen minimi- ja maksi­miar­vo­jen avulla. Tähän tauluk­koon muodos­te­taan myös eril­li­set sarak­keet viikon­päi­vän nimelle, viikon­päi­vän nume­rolle (Maanan­tai = 1, Sunnun­tai = 7), sekä nume­roi­dulle viikon­päi­vän nimelle.

All Groups sisäl­tää kaikki yksi­löl­li­set ryhmät, ja se muodos­te­taan opis­ke­li­joi­den ryhmä­tie­to­jen perusteella.

All Scores on puoles­taan yhdis­tel­mä­tau­lukko kaik­kien tehtä­vien pisteille per opis­ke­lija. Tähän yhdis­te­tään tieto tehtä­vistä ja arvo­sa­na­his­to­ria­tie­dosta, ja merki­tään palaut­ta­mat­to­mat tehtä­vät arvo­sa­nalla –1. Tauluk­koon laske­taan myös Tehtävä ja osio-sarake, jolla pyri­tään erot­te­le­maan mahdol­li­sesti saman­ni­mi­set tehtä­vät eri osioista.

All Verbs sisäl­tää kaikki akti­vii­suus­da­tassa olevat verbien XAPI-tunnis­teet, sekä niiden selko­kie­li­set nimet.

Final Scores, Hours and Acti­vity –taulukko puoles­taan on yhdis­telmä opis­ke­li­jan tehtä­vistä saamista yhteis­pis­teistä, aktii­vi­suus­mer­kin­tö­jen luku­mää­rästä, sekä arvioi­dusta kokonaisopiskeluajasta.

Kaikki tehtä­vät -taulukko on nimetty muista poike­ten suomeksi ilman mitään järke­vää syytä. Se sisäl­tää selko­kie­li­sen tehtä­vän nimen, tehtä­vän URL-osoit­teen Moodle-työti­lassa, ja palau­tus­het­ken taka­ra­jan aika­lei­man minuu­tin tark­kuu­della. Mukana on laskettu sarake osio, johon voisi raken­taa logii­kan osion päät­te­le­mi­seksi esimer­kiksi tehtä­vän nimen perusteella.

Scores-taulukko sisäl­tää arvo­sa­na­his­to­ria­tie­don, jossa on aika­leima minuu­tin tark­kuu­della, opis­ke­li­jan nimi, sähkö­posti, tehtä­vän nimi, kurssin nimi, sekä tehtä­vän URL-osoite moodlessa.

Sessions-tauluk­koon on tallen­nettu työs­ken­te­ly­ses­sio­tie­dot. Ne sisäl­tä­vät Opis­ke­li­jan nimen, kurssin nimen, sähkö­pos­tio­soit­teen, akti­vi­tee­tin selko­kie­li­sen nimen, akti­vi­tee­tin URL-osoit­teen mood­lessa, akti­vi­tee­tin tarkas­te­luses­sion aloi­tuk­sen ajan­het­ken, ja lope­tusa­jan­het­ken. Tarkas­te­luses­sio arvioi­daan aina heuris­ti­sesti neljän 15 minuu­tin jaksoissa kunkin tunnin aikana. Mikäli akti­vi­tee­tiin liittyy jokin tapah­tuma tietyn viiden­toista minuu­tin jakson aikana, se tulki­taan tarkas­te­luksi. Perät­täi­set 15 minuu­tin jaksot muodos­ta­vat session. Teks­ti­muo­toi­sille alku- ja lope­tus­het­kille luodaan aika­leima-tyyp­pi­set vasti­neet, sekä laske­taan opis­ke­luaika tunneissa. Osio­tieto-sarak­keessa on esimerkki osion nimestä tunnis­ta­vasta logii­kasta, jossa “osio X” tai “osion X” -merk­ki­jo­noja havai­tes­saan järjes­telmä parsii numee­ri­sen arvon X.  Päivä­mää­rälle on myös oma päiväys­tyyp­pi­nen sarak­keensa, joka laske­taan session aloi­tus­het­kestä, vaikka se meni­si­kin vuoro­kau­den rajan yli.

Sessions Summary –tauluk­koon laske­taan osio­koh­tai­sesti ajan­käyttö koko­nai­suu­tena, ja se koostuu opis­ke­li­jan nimestä, osio­tie­dosta, sekä käyte­tyistä tunneista.

StudentGroups-tauluk­koon on tallen­nettu mihin Mood­lessa määri­tel­tyi­hin ryhmiin kukin opis­ke­lija kuuluu. Opis­ke­li­jan sähkö­posti, selko­kie­li­nen nimi, sekä ryhmän selko­kie­li­nen nimi. Mikäli ryhmiä ei ole määri­telty, oletus­ryh­mänä on kuiten­kin kurssin nimi, johon kaikki opis­ke­li­jat kuuluvat.

Students-taulu­kos­saon Moodle-työti­laan rekis­te­röi­ty­nei­den opis­ke­li­joi­den nimi ja sähköpostiosoite.

Submis­sion-by-date-tauluk­ko­si­säl­tää aika­lei­man sekun­nin tark­kuu­della, opis­ke­li­jan nimen ja sähkö­pos­tio­soit­teen, palau­tet­ta­van akti­vi­tee­tin selko­kie­li­sen nimen ja URL-osoit­teen mood­lessa, sekä tapah­tu­mien luku­mää­rän aika­lei­man ajanhetkellä.

TaskAc­ti­vity-taulukko on kopio Activity-taulukosta.

Millai­sia mittoja on käytössä?

PowerBI-työkir­jaan on luotu viisi mittaa, joita hyödyn­ne­tään visua­li­soin­neissa. Micro­sof­tin mukaan mitoilla tarkoi­te­taan raport­tien käsit­te­lyn aikana lasket­ta­via lasku­toi­mi­tuk­sia. Niihin muodos­tuu auto­maat­ti­sesti esimer­kiksi käyt­töyh­tey­den perus­teella rivi­koh­tai­sia konteks­teja, jotka rajaa­vat mitto­jen käsit­te­le­mää tietojoukkoa.

Tarkas­te­lu­jen LKM, joka laskee aktii­vi­suus­tau­lu­kon kaikki rivit, joissa on katse­lua ilmai­seva verbi (viewed).

Opis­ke­li­joi­den LKM laskee montako opis­ke­li­jaa koko­nai­suu­tena on.

Aktii­vi­suus tapah­tu­mina laskee aktii­vi­suus­tau­lu­kon tapah­tu­mien luku­mää­rän summan.

Aktii­vi­suus tunneissa laskee opis­ke­lua­jan summan työskentelysessiotaulukosta.

Tehtä­vän tilanne, jolla saadaan selville numee­ri­sesti koodat­tuna onko tehtävä arvioitu (2), palau­tettu (1), palaut­ta­matta mutta palau­tusai­kaa jäljellä (0) sekä palaut­ta­matta ja palau­tusai­kaa ei jäljellä (-1).

Miten taulu­koi­den väliset suhteet on määritelty?

Tauluk­ko­jen tieto­jen väliset suhteet on määri­tetty PowerBI:n malli­nä­ky­mässä (kuva 6). Ylim­mälle riville on koottu kaikki perus­tie­dot sisäl­tä­vät taulut. Esimer­kiksi Students-taulu sisäl­tää jokai­sen opis­ke­li­jan tiedot vain kerran. Alem­malle riville on koos­tettu puoles­taan taulu­kot, joissa esimer­kiksi opis­ke­li­jan tiedot liit­ty­vät useam­paan riviin. Ylemmän ja alemman rivin taulu­jen välille on määri­telty yhden suhde moneen -riip­pu­vuus­suh­teet (eli kardi­na­li­tee­tit) eri sarak­kei­den välille.

Esimer­kiksi Final Scores, Hours and Acti­vity –taulu­kon sarak­keesta Students_Email on riip­pu­vuus Students-taulu­kon sarak­kee­seen Email. Vastaa­vasti TaskAc­ti­vity-taulu­kosta on riip­pu­vuuk­sia useam­man toisen taulu­kon sarak­kei­siin. _Measures-taulu­kosta ei ole riip­pu­vuuk­sia minne­kään, sillä sitä käyte­tään ainoas­taan mitto­jen tallennukseen.

Kuvakaappaus käyttöliittymästä
Kuva 6. Oppi­koppi-järjes­tel­män Power BI-työkir­jan malli­nä­ky­män tauluk­ko­jen väliset suhteet.

Erityi­sen tärkeä riip­pu­vuus­suhde muodos­tuu Students-taulu­kon tiedoista muihin taulu­koi­hin. Tätä suhdetta käyte­tään rivi­koh­tai­sen suojauk­sen raken­ta­mi­seen PowerBI:ssä. Rivi­koh­tai­nen suojaus mahdol­lis­taa sen, että visua­li­soin­tia palve­li­men kautta käyt­tävä käyt­täjä näkee ainoas­taan omat tietonsa, kun käyt­tä­jä­ryh­mät on asetettu oikein. Rivi­koh­tai­nen suojaus toteu­te­taan roolien­hal­lin­taik­ku­nan kautta (kuva 7). 

Kuvakaappaus käyttöliittymästä. Ympyröity valinta Manage Roles
Kuva 7. PowerBI Desk­to­pin työka­lu­ka­lu­pal­kin roolienhallintapainike. 

Kuvasta 8 on havait­ta­vissa PowerBI-työkir­jaan raken­nettu suoda­tus­me­ka­nismi. Työkir­jaan on määri­telty kuvan 8 vasem­massa laidassa kaksi roolia, Students ja Teac­hers.  Teac­hers-rooliin asete­tuilla käyt­tä­jillä ei ole asetet­tuja suodat­ti­mia. Students-taulu­kon Email-kent­tään on sen sijaan asetettu suoda­tin, joka vertaa PowerBI Report Serve­rin auten­ti­koi­man käyt­tä­jän Active Direc­tory-tietu­een userprinci­pal­name –tunnis­tetta Students-taulu­kon sähkö­pos­tio­soit­tee­seen. Students-taulu­kon sähkö­pos­tio­soi­te­da­tassa on etuliit­teenä aina “mailto:”-merkkijono, joten se on huomioitu myös suodat­ti­messa.  Käytän­nössä tämä tarkoit­taa sitä, että Power BI Report Serve­rillä Students-rooliin määri­tel­lyt käyt­tä­jät näkevät ainoas­taan oman datansa rivi­koh­tai­sen suojauk­sen ansiosta.

Kuvakaappaus käyttöliittymästä. Manage Roles, valitaan rooli (Roles) ja Tables
Kuva 8. Typis­tetty PowerBI Desk­to­pin roolien­hal­lin­taik­ku­nan näkymä. 

Millai­sia valmiita visua­li­soin­teja työkir­jassa on?

Aiemmin esitel­lyistä tiedoista ja lasken­ta­kaa­voista muodos­te­taan neljä väli­leh­teä. Kahdessa ensim­mäi­sessä esite­tään kurs­siak­tii­vi­suus tapah­tu­mien luku­mää­rien sekä koko­nais­opis­ke­luaika-arvion avulla. Kurs­siak­tii­vi­suus visua­li­soi­daan koko­nai­suu­tena päivit­täin, viikon­päi­vit­täin, kuukausit­tain, sekä opis­ke­li­joit­tain. Aktii­vi­suu­den suhde myös visua­li­soi­daan regres­sio­kaa­vion avulla, jossa opis­ke­li­joi­den koko­nais­pis­teet suhteu­te­taan aktii­vi­suu­den määrään. Tässä hyödyn­ne­tään Final Scores, Hours and Acti­vity-taulu­kon tietoja. Näky­mästä on mahdol­lista nähdä opis­ke­li­joi­den luku­määrä koko­nai­suu­tena, sekä ryhmit­täin, kuten kuvasta 9 näkyy.

Kuvaajia joissa esitetty mm. Aktiivisuus kurssin aikana, aktiivisuus viikonpäivittäin ja kuukausittain
Kuva 9. Aktii­vi­suus akti­vi­teet­tien lataus­ker­to­jen perus­teella esitettynä. 

Visua­li­soin­nin kolmas väli­lehti (kuva 10) puoles­taan pyrkii esit­tä­mään, kuka on katso­nut mitäkin tietyllä aika­vä­lillä, ja minä päivinä. Oletuk­sena aika­väli on kaksi viikko taak­se­päin nyky­het­kestä, mutta sitä on mahdol­lista muuttaa halu­tes­saan varsin vapaasti yksit­täi­sistä päivistä aina vuosiin saakka.  Väli­leh­dellä on vasem­massa reunassa tehtä­vä­lista, sekä tarkas­te­lu­jen luku­määrä. Oikeassa reunassa on erotel­tuna aina valit­tua tehtä­vää tai tehtä­viä katso­neet ja katso­matta jättä­neet opis­ke­li­jat listoina.

Kuvaajia otsikolla Kuka on katsonut mitäkin
Kuva 10. Akti­vi­teet­tien seuraa­mista esit­tävä visualisointi. 

Neljän­nellä väli­leh­dellä (kuva 11) on esitetty tehtä­vien palau­tuk­sen tilanne. Tässä hyödyn­ne­tään Palau­tus­ten tilanne -mitta­ria, jonka palaut­tama arvo esite­tään matrii­sissa erilai­silla symbo­leilla. Vihreä oikein-merkki ilman taustaa ilmai­see, että tehtävä on palau­tettu. Ruksi punai­sella taus­talla ilmai­see, että tehtä­vän palau­tus on myöhässä. Oikein-merkki vihreällä taus­talla ilmai­see, että tehtävä on arvioitu.

Kuvaaja jossa näkyy opiskelijakohtaisesti tehtävät ja niiden palautuksen tilanne palautettu (vihreä) tai palauttamatta (punainen)
Kuva 11. Tehtä­vä­pa­lau­tus­ten tilanne visua­li­soin­tuna tietyltä ajanhetkeltä. 

Kehi­ty­si­deoita

Työkir­jan tavoit­teena on tuottaa nopeasti ainoas­taan perus­vi­sua­li­soin­nit oppi­mi­sa­na­ly­tii­kan osalta, eikä se pyri olemaan kaiken kattava ratkaisu jokai­seen tilan­tee­seen. Sen sijaan sitä on tarkoi­tus muokata Power BI Desktop –sovel­luk­sella, että se tuottaa tarvit­ta­vaa oppi­mi­sa­na­ly­tiik­kaa halu­tussa muodossa.

PowerBI-työkir­jaa toki voisi vielä paran­taa. Esimer­kiksi taulu­koi­den ja sarak­kei­den nimeä­mi­nen on paikoin epäjoh­don­mu­kaista. Osa niistä on englan­niksi ja osan suomeksi. Kaik­kien sarak­kei­den nimet eivät ole vält­tä­mättä täysin tilan­netta kuvaa­via, kuten esimer­kiksi Acti­vity-taulu­kon Tehtava, joka pitää sisäl­lään myös muita akti­vi­teet­teja tehtä­vien lisäksi. Kaikki mitat olisi myös siir­ret­tävä _Measures –tauluk­koon.


Kirjoit­taja:

Anssi Gröhn, tieto­jen­kä­sit­te­lyn lehtori, Karelia-ammattikorkeakoulu

Artik­keli on kirjoi­tettu Tiedolla johta­mi­sen osaa­ja­kou­lu­tuk­sella tuot­ta­vuutta työelä­mään – TIEJOT -hank­keessa. Hank­keen rahoit­taja on JOTPA Jatku­van oppi­mi­sen ja työl­li­syy­den palvelukeskus.

TIEJOT-hankkeen kumppaneiden ja rahoittajien logot: Karelia, Lapin amk, XAMK, Jotpa, EU

Artik­ke­li­kuva: jannoon028 on Freepik