Ei! Ei siitä napista! – Lyhyt ohje Oppikoppi-oppimisanalytiikkajärjestelmän PowerBI-työkirjapohjaan

Tämä artikkeli on osa Kareliassa kehitetyn avoimen lähdekoodin Oppikoppi-järjestelmän dokumentaatiota. Artikkelissa kuvataan, kuin järjestelmän noutama oppimisanalytiikkadata yhdistetään PowerBI-työkirjaan, ja miten sen avulla luodaan perusnäkymä kurssin tapahtumiin erilaisten graafisten elementtien avulla. Tavoitteena on selventää PowerBI-työkirjan rakennetta kolmannen osapuolen mahdollisesti tekemää jatkokehitystä varten. Pyrin käyttämään PowerBI:hin liittyvissä asioissa vastaavia käsitteitä, kuin mitä Microsoftin dokumentaatiossa käytetään.

Mitä PowerBI-kyselyparametreja on käytössä?

PowerBI-kyselyparametrilla tarkoitetaan käyttäjän määrittelemää muuttujaa, jonka avulla voidaan muokata esimerkiksi noudettavan tietolähteen asetuksia. Tässä tapauksessa sitä hyödynnetään verkkopalvelimella olevan datalähteen vaihtamiseen. Parametreja on mahdollista muokata avaamalla PowerBI:n parametrien hallintaikkunan, josta valitaan edelleen parametrien muokkausikkuna (kuva 1). Muokkausikkunasta on havaittavissa kaksi työkirjaan määriteltyä parametria, courseid ja server.  Molemmat ovat tekstityyppisiä, ja oletusarvona (Current Value) niillä on merkkijono “XXXX”.

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

Parametreja käytetään määrittämään URL-osoitteet, joista taulukkojen tiedot noudetaan. Parametrien arvot on asetettavissa PowerBI:n pääikkunasta. Ensimmäiseksi valitaan parametrien editointitoiminto työkalupalkista (kuva 2), jonka jälkeen syötetään kullekin parametrille halutut arvot (kuva 3).

Kuvakaappaus käyttöliittymästä jossa valitaan valikosta kohta Edit parameters
Kuva 2. Kyselyparametrien muokkausikkunan avaaminen.

Kuvakaappaus käyttöliittymästä. Otsikko Edit parameters ja laatikot courseid ja server
Kuva 3. Kyselyparametrien muokkaus.

Kuvassa 4 on määritetty parametrien avulla URL-osoite aktiivisuusdatan hakemiselle.  Mikäli server-parametriksi määritellään “https://oppikoppi”, ja courseid-parametrin arvoksi “1234”, URL preview-kentässä näkyvän väliaikaisen esityksen

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

perusteella muodostuu lopullinen osoite:

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

Kyselyparametrien avulla samaa PowerBI-pohjaa on mahdollista käyttää useamman palvelimen ja datalähteen kanssa, olettaen että data on jokaisella palvelimella saatavilla samanlaisella hakemistorakenteella sekä nimeämiskäytännöllä.

Kuvakaappaus käyttöliittymästä. Otsikko: JSON ja valintalaatikot
Kuva 4. Datalähteen URL-osoitteen määrittäminen kyselyparametreja hyödyntäen.

Mistä PowerBI-työkirjan data koostuu?

PowerBI-työkirjassa on useampia taulukoita, kuten kuvasta 5 on havaittavissa. Taulukot sisältävät dataa pääosin eri lähteistä. Mukana on myös muutamia yhdistetaulukoita, jotka muodostetaan useamman datalähteen avulla.

Valintalista
Kuva 5. PowerBI-työkirjan taulukot.

Activity-taulukkosisältää kaikki Moodle-työtilan tapahtumat. Se sisältää päiväyksen aikaleimana, tapahtuman tekijän sähköpostin, nimen, xapi-verbitunnisteen, aktiviteetin selkokielisen nimen, aktiviteetin URL-osoitteen, sekä tapahtumien lukumäärän.

All Event Dates on niin sanottu kalenteritaulukko, joka muodostetaan dynaamisesti aktiivisuuden aikaleimojen minimi- ja maksimiarvojen avulla. Tähän taulukkoon muodostetaan myös erilliset sarakkeet viikonpäivän nimelle, viikonpäivän numerolle (Maanantai = 1, Sunnuntai = 7), sekä numeroidulle viikonpäivän nimelle.

