Sinisävyinen tausta jonka päällä valkoisella asiakirjoja kuvaavia kuvakkeita ja teksti xAPI

Älykkään ohjauksen digitaalisilla jalanjäljillä, osa 4: Ohjaajamuistiosta XAPI-lauseiksi

Älykkään ohjauksen digitaalisilla jalanjäljillä -artikkelisarjan kolmannessa osassa on käyty läpi miten Azure DevOps-palvelun datan noutaminen on toteutettu. Tässä osassa keskitytään ohjaajamuistioiden sisältämän tiedon hakemiseen, parsimiseen ja muokkaamiseen XAPI-muotoon. Haasteena tässä on kirjattavan muistion formaalin muodon määrittely, ilman että rajoitetaan käyttäjien kirjaamisvapautta liikaa.

Muistion malli ja lukeminen koneellisesti

Parsimisen mahdollistamiseksi on ensiksi sovittava dokumentin muotoilusta, avainsanoista sekä esittämisjärjestyksestä. Nämä säännöt on esiteltävä myös käyttäjille, että niitä noudatetaan. Esimerkiksi otsikoissa täytyy käyttää tiettyä kirjoitusasua, ja niiden on esiinnyttävä aina samassa järjestyksessä, että ohjelman tilaa voidaan muuttaa eri dataa varten.

Dokumentit tallennetaan Microsoft Wordin tukemassa docx-muodossa, joka sisältää erinäisiä muotoiluja ja sisennyksiä. Muistioiden sisältämä data on kuitenkin osaltaan pelkkää tekstiä, joten parsimisen helpottamiseksi docx-tiedosto muunnetaan ensiksi pelkäksi tekstitiedostoksi Linux-palvelimella. Tässä auttaa tarkoitukseen suunniteltu Docx2txt-ohjelma, joka lukee sille välitetyn tiedoston ja tuottaa siitä version, joka on puhdasta tekstiä.

Parseri itsessään toteutetaan hyödyntämällä säännöllisiä lausekkeita. Niiden avulla voidaan erotella tekstissä esiintyviä osia helposti, kunhan tiedossa on vain missä muodossa asiat ilmaistaan. Ohjaajamuistio sisältää tiettyjä avainsanoja ja merkkejä, joiden perusteella toiminta on koodattu.

Ryhmän jäsenten osallistuminen ohjaustapaamiseen merkitään kuvassa 1 esitetyllä tavalla. Merkintä alkaa sanalla Viikko, jonka jälkeen tulee viikon varsinainen numero sekä mahdollisesti juokseva viikkonumero projektin alusta. Kaksoispisteen jälkeen tulee tapaamisen päivämäärä. Osallistujat on merkitty taulukkoon kukin omalle rivilleen. Mukana on osallistujien sähköpostit ja nimet, jolloin tunnisteena käytettävä sähköposti saadaan avaimeksi, ja opiskelijaan voidaan viitata luontevammin muistiossa pelkällä nimellä.

Taulukon loppuun merkitään ohjaajatapaamiseen osallistuminen (Paikalla-sarake) sekä kehitysblogimerkinnän päivitys (Dev blog -sarake) yhdellä seuravista merkeistä:

  • X = paikalla
  • – = poissa, mutta ei huolta
  • ? = poissa, ei tietoa, oltava huolissaan.
Kuvakaappaus kokousmuistiosta, jossa osallistujien nimet (sutattu). sähköposti (sutattu), rooli ja onko paikalla vai poissa
Kuva 1. Esimerkki osallistumismerkinnän kirjaamisesta.

Tilannekatsaukset

Tilannekatsauksessa puolestaan tallennetaan tietoa ryhmän jäsenten työskentelystä. Haettavan tiedon osalta tilannekatsauksessa käytetään pidempiä avainsanoja ja niiden yhdistelmiä. Kuvassa 2 olevassa esimerkissä on käytetty osaa seuraavista mahdollisista avainsanoista.

  • Ei tiedossa = opiskelija ei osaa käytännössä kertoa, mitä on tehnyt tarkasteluvälillä.
  • Mukana toiminnassa = opiskelija  osaa kertoilla yleisellä tasolla, mitä on muiden kanssa tehnyt mutta omien roolin mukaisten työtehtävien kuvailu puuttuu.
  • Projektitoimija = opiskelija  osaa kertoa yksilötasolla omista roolinsa mukaisista työtehtävistään.