All Groups sisältää kaikki yksilölliset ryhmät, ja se muodostetaan opiskelijoiden ryhmätietojen perusteella.

All Scores on puolestaan yhdistelmätaulukko kaikkien tehtävien pisteille per opiskelija. Tähän yhdistetään tieto tehtävistä ja arvosanahistoriatiedosta, ja merkitään palauttamattomat tehtävät arvosanalla –1. Taulukkoon lasketaan myös Tehtävä ja osio-sarake, jolla pyritään erottelemaan mahdollisesti samannimiset tehtävät eri osioista.

All Verbs sisältää kaikki aktiviisuusdatassa olevat verbien XAPI-tunnisteet, sekä niiden selkokieliset nimet.

Final Scores, Hours and Activity –taulukko puolestaan on yhdistelmä opiskelijan tehtävistä saamista yhteispisteistä, aktiivisuusmerkintöjen lukumäärästä, sekä arvioidusta kokonaisopiskeluajasta.

Kaikki tehtävät -taulukko on nimetty muista poiketen suomeksi ilman mitään järkevää syytä. Se sisältää selkokielisen tehtävän nimen, tehtävän URL-osoitteen Moodle-työtilassa, ja palautushetken takarajan aikaleiman minuutin tarkkuudella. Mukana on laskettu sarake osio, johon voisi rakentaa logiikan osion päättelemiseksi esimerkiksi tehtävän nimen perusteella.

Scores-taulukko sisältää arvosanahistoriatiedon, jossa on aikaleima minuutin tarkkuudella, opiskelijan nimi, sähköposti, tehtävän nimi, kurssin nimi, sekä tehtävän URL-osoite moodlessa.

Sessions-taulukkoon on tallennettu työskentelysessiotiedot. Ne sisältävät Opiskelijan nimen, kurssin nimen, sähköpostiosoitteen, aktiviteetin selkokielisen nimen, aktiviteetin URL-osoitteen moodlessa, aktiviteetin tarkastelusession aloituksen ajanhetken, ja lopetusajanhetken. Tarkastelusessio arvioidaan aina heuristisesti neljän 15 minuutin jaksoissa kunkin tunnin aikana. Mikäli aktiviteetiin liittyy jokin tapahtuma tietyn viidentoista minuutin jakson aikana, se tulkitaan tarkasteluksi. Perättäiset 15 minuutin jaksot muodostavat session. Tekstimuotoisille alku- ja lopetushetkille luodaan aikaleima-tyyppiset vastineet, sekä lasketaan opiskeluaika tunneissa. Osiotieto-sarakkeessa on esimerkki osion nimestä tunnistavasta logiikasta, jossa “osio X” tai “osion X” -merkkijonoja havaitessaan järjestelmä parsii numeerisen arvon X.  Päivämäärälle on myös oma päiväystyyppinen sarakkeensa, joka lasketaan session aloitushetkestä, vaikka se menisikin vuorokauden rajan yli.

Sessions Summary –taulukkoon lasketaan osiokohtaisesti ajankäyttö kokonaisuutena, ja se koostuu opiskelijan nimestä, osiotiedosta, sekä käytetyistä tunneista.

StudentGroups-taulukkoon on tallennettu mihin Moodlessa määriteltyihin ryhmiin kukin opiskelija kuuluu. Opiskelijan sähköposti, selkokielinen nimi, sekä ryhmän selkokielinen nimi. Mikäli ryhmiä ei ole määritelty, oletusryhmänä on kuitenkin kurssin nimi, johon kaikki opiskelijat kuuluvat.

Students-taulukossaon Moodle-työtilaan rekisteröityneiden opiskelijoiden nimi ja sähköpostiosoite.

Submission-by-date-taulukkosisältää aikaleiman sekunnin tarkkuudella, opiskelijan nimen ja sähköpostiosoitteen, palautettavan aktiviteetin selkokielisen nimen ja URL-osoitteen moodlessa, sekä tapahtumien lukumäärän aikaleiman ajanhetkellä.

TaskActivity-taulukko on kopio Activity-taulukosta.

Millaisia mittoja on käytössä?

PowerBI-työkirjaan on luotu viisi mittaa, joita hyödynnetään visualisoinneissa. Microsoftin mukaan mitoilla tarkoitetaan raporttien käsittelyn aikana laskettavia laskutoimituksia. Niihin muodostuu automaattisesti esimerkiksi käyttöyhteyden perusteella rivikohtaisia konteksteja, jotka rajaavat mittojen käsittelemää tietojoukkoa.

Tarkastelujen LKM, joka laskee aktiivisuustaulukon kaikki rivit, joissa on katselua ilmaiseva verbi (viewed).

Opiskelijoiden LKM laskee montako opiskelijaa kokonaisuutena on.

Aktiivisuus tapahtumina laskee aktiivisuustaulukon tapahtumien lukumäärän summan.

Aktiivisuus tunneissa laskee opiskeluajan summan työskentelysessiotaulukosta.

Tehtävän tilanne, jolla saadaan selville numeerisesti koodattuna onko tehtävä arvioitu (2), palautettu (1), palauttamatta mutta palautusaikaa jäljellä (0) sekä palauttamatta ja palautusaikaa ei jäljellä (-1).

Miten taulukoiden väliset suhteet on määritelty?

Taulukkojen tietojen väliset suhteet on määritetty PowerBI:n mallinäkymässä (kuva 6). Ylimmälle riville on koottu kaikki perustiedot sisältävät taulut. Esimerkiksi Students-taulu sisältää jokaisen opiskelijan tiedot vain kerran. Alemmalle riville on koostettu puolestaan taulukot, joissa esimerkiksi opiskelijan tiedot liittyvät useampaan riviin. Ylemmän ja alemman rivin taulujen välille on määritelty yhden suhde moneen -riippuvuussuhteet (eli kardinaliteetit) eri sarakkeiden välille.

Esimerkiksi Final Scores, Hours and Activity –taulukon sarakkeesta Students_Email on riippuvuus Students-taulukon sarakkeeseen Email. Vastaavasti TaskActivity-taulukosta on riippuvuuksia useamman toisen taulukon sarakkeisiin. _Measures-taulukosta ei ole riippuvuuksia minnekään, sillä sitä käytetään ainoastaan mittojen tallennukseen.

Kuvakaappaus käyttöliittymästä
Kuva 6. Oppikoppi-järjestelmän Power BI-työkirjan mallinäkymän taulukkojen väliset suhteet.

Erityisen tärkeä riippuvuussuhde muodostuu Students-taulukon tiedoista muihin taulukoihin. Tätä suhdetta käytetään rivikohtaisen suojauksen rakentamiseen PowerBI:ssä. Rivikohtainen suojaus mahdollistaa sen, että visualisointia palvelimen kautta käyttävä käyttäjä näkee ainoastaan omat tietonsa, kun käyttäjäryhmät on asetettu oikein. Rivikohtainen suojaus toteutetaan roolienhallintaikkunan kautta (kuva 7).  

Kuvakaappaus käyttöliittymästä. Ympyröity valinta Manage Roles
Kuva 7. PowerBI Desktopin työkalukalupalkin roolienhallintapainike.

Kuvasta 8 on havaittavissa PowerBI-työkirjaan rakennettu suodatusmekanismi. Työkirjaan on määritelty kuvan 8 vasemmassa laidassa kaksi roolia, Students ja Teachers.  Teachers-rooliin asetetuilla käyttäjillä ei ole asetettuja suodattimia. Students-taulukon Email-kenttään on sen sijaan asetettu suodatin, joka vertaa PowerBI Report Serverin autentikoiman käyttäjän Active Directory-tietueen userprincipalname –tunnistetta Students-taulukon sähköpostiosoitteeseen. Students-taulukon sähköpostiosoitedatassa on etuliitteenä aina “mailto:”-merkkijono, joten se on huomioitu myös suodattimessa.  Käytännössä tämä tarkoittaa sitä, että Power BI Report Serverillä Students-rooliin määritellyt käyttäjät näkevät ainoastaan oman datansa rivikohtaisen suojauksen ansiosta.