Lisäksi kuvaukseen liitetään seuraavat avainsanat määreiksi, joilla voidaan täsmentää opisklelijan työskentelyn laatua:

  • Olematonta = ei osaa käytännössä kertoa, mitä on tehnyt tarkasteluvälillä.
  • Vähäistä = osoittaa tehneensä jossain määrin projektiin liittyviä asioita tarkasteluvälillä.
  • Aktiivista = osoittaa tehneensä runsaasti projektiin liittyviä asioita sekä omien työtehtävien että yhteistoimintaan osallistumisen osalta tarkasteluvälillä.
Esimerkki yksittäisten jäsenten tilannekatsauksesta jossa kuvattu tehtäviä ja miten aktiivisesti jäsen on mukana toimittamassa
Kuva 2. Esimerkki kirjatusta tilannekatsauksesta.

Toteutuksen huomioita

XAPI-muunnosohjelma rakennetaan tunnistamaan aiemmin mainitut avainsanat ja määreet. Muunnosohjelma tuottaa  suoraan visualisoinnissa hyödynnettävää dataa, jolloin XAPI-tapahtumia ei tallenneta oppimistapahtumien tietovarastoon, vaan niistä muodostetaan suoraan koostetiedosto visualisointia varten.

Avainsanojen lukeminen ja tulkinta ohjelmallisesti on sinällään helppoa, mutta avainsanojen mahdollinen muuttuminen jatkossa, sekä esimerkiksi UTF-8-koodatut skandinaaviset kirjaimet on huomioitava toteutuksen aikana C++-ohjelmointikieltä käytettäessä. Esimerkiksi ä vaatii kaksi tavua, kuin a vain yhden. Näitä silmällä pitäen käytettäville avainsanoille luotiin määritys erilliseen asetustiedostoon. Tällöin koodiin itseensä ei määritellä hakusanoja lainkaan, ja samalla vältetään tavurajat ylittävien merkkien tunnistamisongelmat sekä tarve erilliselle kirjastolle merkkijonojen käsittelyyn.

Erityistapauksena on huomioitava käyttäjätaulukkoon kirjatut sähköpostiosoitteet. Azure DevOpisissa esiintyvät käyttäjän sähköpostiosoite voi olla eri muodossa, sillä Azure DevOps käyttää niin sanottua Principal Username-kenttää Active Directoryn käyttäjätietueesta sähköpostina, kun taas muissa palveluissa on käytössä selkokielisempi versio. Tämän voidaan huomioida tekemällä muunnoksen yhteydessä LDAP-kysely, jonka tuottaman datan perusteella sähköpostiosoitteet on mahdollista yhtenäistää.

Pilotin aikana huomattiin, että ohjeistuksesta huolimatta käyttäjät voivat tehdä virheitä. Kuvassa 1 on punaisella korostettuna virhetilanne, joka oli syntynyt huolimattoman näppäilyn vuoksi. Parseri onkin pyrittävä ohjelmoimaan siten, että se toimii myös epäkelvollisilla syötteillä. Toteutettu muunnosprosessi on havainnollistettu vuokaaviona kuvassa 3.

Kuva 3. Ohjaajamuistioiden muunnosprosessi vuokaaviona.

Yhteenveto

Luonnollisella kielellä kirjoitetulle ohjaajamuistiolle on mahdollista luoda muotoilusäännöt, jolloin sille voidaan kehittää parsintaohjelma säännöllisiä lausekkeita hyödyntäen. Ohjelmassa kannattaa huomioida dokumentissa mahdollisesti ilmenevät inhimilliset kirjaamisvirheet ja tehdä muunnosohjelmasta vikasietoinen. Kun teksti on koneellisesti tulkittavissa, siitä voidaan muodostaa XAPI-lauseet. XAPI-muodossa olevan oppimisanalytiikkatiedon visualisointiratkaisua esitellään sarjan viimeisessä artikkelissa, jossa avataan pilotista saadut johtopäätökset, sekä pohditaan sitä, palveleeko suunniteltu visualisointi opettajaa halutulla tavalla.


Kirjoittaja:

Anssi Gröhn, tietojenkäsittelyn lehtori, Älykäs ohjaus -hanke, Karelia-ammattikorkeakoulu