Kuvakaappaus käyttöliittymästä. Manage Roles, valitaan rooli (Roles) ja Tables
Kuva 8. Typistetty PowerBI Desktopin roolienhallintaikkunan näkymä.

Millaisia valmiita visualisointeja työkirjassa on?

Aiemmin esitellyistä tiedoista ja laskentakaavoista muodostetaan neljä välilehteä. Kahdessa ensimmäisessä esitetään kurssiaktiivisuus tapahtumien lukumäärien sekä kokonaisopiskeluaika-arvion avulla. Kurssiaktiivisuus visualisoidaan kokonaisuutena päivittäin, viikonpäivittäin, kuukausittain, sekä opiskelijoittain. Aktiivisuuden suhde myös visualisoidaan regressiokaavion avulla, jossa opiskelijoiden kokonaispisteet suhteutetaan aktiivisuuden määrään. Tässä hyödynnetään Final Scores, Hours and Activity-taulukon tietoja. Näkymästä on mahdollista nähdä opiskelijoiden lukumäärä kokonaisuutena, sekä ryhmittäin, kuten kuvasta 9 näkyy.

Kuvaajia joissa esitetty mm. Aktiivisuus kurssin aikana, aktiivisuus viikonpäivittäin ja kuukausittain
Kuva 9. Aktiivisuus aktiviteettien latauskertojen perusteella esitettynä.

Visualisoinnin kolmas välilehti (kuva 10) puolestaan pyrkii esittämään, kuka on katsonut mitäkin tietyllä aikavälillä, ja minä päivinä. Oletuksena aikaväli on kaksi viikko taaksepäin nykyhetkestä, mutta sitä on mahdollista muuttaa halutessaan varsin vapaasti yksittäisistä päivistä aina vuosiin saakka.  Välilehdellä on vasemmassa reunassa tehtävälista, sekä tarkastelujen lukumäärä. Oikeassa reunassa on eroteltuna aina valittua tehtävää tai tehtäviä katsoneet ja katsomatta jättäneet opiskelijat listoina.

Kuvaajia otsikolla Kuka on katsonut mitäkin
Kuva 10. Aktiviteettien seuraamista esittävä visualisointi.

Neljännellä välilehdellä (kuva 11) on esitetty tehtävien palautuksen tilanne. Tässä hyödynnetään Palautusten tilanne -mittaria, jonka palauttama arvo esitetään matriisissa erilaisilla symboleilla. Vihreä oikein-merkki ilman taustaa ilmaisee, että tehtävä on palautettu. Ruksi punaisella taustalla ilmaisee, että tehtävän palautus on myöhässä. Oikein-merkki vihreällä taustalla ilmaisee, 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äpalautusten tilanne visualisointuna tietyltä ajanhetkeltä.

Kehitysideoita

Työkirjan tavoitteena on tuottaa nopeasti ainoastaan perusvisualisoinnit oppimisanalytiikan osalta, eikä se pyri olemaan kaiken kattava ratkaisu jokaiseen tilanteeseen. Sen sijaan sitä on tarkoitus muokata Power BI Desktop –sovelluksella, että se tuottaa tarvittavaa oppimisanalytiikkaa halutussa muodossa.

PowerBI-työkirjaa toki voisi vielä parantaa. Esimerkiksi taulukoiden ja sarakkeiden nimeäminen on paikoin epäjohdonmukaista. Osa niistä on englanniksi ja osan suomeksi. Kaikkien sarakkeiden nimet eivät ole välttämättä täysin tilannetta kuvaavia, kuten esimerkiksi Activity-taulukon Tehtava, joka pitää sisällään myös muita aktiviteetteja tehtävien lisäksi. Kaikki mitat olisi myös siirrettävä _Measures –taulukkoon.


Kirjoittaja:

Anssi Gröhn, tietojenkäsittelyn lehtori, Karelia-ammattikorkeakoulu

Artikkeli on kirjoitettu Tiedolla johtamisen osaajakoulutuksella tuottavuutta työelämään – TIEJOT -hankkeessa. Hankkeen rahoittaja on JOTPA Jatkuvan oppimisen ja työllisyyden palvelukeskus.

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

Artikkelikuva: jannoon028 on Freepik