Mitä Peppi tuo tullessaan?

Peppi – Winha – SoleOPS – muut

Winhan ja SoleOPSin jäädessä pois käytöstä korvaavaksi järjestelmäksi tulee Peppi. Järjestelmää kehittää Peppi-konsortio, joka on koulutusorganisaatioiden yhteenliittymä. Pepissä on tällä hetkellä mukana noin 80 prosenttia Suomen korkeakouluista. Ammattikorkeakoulujen FTE-opiskelijoista 94% ja yliopistojen FTE-opiskelijoista 80% on erilaisten Peppi-palveluiden piirissä. Tarkempaa tietoa konsortiosta löydettävissä konsortion sivuilta:
http://www.peppi-konsortio.fi/

Pepin työpöydät

 Pepin perusajatuksena on se, että käyttäjä saa erilaisten roolimäärityksien kautta käyttöönsä tarvittavat työpöydät. Näin ollen esim. lehtori / tuntiopettaja / yliopettaja nimikkeellä olevat henkilöt saavat kirjautumisen kautta automaattisesti käyttöönsä opettajan työpöydän. Samoin opiskelija saa käyttöönsä automaattisti opiskelijan työpöydän. Näiden nk. automaattisten roolien lisäksi on olemassa myös manuaalisesti tehtäviä rooleja, joilla annetaan oikeuksia tehdä tiettyjä yksilöidympiä toimenpiteitä Pepissä.

Pepin työpöydät ja palvelut

Pepin liitännäiset

Peppi itsessään on suljettu järjestelmä ja vaatii voimassa olevat käyttäjätunnukset. Jotta opetukseen liittyviä asioita saadaan näkyville myös ulospäin, tarvitaan liitännäisiä. Karelian osalta tällä hetkellä hankittuja liitännäisiä ovat:

Metropolia:                          Opinto-opas
https://opiskelija.testipeppi.karelia.csc.fi/opinto-opas/public/

Eduix:                                 Lukkarikone
https://opiskelija.testipeppi.karelia.csc.fi/lukkarikone/

Eduix:                                 Koulutushaku
https://opiskelija.testipeppi.karelia.csc.fi/koulutushaku/

Edellä olevista linkeistä avautuvat järjestelmät ovat vielä tällä hetkellä ulkoasultaan ja sisällöltään keskeneräisiä ja nämä asiat päivittyvät sitä mukaan, kun toimittajat saavat tehtyä päivityksiä.

Nykyisten käytössä olevien ”liitännäisten” säilyminen

Meerkado säilyy ainakin toistaiseksi käytössä.
SoleOPSiin kytketyn sähköisen asioinnin jatkuvuus on vielä keskustelujen alla ja lopullinen päätös asiassa tulee myöhemmin.
TimeEdit jää pois käytöstä 2019 vuoden lopulla ja sen sijalle tulee Pepin oma resurssisuunnittelu sekä edellä kuvattu Lukkarikone.

 Pepin koulutukset

 Jotta Pepin filosofia avautuisi riittävällä tarkkuudella, järjestetään eri käyttäjäryhmille koulutusta kevään ja syksyn 2019 aikana.

  • Koulutuspäälliköiden osalta koulutukset aloitettiin tammikuussa ja niitä jatketaan syksyllä 2019.
  • Opiskelijapalveluiden osalta koulutukset aloitettiin maaliskuussa ja ne jatkuvat osaltaan syksyyn 2019.
  • Opettajien osalta ensimmäiset koulutukset pidetään toukokuussa ja niitä jatketaan elokuussa.
  • Opiskelijaohjauksen osalta koulutukset alkavat kesäkuussa ja niitä jatketaan syksyllä 2019.
  • Muun henkilökunnan osalta koulutuksia toteutetaan tarpeen mukaan syksyllä 2019.
  • Opiskelijoiden osalta Peppiin tutustuminen aloitetaan syksyllä 2019, kun opiskelijat aloittavat uuden lukuvuoden.

Koulutuksien tarkemmat ajankohdat on löydettävistä Karelian intrasta:
https://intranet.karelia.fi/koulutus/OHOSprojektin%20aineisto/Materiaalia/Koulutukset.xlsx

Peppiin siirtyminen

Karelian osalta lopullinen siirtyminen Peppiin tapahtuu lokakuun lopulla ja marraskuun alussa 2019. Ensimmäisessä vaiheessa opetuksen suunnittelupuoli siirretään lopulliseen tuotantoympäristöön ja sen jälkeen tapahtuu opiskelijahallinnon siirtyminen.

Tuotantoon siirtyminen aiheuttaa katkon järjestelmien käytössä, mutta katson pituutta ei tässä vaiheessa pystytä vielä arvioimaan.

Peppiin siirtymisen yhteydessä huomioitavia seikkoja

Seuraavassa on lueteltu muutamia muutoksia, jotka tulee huomioida Peppiin siirtymisen yhteydessä:

  • Opintojen arvioinnit tulee huolehtia ajoillaan nykyiseen Winha -järjestelmään. Tämä tulee huomioida ennen kaikkea kesäopintojen osalta ja myös kesällä tehtävien harjoittelujen osalta.
  • Kevään 2020 opintojaksojen toteutuksille ilmoittautumiset joudutaan aikaistamaan nykyisestä lokakuusta niin, että ilmoittautumisaika on
    • 15.9. – 6.10.2019

Kirjoittaja:
Jukka Asp
OHOS-projekti, Peppi-pääkäyttäjä

SMErec: Virtuaalihologrammien tallentamisesta ja visualisoinnista

Aiemmissa blogimerkinnöissäni olen käsitellyt yleisesti syvyyskameroita, sekä niiden avulla rakennettavaa testiympäristöä virtuaalihologrammien tallennukseen. Sittemmin kiinnostusta hologrammiteknologian hyödyntämiseen on tullut esille myös opetusteknologian puolella (Hyttinen & Hatakka, 2019). Tässä blogimerkinnässäni käsittelen teknisestä näkökulmasta, miten virtuaalihologrammeja on mahdollista tallentaa ja esittää, kun käytettynä menetelmänä on jokaisen kameran erilliseen syvyystietoon perustuvien pistepilvien piirtäminen.  

Virtuaalihologrammeilla tarkoitetaan tässä yhteydessä kolmiulotteista, animoitua esitystä kohteesta, jota voi tarkastella monesta eri suunnasta. Virtuaalihologrammi tehdään tallentamalla useammalla syvyyskameralla kuva- ja syvyystieto esityksestä, joka puolestaan toistetaan erityisen sovelluksen avulla. Sovellus siirtää datan visualisointisovellukselle, josta voi tarkastella tallennettua kohdetta. Sinällään holotallenteen tekeminen ei eroa normaalin videon tekemisestä. Kamerat kytketään päälle, ja esiintyjä pääsee vauhtiin. Ero onkin lähinnä tekninen – kohteesta tallentuu samalla useampi kuvakulma syvyystietoineen.  

Miten tallennus tapahtuu?

Wärtsilä-kampuksen fyysisten laboratoriotilojen rajoitteiden vuoksi käytämme toistaiseksi virtuaalihologrammien kuvaamiseen pelkästään kahta Intel Realsense-syvyyskameraa. Intel Realsensekirjaston mukana tulevat apuohjelmat mahdollistavat kunkin kameran tuottaman pistepilven tallentamisen ROS bag-muotoon. Valitettavasti bag-muoto on optimoimaton, ja tallennettu pistepilvitieto pelkästään yhden kameran osalta vaatii noin 100 megatavua  / sekunti, joka tuottaa varsin reippaan kokoisia tiedostoja. Mikäli kameroita käytetäisiin useampia, vaadittu tallennustila kerrotaan kameroiden lukumäärällä.

Mikäli tallennustilavaatimus tuntuu hankalalta hahmottaa, niin kaksituntinen elokuva HD 1080p-tarkkuudella vie noin kaksi gigatavua pakattuna h264-koodekilla. Kaksituntinen holotallenne kahdella kameralla bag-muodossa veisi puolestaan 1440 gigatavua, eli 1.4 teratavua.

Kokovaatimusten takia kehitin uuden ratkaisun pistepilvitiedon tallentamiseen. Rajoitin tallennettavan metatiedon määrää, sekä sovelsin pakkausalgoritmeja siten, että saamme pienennettyä tallennettavan tilan määrää kahdessadasosaan alkuperäiseen nähden. Tällöin kolmen minuutin esitys pakattuna vie noin 65-90 megatavua, mikä voi todeta olevan hyvä tulos, sillä kaksituntinen holotallenne veisi enää noin 2.4 gigatavua. Ratkaisun osaltaan mahdollisti myös syvyyssuunnassa kuvattavan alueen sekä syvyystiedon tarkkuuden rajoittaminen, sillä tallenteilla kuvattavien kohteiden vaatima alue ei ole kovin suuri.

Tallennus tapahtuu kahdessa vaiheessa. Ensimmäisessä vaiheessa ohjelmisto tallentaa kameroiden tuottaman tiedon, sekä mikrofonin kaappaaman äänen levylle. Toisessa vaiheessa yhdistetään ääni-, kuva- ja syvyystieto yhdeksi virtuaalihologrammivideoksi. Sen jälkeen video onkin mahdollista toistaa 3D-mallina sitä tukevan erityisen visualisointiohjelmiston avulla.  

Miten visualisointi tapahtuu?

Virtuaalihologrammeja toistava visualisointiohjelmisto rakentaa katsojalle näkyvän 3D-pistepilven hologrammivideoon tallennetun datan perusteella. Virtuaalihologrammien tarkastelua varten käytämme Meta 2 AR–laseja, joille kehitetään sovelluksia Unity-pelimoottorilla. Virtuaalihologrammeja on toki mahdollista tarkastella myös VR-lasien avulla. 

Pistepilvien osien kalibrointi ja visualisointiparametrien asettaminen tehdään Unityssä.

Pistepilven tehokas renderöinti vaatii erikseen kehitetyn ratkaisun. Tätä varten olen rakentanut GPU-kiihdytetyn version Intel Realsense2-kirjaston visualisointilogiikasta. Realsense2-kirjasto on julkaistu avoimena lähdekoodina Apache License 2.0:n alla, joten siinä käytetyt ratkaisut ovat kehittäjien hyödynnettävissä. 

Visualisointitoteutusta tehdessä on kuitenkin huomioita muutamia seikkoja.  Jokaisen kameran tuottama syvyystieto on riippuvainen laitteen tallennuskomponenttien ominaisuuksista. Tämä tarkoittaa käytännössä sitä, että kukin hologrammitallenne vaatii myös tietyt ulkoiset kamerakohtaiset parametrit 3D-pistepilven tuottamiseen. Tallenteen tekemisen yhteydessä on siis ladattavia metatietoa laitteesta, jotta hologrammit piirtyvät oikein, ja nämä arvot on ladattava visualisointiohjelmistoon. 

Myös kameroiden sijoittelu ja orientaatio vaikuttaa hologrammien piirtämiseen. Tämän vuoksi visualisointiohjelmisto on kalibroitava kameroiden fyysisen sijoittelun mukaiseksi, että kaikki hologrammin osat toistuvat oikein suhteessa toisiinsa. Kalibrointi on toistaiseksi vielä tehtävä käsin, ja se on varsin aikaa vievää. Kun jatkossa käytämme useampaa kameraa, kalibrointi on rakennettava siten, että se on mahdollista tehdä vastaavilla menetelmillä, kuin mitä useamman kameran liikkeenkaappauslaitteistojen yhteydessäkin.  

Miten tästä eteenpäin?

Hologrammi ei ole täydellinen 3D-malli kohteesta, sillä yksinkertaistetun 3D-mallin muodostaminen pistepilvestä vaatisi enemmän kuva- ja syvyystiedon ohjelmallista käsittelyä. Esimerkiksi Microsoftin Holoportaatio-teknologia todennäköisesti tekee kuvanlaadun parantamiseksi vaativampaa laskentaa, mutta meidän tapauksessamme siihen ei ole syytä ryhtyä. Ratkaisumme on kuvanlaadultaan ehkä heikompi, sillä tuotetussa 3D-mallissa on vielä aukkoja joissain kohdin. Mutta toisaalta, ratkaisu on varsin suorituskykyinen ja toteuttavissa pienemmilläkin laitteistopanostuksilla, sekä lopputulos onnistuu välittämään esiintyjän kehonkielen katsojalle 3D-mallin puutteista huolimatta. 

Koska vaativimmat tekniset ongelmat tallennuksen ja visualisoinnin osalta on ratkaistu, pääsemmekin SMErec-hankkeen puitteissa esittelemään uutta teknologiaa Taitaja 2019-messuilla Joensuu Areenalla toukokuussa 2019. Lisäksi virtuaalihologrammien soveltamiselle opetusteknologian parissa on luotu pohjatyö, joten tuloksilla on mahdollisuus jäädä henkiin Kareliassa myös SMErec-hankkeen päättymisen jälkeen.

Kirjoittaja Anssi Gröhn, tietojenkäsittelyn lehtori

Yleisten tenttien siirtyminen EXAM-sähköiseen tenttijärjestelmään

Karelia amk:ssa käytössä oleva EXAM-sähköinen tenttijärjestelmä korvaa 1.6.2019 alkaen auditoriossa järjestettävät uusinta- ja korotustenttipäivät. Siirtyminen EXAM-järjestelmään liitty osana suurempaa järjestelmien muutosta, kun aikaisemmin käytetyt uusintatenttijärjestelyt ja ilmoittautuminen WinhaWillen kautta poistuvat käytöstä.

Tammikuusta 2018 alkaen EXAM-sähköinen tentti on otettu pikkuhiljaa aktiiviseen käyttöön. Kevään 2019 aikana yhä useampi opettaja on siirtänyt sekä opintojaksojen varsinaisia tenttejä että uusintatenttejä järjestelmään. Tämä näkyy positiivisena kehityksenä EXAM-tenttikertojen lukumäärässä.

EXAM-tenttien lukumäärän kehitys lukuvuosien 2018 ja 2019 aikana.

EXAM-tenttitila sijaitsee Tikkarinne-kampuksessa kirjaston vieressä (E226). Kun opiskelijalla on tarve uusintatenttiin, hän ottaa yhteyttä opinnon vastuuopettajaan ja sopii hänen kanssaan uusintatentistä EXAM-järjestelmässä. Vaihtoehtoisesti opettaja voi informoida opiskelijoita, että tentti on avoinna EXAM:ssa. Opiskelija varaan tenttiajan ja tenttitilan EXAM-tenttipalvelusta vasta em. keskustelun jälkeen. Opiskelijalla voi olla samasta tentistä vain yksi ilmoittautuminen voimassa. Opiskelija voi kuitenkin suunnitella jo ennakkoon useamman opintojakson tentteihin osallistumisen ja ilmoittautua näihin, jolloin hänellä on useampi varaus voimassa.

Tikkarinteen Tenttitupa on avoinna kesä-, heinä ja elokuussa. Opiskelija näkee reaaliaikaiset aukioloajat Tenttitupaan, kun hän ilmoittautuu tenttiin. Mikäli opiskelija tulee tenttiin Tikkarinteen kampuksen pääovien ollessa suljettuna, hänen on lunastettava pantillinen kulkutunniste. Tästä löytyy tarkempi ohjeistus Karelian EXAM-oppaasta.

Opettajat hallinnoivat sitä, milloin opintojakso-, uusinta- ja korotustentit ovat avoinna. He voivat määrittää näille tenteille tietyt perioidit tai ne voivat olla auki läpi lukuvuoden.
Huomioitava on, että EXAM:ssa olevat tentit eivät voi olla materiaalitenttejä, joihin viedään kirjallinen materiaali mukana. Tenttimateriaalit voidaan liittää sähköisenä tentteihin.

EXAM-sähköinen tentti antaa opiskelijoille enemmän liikkumavaraa tenttien suorittamisen suhteen. He eivät ole enää sidottuja tiettyihin tenttiajankohtiin, vaan voivat suorittaa tentin haluamanaan ajankohtana. Samoin opiskelija voi varata tentin vaikka tunnin varotusajalla. Varatessaan tenttiä opiskelija näkee, kuinka monta konetta on jo varattuna. Tällöin hän voi valita ajankohdista esimerkiksi sellaisen, jossa on mahdollisimman vähän muita tentin tekijöitä.

EXAM-sähköinen tentti on valvottu tentti. Läpi kesän vastuuhenkilöt tarkastavat valvontakameran tallenteita / reaaliaikaista valvontakameran kuvaa. Opiskelijoita informoidaan välittömästi, mikäli sääntöjen vastaista toimintaa esiintyy. Tähän mennessä sääntöjen vastainen toiminta on pääsääntöisesti ollut ulkotakin tai repun mukaan ottaminen Tenttitupaan, mutta sitä ei ole hyödynnetty tenttivilppiin. Mikäli tenttivilppiä havaitaan, siitä tullaan ottamaan välittömästi yhteyttä tentin vastuuopettajaan.

Kirjoittaja Minna Rokkila
EXAM-pääkäyttäjä

Laadukkaasti verkkoon -valmennusohjelman kokemuksia

eAMK:n valmennuksien (kevät 2018 ja syksy 2018) tavoitteena on ollut varmistaa CampusOnline -portaalissa tarjottavien verkkototeutusten laadukkuus. Näihin valmennuksiin oli rajoitettu osallistujamäärä, joten kaikki Karelian halukkaat opettajat opintojaksoineen eivät mahtuneet mukaan. Kareliassa kehitettiin oma valmennusohjelma ja sitä on nyt toteutettu kaksi kertaa kevään 2019 aikana. 

Kuva 1. Laadukkaasti verkkoon -valmennusohjelman sisältö.

Ennakkotehtävänä osallistujat vastasivat lähtötasotestiin, jolla selvitettiin osallistujan pedagoginen ja ohjaustausta, työkalut joita hän käyttää niin opintojaksojen suunnittelussa kuin toteutuksessa sekä mahdolliset taidot, joita opintojaksolla osallistujalle kehittyy. Testin lopuksi osallistuja kirjasi omat tavoitteet, joihin palasi/palaa niin halutessaan/tarvittaessa pitkin valmennusta ja muuttaa, täydentää tarvittaessa tai vasta myöhemmässä ajankohdassa.

Valmennuksen osiot:

1) Oppimis- ja ohjausprosessi, 2) Oppimistehtävät ja oppimateriaalit ja 3) Arvionti ja hyvä/paha palaute ovat rakenteeltaan samanlaiset: tavoitteet, tehtävät, oppimateriaali ja itsearviointi sekä lisämateriaalit. Tämä ratkaisu tukee eri elementtien, sisältöjen tunnistettavuutta ja kokonaisuus näyttäytyy siten yhtenäisenä. Työtilan visuaaliset elementit tukevat sisältöä.

Valmennuksen päätyttyä osallistuja sai niin halutessaan ja tehtyään (lähtötasotestin, osioiden ja koko valmennuksen itsearvioinnin sekä antanut palautteen) Moodle-padgen (kuva 2) .

Kuva 2. Moodle-padge (osaamismerkki)

 

 

 

 

 

 

 

Työtilan on käynyt läpi vertainen, joka ei itse ole osallistujana valmennuksessa,  eAMK:n laatukriteerityökalulla. Kuva 3 on arvioinnin lopputulos.

Kuva 3. Arviointikriteerien toteutuminen

Vertaisen tekemä laatukriteeriarviointi teki näkyväksi puutteet. Tämän työtilan keskeiset kehittämisen kohteet ovat esteettömyys ja video-/äänitiedostojen sisältöjen tekstitykset. Tehtävänantoihin, niiden ymmärrettävyyteen ja ohjaavaan otteeseen sekä tieto suorittamisen edellyttämästä peruslaitteistosta tai sovelluksista on puutteellista. Nämä kohdat korjataan tai parannetaan syksyn 2019 ja kevään 2020 toteutuksiin.

Esiin nousi myös, että työtila ei vahvista osallistujien kansainvälisyysosaamista eikä mahdollista sidosryhmien osallistumisen. Ei myöskään tue geneeristen taitojen kehittämistä eikä myöskään mahdollista materiaalin tuottamista työtilaan. Nämä eivät ole valmennuksessa merkityksellisiä, mutta mahdollisuutta niiden sisällyttämiseksi ohjelman aineistoihin selvitetään ennen seuraavaa toteutusta. Samoin reagoidaan osallistujien antamiin kehittämishavaintoihin ja ideoihin.

Osallistujien palaute:

Valmennusohjelmaan liittyvät aiheet ja tehtävät olivat ajankohtaisia

  • vastaajista 90 % oli täysin samaa mieltä ja 10 % osittain samaa mieltä.

Koen, että valmennusohjelmaan osallistumisesta oli hyötyä omien opintojaksojen työstämisessä verkkoon soveltuviksi

  • vastaajista 90 % oli täysin samaa mieltä ja 10 % osittain samaa mieltä.

Olen tyytyväinen valmennusohjelman kokonaisuuteen

  • 100 % oli täysin samaa mieltä.

Miltä osin valmennusohjelman sisältö/toiminnallisuus toteutui hyvin?

  • Ennakkotehtävät ja selkeä kokonaisuus kuhunkin välitapaamiseen / tätä ennen itsenäinen opiskelu ja kokoava palaute sekä asioiden yhdessä läpikäynti kontaktikerroilla. 2 viikon välein sopiva tapaamisväli. Itse voi vaikuttaa siihen, mitä asioita laajasta aineistosta itselleen kokee tarpeelliseksi ja mihin kiinnittää huomiota. Aivan kaikkea ei siis järjestelmällisesti ole pakko ”opiskella”, ellei koe juuri siihen hetkeen tarpeelliseksi. Hyvää myös se, että myöhemmin voi aineistoon palata, kun kenties jokin osa-alue johon ei nyt ehtinyt tai kokenut tarpeelliseksi perehtyä, tuleekin mietinnän tai kehittelyn alle kenties jollain toisella opintojaksolla.
  • Mielestäni aiheet, jotka työpajojen teemoiksi on nostettu, ovat ajankohtaiset ja toisaalta hyvin ajattomat – samojen ”ongelmien” / haasteiden ja juuri näiden kysymysten kanssa uskoisin että monikin meistä opettajista painii.
  • Valmennusohjelman sisältö oli erittäin runsas ja antoi paljon ideoita omien opintojaksojen suunnitteluun. Tehtävät pakottivat priorisoimaan omaa ajankäyttöä ja miettimään omien kurssien kehitettäviä osa-alueita. Sain monta uutta ideaa, joita en kevään aikana ehdi työstää. Kiitos Maarit hyvästä valmennuksesta :)!. Palaan aineistoon viimeistään syksyn alussa, kun opintojaksopaineet helpottavat.
  • Valmennusohjelma toimi hyvänä mallina, miten laadukkaan toteutuksen tulisi toimia ja kun siellä opiskeli itse, näki käytännössä, miten hyvin se toimi. Esim. nyt vasta ymmärsin, miksi on tärkeätä laittaa aikaresurssi näkyviin; se helpottaa oman ajankäytön suunnittelua.
  • Ennakkotehtävät ja selkeä kokonaisuus kuhunkin välitapaamiseen / tätä ennen itsenäinen opiskelu ja kokoava palaute sekä asioiden yhdessä läpikäynti kontaktikerroilla. 2 viikon välein sopiva tapaamisväli. Itse voi vaikuttaa siihen, mitä asioita laajasta aineistosta itselleen kokee tarpeelliseksi ja mihin kiinnittää huomiota. Aivan kaikkea ei siis järjestelmällisesti ole pakko ”opiskella”, ellei koe juuri siihen hetkeen tarpeelliseksi. Hyvää myös se, että myöhemmin voi aineistoon palata, kun kenties jokin osa-alue johon ei nyt ehtinyt tai kokenut tarpeelliseksi perehtyä, tuleekin mietinnän tai kehittelyn alle kenties jollain toisella opintojaksolla. Mielestäni aiheet, jotka työpajojen teemoiksi on nostettu, ovat ajankohtaiset ja toisaalta hyvin ajattomat – samojen ”ongelmien” / haasteiden ja juuri näiden kysymysten kanssa uskoisin että monikin meistä opettajista painii.
  • Yhdessä kokoontuminen on aina hedelmällistä.
  • Valmennus oli keskusteleva ja osallistujien tarpeista lähtevä. Valmennuksen materiaalit ja Moodle-työtila olivat oikein hyviä ja saivat pohtimaan omaa opintojaksoa ja sen kehittämistä eri näkökulmista kuin aikaisemmin.

Miltä osin valmennusohjelmaa voisi/tulisi kehittää?

  • Valmennusohjelman sisällön omaksuminen olisi vaatinut enemmän aikaa. Jos valmennuskertoja olisi ollut neljän viikon välein, olisi tehtävien tekemisen ja sisältöön tutustumisen voinut pilkkoa pienempiin osiin ja tehdä niitä esimerkiksi kahden viikon välein tai viikoittain. Kaksi viikkoa on lyhyt aika, kun opetukset painaa päälle 🙂
  • Ohjelma voisi kestää vaikka yhden lukukauden, niin opintojakson ehtisi siinä ihan oikeasti toteuttaa. Ajoitus voisi olla niin, että se alkaisi esim. syksyllä, kun opintojaksoja suunnitellaan, niin opintojaksoa voisi kehittää koulutuksen ajan. Mutta ihanaa, että kurssi jää käyttöömme suunnittelun ja opintojojaksojen kehittämisen tueksi. Suuret kiitokset! Tämä opintojakso oli todella hyödyllinen ja pitäisi olla pakollinen kaikille.

Kirjoittaja Maarit Ignatius

Oppimisanalytiikka – merkityksellistä aktiivisuuden visualisointia

Edellisessä oppimisanalytiikkaa käsittelevässä blogimerkinnässäni mainitsin, että esittelen vielä lisäksi erilaisen aktiivisuuskaavion toteutusta, jolla saadaan seurattua opiskelijan edistymistä vaikkapa tietyn aihealueen parissa. Tässä merkinnässä avaan sen taustoja sekä teknistä toteutusta.

Miksi tämä visualisointi tarvitaan?

Ohjelmointi I –opintojaksolle oli tarpeen saada selville opiskelijan opiskelumotivaatio, suhteutettuna ryhmän motivaatioon. Suoraviivaisin lähestymistapa, joka antaa edes jotain osviittaa aiheesta, on Moodlen aktiviteettiraportti.  Sen tarjoama tieto on yleinen ryhmän aktiivisuus kurssin aikana. Se ei kohdistu tiettyyn aihealueeseen, emmekä voi määrittää milloin kukakin opiskelijoista on keskittynyt mihinkin. Lisäksi jälkikäteen tarkasteltuna Moodlen tuottama aktiivisuuskaavion saa näyttämään dataa pelkästään aina tietystä takarajasta tähän päivään saakka, joten sen visuaalinen ulosanti ei ole niin hyvä. Yhtenä rajoituksena voi ajatella olevan myös Moodlen hakuparametri – kaukaisin hakuaika aktiivisuudelle on kaksi vuotta.

Moodlen aktiivisuuskaavio. Sen saa auki kohdasta Raportit -> Tilasto.

Ratkaisun hahmottaminen

Ensimmäiseksi lähdimme liikkeelle hahmottelemalla tulevan käyttöliittymä paperille. Tämän pohjalta keskusteltiin tarpeellisista ja tarpeettomista ominaisuuksista. Havaittiin, että jos on mahdollista valita pelkästään merkityksellisiä tapahtumia, saamme parempaa tietoa aktiivisuudesta. Tätä varten hahmottelimme valintalaatikot käyrään panoksen antaville materiaaleille ja aktiviteeteille.

Karkea käyttöliittymähahmotelma syksyltä 2018

Alustavan hahmottelun jälkeen oli syytä tarkastella mitä on tehtävissä. Esimerkiksi arvosanojen näkyminen käyrällä ei ainakaan tällä tavalla esitettynä tuottanut mitään lisäarvoa, joten ne jätettiin pois. Lisäksi kaikkien tehtävien hakeminen datasta osoittautui hieman hankalaksi tuossa vaiheessa, joten rajasimme ne pois. Lisäksi verbeiksi valittiin oletuksena yleiset selkeää aktiivisuutta ilmaisevat, kuten lähettää, kommentoida, päivittää ja vastata, sekä näiden eri ilmenemistavat xAPI-rekisterissä.

Seuraavaksi voimmekin siirtyä itse kyselyn toteuttamiseen! Asioiden yksinkertaisemiseksi jätämme käsittelemättä web-teknologioilla tapahtuvan tiedon hakemiseen sekä tietoliikenteen suojaukseen liittyvät osat, ja keskitymme itse visualisoinnissa tarvittavaan dataan. Kysely suoritetaan MongoDB-tietokantaan.

Miten data noudetaan tietovarastosta?

Aloitamme kyselyn suorittavan palvelimen puolelta. Visualisoitavaa dataa varten tarvitsemme siis kurssin tapahtumien päiväysten ääripäät, sillä on turhaa visualisoida ajanhetkiä, milloin mitään ei tapahdu. Tätä varten käytämme MongoDB:n aggregaatio-ominaisuutta.

Ensimmäiseksi rajaamme tapahtumat tietyn opintojakson sisälle.

Statements.aggregate([{ 
    $match : { 
      "statement.context.contextActivities.grouping.0.id" : courseUrl
    } 
  },

Tämän jälkeen ryhmittelemme datan uudelleen tapahtumien aikaleimojen perusteella, ja laskemme niistä minimi- sekä maksimiarvon.

 { 
    $group : { 
      _id : "$statement.context.contextActivities.grouping.0.id", 
      maxDate: { $max: "$statement.timestamp"}, 
      minDate: { $min: "$statement.timestamp"} 
    } 
  }],

Palautuneen datan perusteella voimme laskea montako päivää kurssi on kestänyt, ja toteuttaa sen avulla päiväkohtaisten pistekeskiarvojen laskennan.

Seuraavaksi haemme uuden datajoukon. Selvitämme kurssille osallistuvat opiskelijat rajaamalla distinct-hakumääreellä vain yksilölliset nimet annetun kurssin sisältä.

  Statements.distinct('statement.actor.name', { 
    "statement.context.contextActivities.grouping.0.id" : courseUrl 
  },

Kun data on palautunut, laskemme kunkin opiskelijan osalta erillisen summataulukon kertyneille pisteille.

        for( var a=0;a<numStudents;a++)
        {
          var student = {
            name: studentRows[a],
            scores: []
          };
          for(var sc=0;sc<numCourseDays;sc++)  student.scores[sc]=0;
          studentsTmp[student.name] = student;
        }

Itse pisteet saamme seuraavalla kyselyllä, jossa hyväksymme mukaan palautettavaan tietuejoukkoon kaikki aktiivista tekemistä määrittävät verbit. Haku rajatataan  tietyn opintojakson sisälle, ja tuotetun joukon alkiot sisältävät palautuessaan ainoastaan aikaleiman sekä opiskelijan nimen. Tässä kyselyssä on huomioitava, että käytetyt xAPI-verbit ovat järjestelmäkohtaisia, joten on aina syytä varmistaa, miten data on kuvattu eri tietovarastoissa – samaa voidaan ilmaista joskus usemmallakin tavalla.

  Statements.find( 
    { "$and": [ 
      {  "verbs": { $in : [ 
        "http://adlnet.gov/expapi/verbs/scored",
        "http://activitystrea.ms/schema/1.0/join",
        "http://id.tincanapi.com/verb/replied",
        "http://activitystrea.ms/schema/1.0/start",
        "http://activitystrea.ms/schema/1.0/submit",
        "http://activitystrea.ms/schema/1.0/follow",
        "http://activitystrea.ms/schema/1.0/update",
        "http://activitystrea.ms/schema/1.0/attach",
        "http://activitystrea.ms/schema/1.0/complete"
      ]}},
      { "statement.context.contextActivities.grouping.0.id" : courseUrl }}
   ]  
}, 
{    'statement.timestamp': 1,    'statement.actor.name': 1,  } 
)

Nyt kun kasassa on riittävät tiedot, voimme laskea pistekertymän kullekin opiskelijalle päiväkohtaisesti. Käymme läpi edellisestä kyselystä palautuneet tietueet, ja lisäämme kunkin opiskelijan tapahtumapäivälle pisteisiin yhden.

for(var s=0;s<scores.length;s++) 
{ 
   var scoreDay = moment(scores[s].statement.timestamp,"YYYY-MM-DDTHH:mmZ").startOf('day'); 
   if ( scoreDay.isSameOrAfter(start) && scoreDay.isBefore(end)){ 
     var numDaysSinceBeginning = scoreDay.diff(start, 'days'); 
     var studentName = scores[s].statement.actor.name; 
     studentsTmp[studentName].scores[numDaysSinceBeginning] += 1; 
   } 
}

Seuraavaksi laskemme pistekertymistä kumulatiivisen version siten, että aiempien päivien kertyneet pisteet lisätään nykyisen päivän pisteisiin. Samalla laskemme pisteiden summat päiväkohtaisiin keskiarvoihin.

          for(var property in studentsTmp ) 
          { 
            if ( studentsTmp.hasOwnProperty(property)){ 
              if ( studentsTmp[property].scores.length != numCourseDays ) 
                     averageScores[0] += studentsTmp[property].scores[0]; 
                     for(var d=1;d<studentsTmp[property].scores.length;d++) 
                     { 
                       studentsTmp[property].scores[d] += studentsTmp[property].scores[d-1];
                       averageScores[d] += studentsTmp[property].scores[d]; 
                   } 
              } 
          } 

Päiväkohtaiset pistesummat on jaettava vielä opiskelijoiden lukumäärällä keskiarvon laskemiseksi.

for( var day=0;day<averageScores.length;day++) 
{ 
   averageScores[day] /= numStudents; 
}

Tämän jälkeen edessä on ainoastaan palautettavan datan muotoilu selaimen koodissa.

Miten data saadaan selaimeen?

Selaimessa kyselyn lähettäminen tapahtuu seuraavalla tavalla. Muodostamme POST-metodikutsun, jonka avulla lähetetään haettavan opintojakson tunnus kyselyä varten. D3.js-kirjaston mukana tulevan asynkronisen palvelupyyntötoiminnon avulla saamme sen aikaan helposti. Kyselyssä rajaavana parametrina on kurssin URL-osoite, jota aiemmin kuvattu palvelinsovelluksen logiikka käyttää tulosjoukon rajaamisessa.

var url2 = '<PALVELUN URL-OSOITE>; 
d3.json(url2, { 
         method: "POST", 
         body: JSON.stringify({ course: url}), 
         headers: { 
             'Content-Type': 'application/json; charset=utf-8' 
         } 
}).then( function (json) {

then-osuus ottaa vastaan palautuvan datan käsittelyfunktion. Käsittelyfunktiossa ensimmäisenä muodostamme dataan erillisen date-kentän, johon liitämme tekstimuotoisesta aikaleimasta luodun javascriptin päiväysobjektin. Se antaa mahdollisuuden vertailla datan aikaleimoja helposti myöhemmin.

for(var x=0;x<json.length;x++) {
   var parse = d3.timeParse("%Y-%m-%dT%H:%MZ");
   json[x]["date"] = parse(json[x].timestamp); 
}

Tässä yhteydessä otamme käyttöön crossfilter-kirjaston. Muodostamme ensiksi dimensiot (x-akselille tuotettavat arvot) opiskelijoiden nimelle ja päiväykselle. Sen jälkeen laskemme ryhmittelysummat (y-akselille tuotettavat arvot) opiskelijoiden pisteille, sekä ryhmän pisteiden keskiarvoille päiväkohtaisesti.

  var ndx = crossfilter(json); 
  var studentDim = ndx.dimension(d => d.name ); 
  var dayDim = ndx.dimension(function (d) { return d3.timeDay(d.date); }); 
  var scoreDim = ndx.dimension(d => d.value ); 
  var scoresGroup = dayDim.group().reduceSum(d => d.value ); 
  var avgGroup    = dayDim.group().reduceSum(d => d.avg );

Minimi- ja maksimipäiväykset, sekä maksimipisteet saadaan datasta irti seuraavasti:

         var maxDate = d3.timeDay(dayDim.top(1)[0].date);
         var minDate = d3.timeDay(dayDim.bottom(1)[0].date);
         var scoreGroup = scoreDim.group();
         var maxScore = scoreDim.top(1)[0].value;

Opiskelijoiden valinta toteutetaan valikkorakenteella, joka onnistuu dc.js-kirjastolla seuraavasti. Valikkorakennetta voi ajatella ikään kuin omana “kaavionaan”, jossa tehdyt valinnat heijastuvat kaikkiin muihinkin dc.js:n NDX-kontekstilla luotuihin kaavioihin.  Valikon yhteyteen rakennamme toiminnallisuuden, jolla voimme piirtää valitun opiskelijan nimen kaavion oikeaan yläreunaan. Tämä auttaa tarkastelijaa hahmottamaan paremmin kenen datasta onkaan kyse.

var studentMenu = 
    dc.selectMenu('#dc-student-menu') 
      .dimension(studentDim) 
      .group(studentDim.group()) 
      .controlsUseVisibility(true) 
      .on('filtered.monitor', function(chart,filter) { 
          if (filter === null ) $('#name').html("Kaikki opiskelijat"); 
          else $('#name').html(filter);                                        
       });

Palkkikaavio päiväkohtaisia pisteitä varten saadaan aikaan seuraavasti.

var barChart = dc.barChart("#dc-bar-hits"); 
barChart 
  .width(990)
  .height(60) 
  .elasticY(true)
  .elasticX(true)
  .dimension(dayDim)
  .group(scoresGroup)
  .mouseZoomable(true)
  .x(d3.scaleTime().domain([minDate,maxDate]))
  .brushOn(true)
  .xUnits(d3.timeDays);

Koska haluamme esittää kaksi erillistä käyrää samassa kaaviossa, tarvitsemme dc.js:n yhdistelmäkaavion. Sen perusasetuksilla määritämme muodostettavan kaavion koon ja akseleiden ohjetekstit. Lisäksi ns. ohjauskaavioksi (.rangeChart) määritämme aiemmin luodun palkkikaavion, että voimme järkevästä valita tietyn aikavälin tarkasteltavaksi tarkemmin.

var compositeChart = dc.compositeChart('#dc-line-progress');
compositeChart
   .width(990)
   .height(400)
   .mouseZoomable(true)
   .dimension(dayDim)
   .legend(dc.legend().x(80).y(20).itemHeight(13).gap(5))
   .elasticY(true)
   .x(d3.scaleTime().domain([minDate,maxDate]))
   .xAxisLabel("Kurssin päivät")
   .yAxisLabel("Kertyneet pisteet")
   .rangeChart(barChart) 

Varsinaiset käyrät tuottavat kaaviot muodostetaan compose-funktiolle välitetyn javascript-taulukon avulla. Kaksi erillistä käyrää saadaan esittämään eri tietoja group-määrityksen avulla. Ensimmäinen esittää valittujen opiskelijoiden pisteiden summaa päiväkohtaisesti (scoresGroup), ja tähän vaikuttaa valikon avulla määritelty opiskelijakohtainen suodatus.

 .compose([ 
     dc.lineChart(compositeChart) 
        .width(990) 
        .height(120)
        .transitionDuration(1000) 
        .dimension(dayDim) 
        .x(d3.scaleTime().domain([minDate,maxDate])) 
        .round(d3.timeDay.round) 
        .xUnits(d3.timeDays) 
        .elasticY(true) 
        .colors('#f77') 
        .group(scoresGroup, "Saavutetut pisteet") 
        .brushOn(false),

Toinen käyristä esittää puolestaan koko ryhmän keskiarvoa. Tähän dataan opiskelijakohtainen suodatus ei vaikuta, sillä jokaiseen opiskelijatietueeseen on tallennettu myös kunkin päivän ryhmäkohtainen keskiarvo.

dc.lineChart(compositeChart) 
    .width(990)
    .height(120) 
    .transitionDuration(1000) 
    .dimension(dayDim) 
    .x(d3.scaleTime().domain([minDate,maxDate])) 
    .elasticY(true) 
    .colors('#ffff00') 
    .group(avgGroup, "Ryhmän keskimää¤rin saavuttamat pisteet") 
    .brushOn(false) 
]) 
.brushOn(false);

Lopuksi käskytämme kaikkia kaavioita piirtymään.

dc.renderAll(); 
}); 
} 

Miten visualisointi auttaa hahmottamaan edistymistä paremmin?

Kun tarkastelemme vaikkapa Moodlen tuottamaa kaaviota ja uutta aktiivisuuskaaviota samasta datasta, on havaittavissa, että jälkimmäinen osoittaa selkeästi paremmin suvanto- ja edistymiskohdat. Ryhmän keskiarvo on kaaviossa esitetty keltaisella värillä, ja opiskelijan puolestaan punaisella. Esimerkiksi tässä tapauksessa voidaan tulkita, että eräs opiskelija on suorittanut kurssia neljän erillisen rupeaman aikana, jotka ovat olleet kestoltaan lyhyitä, mutta niiden aikana on tapahtunut paljon. Kaaviosta paljastuu myös, että opiskelija on työskennellyt hieman jälkijättöisesti ryhmän keskimääräiseen työskentelyyn verrattuna, mutta lopuksi saavuttanut saman aktiivisuustason kuin ryhmä keskimäärin.

Myöhässä tehneen opiskelijan kaavio

Valittaessa erään toisen opiskelijan data tarkasteltavaksi, havaitsemme että tilanne on hieman toisin, ja aktiivisuutta on ollut ryhmän keskiarvoa enemmän heti alusta lähtien. Kuitenkin tällä opiskelijalla on ollut keskivaiheilla pitkiä jaksoja, jolloin aktiivisuus ei ole ollut niin suurta – nähtävästi alussa kiritty matka on antanut tilaa edetä loput kurssista rauhallisemmin.

Alussa aktiivisemman opiskelijan kaavio

Kun edellä olevaa kaaviota verrataan mitä Moodlesta oletuksena saadaan esille, voimme todeta yllä olevan kaavion olevan paljon yksityiskohtaisempi, sekä täsmällisempi. Moodlen kaavio ei erottele opiskelijoita, vaan näyttää kunkin päivän osalta roolikohtaiset tapahtumat yleisesti.  Uusista kaavioista saa tietoa ohjauksen tueksi, ja on helposti nähtävissä, milloin on syytä selvittää opiskelijalta tämän aktiivisuuden laskun syyt.

Mitä tämän jälkeen?

Mikäli samaan kaavioon liitetään eri aihe-alueisiin liittyviä aktiivisuuskäyriä, voimme nähdä entistä paremmin substanssikohtaista etenemistä. Silloin ohjauksen kohdistaminen on yhä täsmällisempää, ja se avaa myös (ainakin teoreettisen) mahdollisuuden niputtaa saman aihealueen parissa ohjausta tarvitsevat samalle ohjauskerralle.

Lisäksi erilaisten tapahtumien pistemäärän painottaminen voisi tulevaisuudessa olla tarpeellinen toiminto. Erilaiset oppimiskäsitykset voivat vaatia aina erilaista tekemistä, jolloin oppimiskäsityksen mukaiset erot pitäisi saada korostetusti esille.

Kirjoittaja Anssi Gröhn, tietojenkäsittelyn lehtori

Muutos on mahdollisuus (ITK’19)

Tämän vuotisen ITK-konferenssin (Interaktiivinen Tekniikka Koulutuksessa), jo 30. kerta, teemana on Muutos on mahdollisuus. Luvassa oli esityksiä muun muassa  seuraavista teemoista:

  • Digitaalinen muutos oppimisessa ja opetuksessa
  • Tulevaisuuden koulu ja tulevaisuuden taidot
  • Uudet sähköiset opetus- ja arviointikäytänteet
  • Robotiikka muuttaa yhteiskuntaa ja koulua
  • Miten oppia uusia taitoja muuttuvassa yhteiskunnassa?
  • Digitalisoituva yhteiskunta kohtaa opetuksen
  • Ohjelmoinnin opetus ja algoritminen ajattelu
  • Ilmiöpohjainen oppiminen – oppimisen muutos
  • Internet of Things ja sensorit opetuksessa ja oppimisessa.
Konferenssipaikka

Kuva 1: Konferenssipaikka.

Avajaisten puheenvuorot

Kohti osaamisen aikaa” teemasta puhui Sitran Tapio Huttula, vanhempi neuvontantaja. Sitran roolina on toimia riippumattomana sillanrakentajana elinikäisen oppimisen politiikan mahdollistamiseksi. Isona viestinä Sitra näkee ajattelun ja toimintakulttuurin muutoksen olevan keskeistä puhuttaessa elinikäisestä oppimisesta. Koulutusorganisaation on tunnistettava mitä elinikäinen oppiminen tarkoittaa, mitä muutosmatka merkitsee, jolle on uskallettava lähteä. Huttula esitteli juuri valmistuneen 3-vuotisen suunnitelman siitä miten Suomessa toteutetaan uudella tavalla elinikäistä oppimista.

Työn tulevaisuus ja tulevaisuuden työ” aihetta avasi Vincit Oyj:n henkilöstöjohtaja Johanna Pystynen. Hän kertoi, miten on mahdollista suunnata voimavarat itseohjautuvuuden yhteisöohjautuvuuteen. Esitysmateriaalista poimittuna ”Vincitin henkilöstöjohtamisen mallin palvelee nykyajan asiantuntijaorganisaation tarpeita parhaalla mahdollisella tavalla. Henkilöstö- ja työhyvinvointitekopalkintojen lisäksi Vincitin meriittilistaa komistavat Suomen parhaan työpaikan tittelit vuosilta 2014–2016 sekä kärkisija Euroopan parhaana työpaikkana 2016.

Pystinen totesi, että johtamismallien tulee tukea muutoksen mahdollisuutta. Monimuotoisuuden ja yksilöllisen suoriutumisen kasvu ei onnistu jos johto ”arvailee” mikä toimii. Se onnistuu jos aidosti muutetaan sisäiset prosessit ja organisaation osaamisen hyödyntäminen on onnistumisen avainasia. Vincit kehitti ”sisäisen palveluverkkokaupan”. Sillä se varmistaa yksilöllinen palvelu ⇒ osaamisen jakaminen. Osaamisen, yhteisöllisyyden ja luovuuden hyödyntäminen. Vincitin johtaminen on muokattu palvelukokonaisuuksiksi, joista suosituimpia ovat: pukumieslounas, verkostokartoitus, mentorointi sisältä/ulkoa, myynnin havainnointi, Vinsitin tulevaisuus, talousluvut tutuiksi, liiskaa huhu, onnistumiskeskustelu, kahvihetki designerin kanssa, Jukan herskalaislounas, lounaslotto sekä erilaiset harrastusaiheet (suunnistus, uinti, laulu, juoksu, luistelu).

Datan hyödyntäminen sisäisten palvelujen käytöstä on erittäin tärkeää. Yhden tähden (*) palvelu on hukkapalvelu. Pitää tunnistaa mitä palveluja tarvitaan, tulevaisuuden analysointi on keskeistä. Mitä taitoja mm. opettaja tarvitsee ja miten/millaisia palveluja he tarvitsevat? Opettajien palvelutarpeiden selvitys on oltava jatkuvaa. Ei kertaluonteista. On tiedettävä kuka tuottaa kenellekin palveluja ja tuotettuja palveluja tulee pystyä hyödyntämään itsenäisesti ja itseohjautuvasti. Kysymys kuuluukin, että nähdäänkö me aidosti (ei arvailla, luulla) mitä palveluja tarvitaan. Tukevatko organisaation käytössä olevat mallit tulevaisuuden työtä?

Oppimisanalytiikka on koulutuksen ja opetuksen digitalisaation ydin” aiheesta puolestaan haasteli Helsingin kaupungilta ICT-hankepäällikkö Pasi Silander. Hän totesi, että digitaalisaatiosta puhuttaessa pitää puhua toiminnan muutoksesta, ei teknologiasta ei välineistä. Digitalisaatio on älyä!! Ei pidä jumittautua tvt-tasolle (tieto- ja viestintätekniikka). Esitysmateriaalista poimittuna ”Oikein käytettynä oppimisanalytiikka helpottaa opettajan työtä ja tuo opettajalle aivan uuden työkalupakin oppimisprosessin ohjaukseen ja oppimisen yksilölliseen tukemiseen. Oppimisanalytiikan hyödyntäminen parhaimmillaan johtaa ydinprosessien muutokseen sekä toimintakulttuurin muutokseen koulutusorganisaatioissa. Oppimisanalytiikka on koulutuksen ja opetuksen digitalisaation ydin.”

Kareliasta tämän vuotisilla ITK:lla oli kolme esitystä

Automatisoitujen oppimispolkujen luonti Moodlessa – PLD

Karelian ensimmäinen esitys ”Automatisoitujen oppimispolkujen luonti Moodlessa” veti runsaasti yleisöä. Erikoissuunnittelija Minna Rokkila ja monimuotopedagogi Maarit Ignatius esittelivät tässä foorumiesityksessä kaikki ne tulokset, jotka oli esitykseen mennessä kokeiluna mukautetusta opiskelun suunnittelusta (PLD) saatu.

Esitysyleisöä

Kuva 2: Esityksen yleisöä.

Verkossa opiskelu on parhaimmillaan monipuolinen ja yksilöllinen oppimiskokemus. Karelian verkko-oppimisympäristön (Moodle) sisältämää teknologiaa (PLD – Personalized Learning Designer) hyödyntävä oppimisprosessin toteutus koostuu henkilökohtaisista ja yhteisistä palautteista, monipuolisista tehtävistä sekä yksilöidyistä oppimispoluista. Suunnitellun oppimisprosessin eteneminen ei kuitenkaan kuormita opettajaa liiallisesti vaan hän pystyy keskittymään ohjauksen ja tuen antamiseen.

PLD-teknologialla ohjataan oppimisprosessia ja opiskelijan etenemistä Moodlessa. Sen avulla tunnistetaan opiskelijan osaamistaso ja suunnataan tehtäviä, materiaaleja, testejä, itse- ja vertaisarviointeja sekä vuorovaikutusta hänelle. Opettaja voi suunnitella PLD:n avulla opintojakson kriittisiin pisteisiin oppimista aktivoivia sääntöjä. Esimerkiksi palautuksen unohtaneelle opiskelijalle lähtee automaattisesti aktivoiva huomautusviesti.

Opettajan ammattiaidon ja kokemuksen avulla hän tietää, mitkä kohdat opinnoissa ovat opiskelijalle haastavia tai oman osaamisen kehittymisen havainnoimisen solmukohta. Tämän tiedon avulla opettaja voi PLD-teknologiaa hyödyntäen rakentaa opintojaksolleen ne pisteet, joihin varataan ohjausta sekä oppimista aktivoivia ja eteenpäin ohjaavia sääntöjä. Jokaisen säännön käynnistää tapahtuma, ehto tai toiminto. Yhdistelemällä erilaisia tapahtumia, ehtoja sekä toimintoja voidaan luoda lähes rajattomasti erilaisia sääntöjä.

Esitysmateriaali: Automatisoitujen oppimispolkujen luonti Moodlessa – PLD.

Hologrammiteknologian mahdollisuuksista opetustyössä

Toinen esityksemme oli lehtorien Mikko Hyttisen ja Olli Hatakan ”Hologrammiteknologian mahdollisuuksista opetustyössä”. Tämä esitys veti myös runsaasti kuulijoita. Opetusteknologia saa yhä moniulotteisempia muotoja tietoteknologioiden ja erilaisten representatiivisten menetelmien kehittymisen myötä. Tähän foorumiesitykseen Mikko ja Olli olivat valinneet hologrammiteknologian opetuskäyttöön perustuvan opetusteknologisen kokeilun korkeakoulukontekstissa.

Mahdollisuudet/haasteet

Kuva 3: Hologrammitekniikkan mahdollisuudet ja haasteet

Holografiaperusteinen kuvantaminen mahdollistaa kokemuspohjaisen konstruktivistislähtöisen pedagogiikan soveltamisen, jossa merkitysten luominen, jaetut ja yksilölliset kognitiiviset tulkinnat mahdollistuvat uudella tavalla (Kolb 1974; Piaget 1970). Holografiateknologia yhdistettynä virtuaalitodellisuuteen tehostaa mahdollisuuksia myös tutkivan oppimisen (Hakkarainen, Lonka & Lipponen 2004) toteuttamiseen, erityisesti monimutkaisten ilmiö- ja käsitekokonaisuuksien suhteen. Tekniikka tukee tiedon esittämisen monimuotoisuutta oppimisessa (Cognitive Flexibility Theory (Spiro 1988)).

Esitysmateriaali: Hologrammiteknologian mahdollisuudet opetustyössä.

Opettaja selviytyy digitaalisuuden muutospyörteessä

Tämä Karelian kolmas foorumiesitys jatkoi yleisömenestystä. Esitys oli lehtori Tarmo Alastalon ja monimuotopedagogin Maarit Ignatiuksen tarina pitkäkestoisen ja tuetun osaamisen kehittämisen tuloksellisuudesta. Esitys kuvasi sitä, miten opettaja selviytyy digitaalisuuden muutospyörteessä.

SAMR-malli

Kuva 4: SAMR-malli by Puentedura, R.R. 2018.

Esitys antoi kuulijoille vastuksia kysymyksiin: Miten työtapojen muutosta ja muuttuvaa opettajuutta on tuettu organisaation taholta? Miten opintojaksoja on suunniteltu pedagogisesti eheäksi kokonaisuudeksi. Esiintyjinä Tarmo ja Maarit väittivät, että hallittu kehittämisprosessi tuo tuloksia, joita organisaation strategiaan on kirjattu. Se vaatii resursseja niin opetushenkilöstölle kuin tukiplalveluihin.

Opettajuuden muutoksen ja digipedagogisen kehittämisen työkaluna on käytetty Puenteduran SAMR-mallia. Tässä mallissa teknologiaa hyödynnetään opettamisessa ja oppimisen ohjaamisessa neljällä eri tasolla: Substitution, Augmentation, Modification ja Redefinition. Esityksessä kerrottiin, mitä eri tasojen parannukset ja muutokset ovat käytännössä, miten ne on toteutettu ja mitä niistä on opittu.

Opettajan digipedagoginen osaaminen on kasvanut ja opiskelijoiden oppimistulokset ovat parantuneet. Prosessin aikainen pedagoginen tuki on rohkaissut opettajaa tunnistamaan omia vahvuuksia ja kehitysmahdollisuuksiaan niin pedagogisissa kuin teknologisissa asioissa. Ilman tällaista sitoutumista ja tavoitteellista kehittämistä ei opettajan digipedagoginen osaaminen olisi kehittynyt siinä määrin, mitä se nyt on kehittynyt. Eikä opiskelijoilla olisi niin joustavaa, yksilöllistä oppimisprosessin etenemismahdollisuutta. Tämä todennettiin esityksessä saatujen palautteiden kautta. Palautetta on kerätty toteutus toteutukselta systemaattisesti ja siihen on joka kierroksella reagoitu.

Esitysmateriaali: Opettajuus digitaalisuuden muutospyörteissä.

Lisää ITK:sta:

Kirjoittajat Maarit Ignatius ja Minna Rokkila

Järjestemämuutoksista – mietteitä menneestä ja tulevasta

Strategiakauden 2016–2020 kääntyessä loppusuoralle on aika pysähtyä hetkeksi tekemään väliarviointia. Strategiakauden ensimmäiset vuodet ovat tuoneet mukanaan monia järjestelmämuutoksia ja niihin liittyvää osaamisen kehittämistä. O365-pilvipalvelut, Moodle(rooms), Reportronic, EXAM ovat enemmän tai vähemmän osa arkeamme. Se, että järjestelmä on käytettävissä ei vielä takaa sitä, että sitä aktiivisesti käytetään. Uuden omaksuminen vaatii osaamisen kehittämisen lisäksi usein uusia toimintatapoja ja niitä hyviä esimerkkejä. Tällainen on varmaan myös sähköinen tenttiympäristö EXAM. Hyvät mallit onnistuneista käyttäjäkokemuksista ovat yksi tapa lisätä kiinnostusta ympäristöön, joka tuo opiskelijalle joustavuutta opintoihin ja opettajalle ajan myötä lisää joustavuutta ja toivottavasti myös helpotusta työn tekemiseen.

Järjestelmien rinnalla strategiakauden ensimmäiset vuodet ovat painottuneet vahvasti henkilöstön osaamisen kehittämiseen. Järjestelmämuutoksiin liittyvän osaamisen kehittämisen rinnalla on toteutettu osaamiskartoitus, järjestetty verkkopedagogiikkaan liittyvää koulutusta ja pedagogista tukea, kehitetty verkko- ja monimuoto-opetusta, otettu käyttöön osaamismerkkejä, piltoitu verkko-opetuksen tuottemistamismallia ja uudistettu kampusten digimentorointia. Myös palvelujen digitalisaatiota on kehitetty esim. ottamalla käyttöön erityisesti opiskelijoille suunnattuja skype-ohjaus- ja neuvontapalveluita. Karelian digitaalisuutta ei kehitä digiryhmä, vaan koko korkeakouluyhteisö. Monet asiat syntyvät ja etenevät yksittäisten henkilöiden ja työryhmien aloitteesta ja innostuksesta uuteen.

Digitaalisuuden kehittämisen ajureina ja työkaluina toimivat meillä useat hankkeet, joissa viedään eteenpäin digitaalisuuden kehittämistä laajalla rintamalla. Hankkeet tuovat mukanaan mahdollisuuksia oman osaamisen, opetuksen menetelmien ja sisältöjen kehittämiseen. Ne tuovat mukanaan myös uusia resursseja, verkostoja ja työkaluja kehittämistyöhön näinä aikoina, joina kehittämiseen kohdennettavia resursseja on niukasti käytettävissä.

Strategiakauden loppuvaiheen kehittämiskohteiksi on määritelty BYOD-toimintamallin (opiskelijan oman laitteen käyttö) käyttöönotto, monimuoto-opetuksen ja –opiskelun tuki, järjestelmien, palvelujen ja prosessien sujuvuus, digiosaamisen tuotteistaminen sekä digitaalisaation vaikutus opetuksen toteutukseen ja sisältöihin. Digiryhmä on ottanut tavoitteekseen myös entistä aktiivisemman viestinnän digitaalisuuden kehittämiseen liittyen. Ja vaaniihan siellä nurkan takana jo se suuri tietojärjestelmiin liittyvä muutoskin – Peppi – jo ensi marraskuussa. Vaikka järjestelmämuutokset ovat aina työllistäviä ja työläitä, tämän muutoksen perusteleminen on poikkeuksellisen helppoa. Kun Winha loppuu, tarvitaan tilalle uusi opiskelijahallintojärjestelmä. Samalla luovumme SoleOPS-järjestelmästä ja keskitämme toimintoja Peppi-ympäristöön. Mikään järjestelmä ei ratkaise kaikkia ongelmia, mutta toivottavasti palvelujen ja järjestelmien sujuvuus paranee, kun rajapintojen määrä vähenee.

Yhteistyöterveisin kirjoittaja Marjo Nenonen, koulutuksen kehittämispäällikkö

SMErec: Virtuaalihologrammien testiympäristön rakentaminen

Edellisessä DigiIT! –blogimerkinnässäni käsittelin yleisesti Intel Realsense-syvyyskameroita, sekä totesin lopussa että virtuaalihologrammien tekemistä varten on rakennettava useamman kameran testiympäristö, sekä tutkia tallennusmenetelmiä ja rakentaa soveltuva visualisointiohjelmisto. Tässä blogimerkinnässä keskitytään näistä kolmesta kohdasta ensimmäiseen, eli testiympäristön rakentamiseen.

Lähtökohdat

Tavoitteena on siis luoda kaksi erillistä ympäristöä virtuaalihologrammien tallennukseen. AC-tilaan 101b rakennetaan tuotantoympäristö: työasema, sekä neljä kameraa tallenteiden tekemistä varten.  Työhuoneeseeni puolestaan rakennetaan vastaava kehitysympäristö, jolloin on suoraviivaisempaa toteuttaa ohjelmistokehitystä. Lähdemme joka tapauksessa liikkeelle kehitysympäristön rakentamisesta – sen jälkeen tiedämme miten tuotantoympäristö kannattaa lopulta tehdä.

Ensimmäiset puutteet havaitaan kiinnitysvälineistä. Kameroissa on mukana kolmijalat, mutta niiden kiinnittäminen seinään ei ole mahdollista. Eräs tapa hankkia sopivat kiinnitysosat on suunnitella ja tulostaa ne itse 3D-tulostimella, joten miksipä sitä ei kokeiltaisi. Seinäkiinnikkeiden mallinnusta varten tarvitaan sopiva malli kameran jalustaruuviksi, että kamera on ylenpäätänsä mahdollista liittää kiinnikkeeseen. Sellainen on saatavilla esimerkiksi Thingiversestä CC-lisenssillä julkaistuna, jolloin siihen on luvallista tehdä myös muutoksia (kiitokset Basic3dprinting/Rob mcnulty). Tätä mallia hyödyntämällä loput osat on laadittavissa pienellä vaivalla, mikäli 3D-mallintaminen on hallussa.

Suunnittelu

Seinäkiinnikkeen toimintaperiaate on varsin yksinkertainen. Tarvitsemme siihen kolmisen osaa. Kameraan tulevan kiinnitysruuvin, jossa on toisessa päässä pallo. Sitten tarvitsemme itse kulmaosan, jonka yksi sivu kiinnitetään seinään. Kulmaosaan jätetään sopivat reiät ruuveille. Sitten tarvitsemme kulmaosaan kiinnitettävän kotelon palloruuville. Itse palloruuvi kiilataan koteloon asennusruuvilla, jolloin kamera pysyy paikoillaan.

Mallinnukseen käytin ilmaista avoimen lähdekoodin Blender-ohjelmistoa, josta mallin saa vietyä useisiin eri tiedostomuotoihin. Alla Blenderin näkymien kuvakaappaukset mallinnuksen loppuvaiheesta.

 

Seinäkiinnikkeen osat ortogonaalisesti esitettynä.

Seinäkiinnikkeen 3D-malli Blenderissä sivuilta ja ylhäältä kuvattuna.

Tulostus

Realsense-kameran seinäkiinnike tulostettuna sekä koottuna alkukantaisella, mutta tehokkaalla tavalla.

Tulostimena toimi Delta-tyyppinen Anycubic Kossel ja varsinaiseen tulostukseen käytin valkoista PLA-lankaa. Tulostusohjelmana käytin ilmaista Cura-ohjelmistoa. Tulostuspään koko oli 0.4mm, tulostetavan kerroksen paksuus 0.2mm, ja tulostuslämpötila 210 astetta. Sisäisenä tukirakenteena oli verkko, ja täyttömääränä 25%. Tulostusjäljen osalta tavoitteena ei ollut huippulaatu, joten tulostaminen ei kestänyt kovin pitkään (n. 2h). Siitä huolimatta näillä asetuksilla saatiin yllättävän kestävä lopputulos – ainakaan itse en pelkillä käsilläni saanut väännettyä seinään tulevaa kulmaosaa rikki, joten arvelen että kameran sekä kaapelin painokaan ei sitä riko.

Sen tietää sitten kun se on tehty…

Alun perin suunnittelin kiinnikkeeseen lisäksi erillisen kiristyslevyn, sekä siipiruuvin sen kiristämistä varten, mutta se osoittautui varsin huteraksi ratkaisuksi. Loppujen lopuksi sivuun liitetty asennusruuvi hoiti asian paremmin, ja kamera pysyy paikoillaan varsin luotettavasti. Jälkikäteen sain myös kehitysehdotuksia kiinnikkeiden parantamiseen asiantuntevalta kollegalta (kiitos Jukka!), mutta toistaiseksi kiinnikkeet tuntuvat toimivan niiden selkeistä puutteista huolimatta. Todettakoon että tämä on karu, mutta tähän hätään toimiva ratkaisu. Tuotantoympäristöön on myöhemmin suunniteltava parempi ja miellyttävämmän näköinen versio.

Asennus

Kameroiden saamiseksi seinälle tarvittiin kuitenkin vahtimestarin vakaata kättä (kiitos Vellu!), sekä kättä pidempää. Tämän jälkeen kameroiden kytkeminen oli varsin suoraviivaista.

Mitä Hiltillä ei voi tehdä, sitä ei tarvita.

Kamerat kytkettynä USB 3.0-laajennuskorttiin  jatkokaapeleilla.

Toinen kamera kiinnitettynä tiiliseinään.

Yksi kameroista kiinnitettynä hyllyyn.

Miten tästä eteenpäin

Kameroiden asentamisen jälkeen voin aloittaa syvyyskuvien yhteensovittamisen. Kameroiden tuottamat pistepilvet on suunnattava sekä sijoitettava sopivasti niitä toistavassa ohjelmassa, että ne muodostavat yhtenäisen mallin. Vaikka kamerat ovatkin nyt asennettuna vaakasuoraan, voi olla parempi että ne asennetaankin tuotantoympäristössä pystyyn, jolloin saadaan parempi esitys kuvattavasta kohteesta. Luvassa on siis varsin mielenkiintoinen vaihe!

Seuraavassa Digit!-blogimerkinnässäni käsittelenkin päivittyvän syvyystiedon tallennusmenetelmiä, sekä miten pistepilven voi muodostaa tehokkaasti kameroiden tuottamasta syvyystiedosta.

Kirjoittaja Anssi Gröhn, tietojenkäsittelyn lehtori

Karelia-starttityötilan käytön kokemukset

Karelia-starttityötila on itseopiskelupaketti, jonka kautta opiskelija perehtyy Karelian digitaalisiin ympäristöihin ja palveluihin jo ennen opintojen alkamista. Työtilan sisältö on suunniteltu ja toteutettu eAMK-hankkeessa (2018–2019) ja sisällön rakenteessa on hyödynnetty Savonian DigiAvain-kurssia.

Karelia-starttityötila on itseopiskelupaketti, jonka kautta opiskelija perehtyy Karelian digitaalisiin ympäristöihin ja palveluihin jo ennen opintojen alkamista. Kuvat 1 ja 2 kertoo työtilojen sisällön. Sisällön arvioinnista ja toiminnallisuudesta vastasivat: hoitotyön, tietojenkäsittelyn ja kv-opinto-ohjaajat, koordinoiva opinto-ohjaaja sekä opiskelijapalvelujen ja monimuotopedagogiikan suunnittelijat.

Kuva 1. Karelia-startti-työtilan sisältö.

Kuva 2. Karelia Start Kit -työtilan sisältö.

Starttipaketit laadittiin syksyn 2018 aikana ja se pilotoitiin tammikuussa 2019 aloittaneilla suomenkielisillä opiskelijoilla. Tämän postauksen ajankohtaan mennessä Karelia-startti-työtilaan oli kirjautunut 157 opiskelijaa. Heistä 105 (miespuolisista alle 10 %) kertoi opiskelualansa: fysioterapia 18, sairaanhoitaja 29, terveydenhoitaja 10, sosionomi 38 ja polkuopiskelijoita 9 sekä väyläopiskelijoita 1. Englanninkieliseen Karelia Start Kit -työtilaan ei tämän postauksen ajankohtana ollut vielä yksikään vaihto-opiskelija kirjautunut. Kansainvälisiltä opiskelijoilta ei ole siten satu palautetta. Syksyllä 2019 aloittavat opiskelija saavat käyttöönsä pilotin myötä kehittyneen starttipaketin käyttöönsä. Kiitos opiskelijoiden runsaan palautteen annon.

Suomenkielisiltä opiskelijoilta saatua avointa palautetta:

”Paljon tärkeitä asioita samassa paketissa. Hienoa jotta paketti on käytössä koko opintojen ajan.”

”Kurssi oli mielestäni selkeä, videot olivat hyvin tehtyjä ja rauhallisesti luettuja mikä teki mukana pysymisestä helpompaa.”

”Karelia-startti ohjaa todella hyvin opiskelijaa oppilaitoksen sähköisiin järjestelmiin ja kurssi helpottaa opintojen alkaessa ymmärtämistä ja etenemistä.”

”Eri asioista oli kerrottu hyvin monipuolisesti. Suurimmaksi osaksi ohjevideot olivat hyviä ja selkeitä ja kurssi oli hyödyllinen.”

”Videotallenteet olivat toimiva valinta. Jo aikaisemman korkeakoulututkinnon suorittaneena tutut asiat kertaantuivat helposti tallenteen pyöriessä taustalla ja uudet asiat tulivat tutuiksi videota seuraamalla.”

”Sain hyvän yleiskäsityksen siitä, mistä kaikesta tulee olla tietoinen erityisesti digitaalisten järjestelmien osalta.”

”Ohjauspalvelut oli todella hyvin ja monipuolisesti kerrottu, ja yhteystiedot selkeästi siellä esillä. Opiskelutaidot oli mielenkiintoista luettavaa, varsinkin linkitetyt nettisivut. Yleisesti oli hyvin kerrottu ohjelmista mitä tarvitsee käyttää AMK opinnoissa.”

”Tekeminen opettaa aina todella paljon. Sitä kautta saa varmuutta, että homma toimii. Startissa oli paljon tehtäviä, joiden kautta näki käytännössä, kuinka se toimii. Mielestäni on loistava juttu, että kaikki tiedot löytyvät ja niihin voi palata tarkistamaan, että kuinka se homma pitikään tehdä. Tekemällä oppii ja aina voi kysyä.”

”Tietoa eri järjestelmistä oli sopivasti sekä videomateriaalia oli hyvä määrä.”

”Starttia saa tehdä silloin, kun ehtii. Voi palata uudestaan ja uudestaan asiakokonaisuuksiin, hieno juttu.”

”Eri osioiden ohjeistaminen, kuinka kirjautua eri toimintoihin oli selkeästi esitetty. Aiheet oli eritelty, joten myöhemmin on niihin helppo palata, ei tarvitse etsiä mistä löytyy mitäkin.”

”Oli mukava päästä jo nyt tutustumaan tuleviin opintoihin ja käytäntöihin. Oli mukava tehdä tunnukset kaikkialle ja nähdä lukujärjestys ym.”

”Opastusvideot tuovat visuaalista lisää ohjeistuksiin ja selostukset tunteen, että ne on tehty juuri minulle. Ennen opintoja minulla on jo jonkinlainen kuva opiskeluun liittyvistä monista osa-alueista ja uskoisin, että orientoitumispäivien antiin on helpompi päästä käsiksi.”

”Asiat tuli esille todella yksityiskohtaisesti ja ne kerrottiin tarkasti ja selkeästi. Videot oli hyödyllisiä, sillä niistä näki mitä pitää tehdä.”

”Tällainen starttipaketti on todella hyödyllinen ennen opintojen alkua. Varmaan monta kertaa tulee palattua vielä paketin sisältöön, annettuja ohjeita oli helppo seurata ja sai todella hyvää tietoa eri osioiden toiminnasta.”

”Mielestäni Karelia-startti oli selkeä ja kaikki tarvittava tieto tuli esille ja uskon että kurssi helpottaa koulun aloitusta.”

”Selkeästi jäsennelty paketti! Mielestäni näihin on helppo myös palata tarvittaessa, sillä haluamansa asian löytää nopeasti.”

Starttipaketeista tiedotettiin Karelian henkilöstöä muun muassa viikkotiedotteiden kautta ja pilotista otettiin opiksi: korjattiin opiskelijoiden havainnoimat epäkohdat ja virheet sekä epätäsmälliset ilmaisut. Syksyä varten ollaan siten valmiimpia.

Lisätietoa eAMK:n digistarttipaketeista eAMK:n sivuilla.

Kirjoittaja Maarit Ignatius

Oppimisanalytiikan kokeiluja: the data is not enough – tehtävien vaikeusasteen visualisointia

Aiemmassa blogimerkinnässäni Oppimisanalytiikan kokeiluja: kuinka lakkasin olemasta huolissani ja rakastamaan LRS:ää  käsittelin kokemuksia Learning Lockerin hyödyntämisestä. Mainitsin myös, että Learning Lockeria kokeiltiin Karelia-ammattikorkeakoulun kielten opintojen verkkokurssien datan avulla. Seuraavaksi avaan tarkemmin, miten Learning Lockerin ulkopuolisia työkaluja hyödyntäen saatiin aikaan tehtävien vaikeusasetetta kuvaava kaavio Rautalankaruotsia-verkkokurssille.

Miksi tähän on ryhdytty?

Rautalankaruotsia on itseopiskeltava ruotsin kielen verkkokurssi, joka keskittyy kielioppiin ja sisältää runsaasti automaattisesti arvioitavia tehtäviä. Automaattinen arviointi kielten yhteydessä on monilta osin haastavaa, sillä oikean vastauksen voi periaatteessa antaa monella tavalla. Moodlen automaattiset arviointityökalut sen sijaan toimivat yleensä paremmin, kun kysymykseen on tarjolla yksi ainoa oikea vastaus. Tämän vuoksi automaattisen arvioinnin tekeminen vaatii runsaasti työtä, ja siltikin joku vaihtoehto voi jäädä huomiotta. Lisäksi itseopiskeluun suunnatun verkkokurssin tehtävien on oltava selkeitä, etteivät opiskelijat turhaudu.

Rautalankaruotsin ensimmäisten toteutusten yhteydessä tehtävätarkistuksiin oli luonnollisesti jäänyt pieniä virheitä, jotka aiheuttivat opiskelijoille ylimääräistä päänvaivaa. Mutta varmuuden saamiseksi oli syytä visualisoida, mitkä tehtävistä oikeasti vaativat kehittämistä.

Tässä blogimerkinnässä esittelen, millaisella kyselyllä tieto saadaan ulos Learning Lockerin tietokannasta, sekä käyn läpi visualisoinnissa hyödynnetyn dc.js-kirjaston pääpiirteet teknisen toteutuksen näkökulmasta.

Datan hakeminen Learning Lockerin tietovarastosta

Koska Learning Locker on oppimisen tietovarasto, ja se erottelee erilaiset oppimistapahtumat xAPI-rekisterin avulla, voimme saada selville kurssitoteutuskohtaisesti kunkin opiskelijan tehtäväpalautustapahtumat.  Tieto siirrettiin moodlen lokeista Learning Lockeriin erityisen xAPI-työkalun avulla.  Learning Locker on rakennettu MongoDB-tietokannan päälle, joten voimme tehdä kyselyjä sen tietokantaan MongoDB:n tarjoaman ohjelmointirajapinnan avulla.

Hyvä! Lähdemme liikkeelle siitä millaista tietoa haluamme taulukkomuodossa, eli jotain tämän suuntaista:

Tehtävät Ongelmissa (kpl) OK (kpl)
Tehtävä 1 0 54
Tehtävä 2 30 24

Pienen aivojumpan jälkeen on hahmotettavissa, että alkuvaiheessa kaikki tehtäväpalautustiedot on ryhmiteltävä opiskelijan sekä tehtävän nimen perusteella, sekä laskettava tietueeseen yhteen summa opiskelija-tehtävä-palautustapahtumapareista. Tämän avulla saamme selville, montako kertaa opiskelija on yrittänyt kutakin tehtävää. Tästä pääsemmekin jo rakentamaan kyselyä!

Koska joudumme laskemaan tietoja yhteen sekä ryhmittelemään niitä, käytämme apuna MongoDB:n ns. aggregaatio-operaatioita. Se tapahtuu mongoDB:n yhteydessä seuraavalla tavalla:


db.statements.aggregate( [{

Ensimmäisenä haemme tietovarastosta kaikki palautustapahtumat. Verbimäärityksellä voimme rajata palautuvaan tulosjoukkoon pelkät palautukset. Tapahtumat generoinut työkalu käyttää tässä tehtäväpalautuksen yhteydessä xAPI-rekisterin submit-verbiä (http://activitystrea.ms/schema/1.0/submit). Lisäksi rajoitamme tapahtumat tiettyyn kurssiin sen URL-osoitteen perusteella, joka tallennettu tapahtuman kontekstitietotaulukkoon, ja varmistamme että tapahtuma tulee halutusta tietovarastosta.


{
$match: {
"statement.verb.id":"http://activitystrea.ms/schema/1.0/submit",
"statement.context.contextActivities.grouping.0.id" : "KURSSIN_URL_OSOITE",
"lrs_id" : mongoose.Types.ObjectId("TIETOVARASTON_ID")
}
},

Nyt meillä on haettuna kaikki tehtäväpalautusta kuvaavat oppimistapahtumat! Seuraavaksi ryhmittelemme ne opiskelijan ja tehtävän nimen perustella, sekä laskemme yhteen montako kertaa kukin opiskelija-tehtäväpari esiintyi, ja tallennamme tiedon “hits”-muuttujaan.


{
$group: {
_id: {
task: "$statement.object.definition.name.en-GB",
student: "$statement.actor.name"
},
hits: { $sum:1}}
},

Sen jälkeen tarvitsemme raja-arvon, josta päättelemme ketkä opiskelijoista ovat ylittäneet yrityskerroille hyväksyttävän kynnyksen. Käsittelemme muistissa olevan datajoukon, ja lisäämme kuhunkin problems-kentän arvolla tosi tai epätosi, riippuen siitä oliko ennalta määritetty raja ylitetty vai ei.


{
$project: {
"_id.task" : true,
hits: true,
problems : { $gt: ["$hits", RAJA_ARVO ]}
}
},

Tämän jälkeen voimme ryhmitellä tiedon pelkästään tehtävän nimen perusteella, sekä lisätä tehtävätietueeseen ongelmissa olleiden ja normaalisti edenneiden opiskelijoiden määrät laskemalla ne yhteen problems-kentän perusteella:

{
$group : {
_id: "$_id.task",
"numberOfStudentsInProblems": { "$sum": { "$cond": [ { "$eq": [ "$problems", true] }, 1, 0 ]}},
"numberOfStudentsOk": { "$sum": { "$cond": [ { "$eq": [ "$problems", false] }, 1, 0 ]}}
}
}
]);

Kysely palauttaa nyt halutun datan, joka voidaan siirtää HTML-sivulle jollakin menetelmällä, esimerkiksi express.js-kirjastoa hyödyntävän nodejs-sovelluksen avulla. Asioiden yksinkertaistamiseksi sen tekninen esittely, sekä kyselyä varten välitettävien parametrien hyödyntäminen ohitetaan toistaiseksi.

Datan visualisointi

Datasta muodostetaan siis kaavio ja taulukko. Siinä hyödynnämme apuna crossfilter-filtteröintikirjastoa moniulotteiseen datan käsittelyyn, sekä dc.js-kaavionvisualisointikirjastoa. Tätä varten tarvitsemme tietyt javascript-kirjastot mukaan sivustoon:

<script src="d3.js"></script>
<script src="crossfilter.js"></script>
<script src="dc.js"></script>
<script src="d3-queue.js"></script>
<script src="d3-fetch.v1.js"></script>

Rakennetaan seuraavaksi pohja. Ensiksi luodaan HTML-sivulle <div>-elementit palkkikaaviota sekä taulukkoa varten:

<body>
<div id="dc-bar-attempts"></div>
<div id="dc-table-attempts">
<body>

 

Kun data on saatu haettua, muodostetaan crossfilter-kirjaston avulla riippuvuudet sisältävät datajoukot. Määrittelemme tehtävädimension, sekä erilliset ryhmät ongelmatapauksille ja normaaleille seuraavasti:

var ndx = crossfilter(json);
var taskDim = ndx.dimension(d => d._id );
var problemGroup = taskDim.group().reduceSum(d => d.numberOfStudentsInProblems );
var expectedGroup = taskDim.group().reduceSum(d => d.numberOfStudentsOk );

Tämän jälkeen meillä on riittävät yhteydet datan käsittelyyn monissa eri kaavioissa.

Visualisointia varten luomme luomme datasta ensimmäisenä palkkikaavion. Dimensioksi (eli X-akselille tuleviksi arvoiksi) määritetään tehtävät, ja pinoamme kaavioiden y-akselille ongelmallisten sekä normaaleiden opiskelijoiden määrät. Tämä tuottaa meille kaavion, jossa yksi palkki esittää yhden tehtävän tilanteen graafisesti.


var barChart = dc.barChart('#dc-bar-attempts');
barChart
.width(990)
.height(400)
.mouseZoomable(true)
.legend(dc.legend().x(80).y(20).itemHeight(13).gap(5))
.elasticX(true)
.elasticY(true)
.x(d3.scaleOrdinal())
.xUnits(dc.units.ordinal)
.xAxisLabel("Tehtävät")
.yAxisLabel("Odotetujen yrityskertojen ja niiden ylitysten suhde")
.dimension(taskDim)
.group( problemGroup, "Ongelmissa olleet")
.stack( expectedGroup, "Normaalit" )

Taulukoon rakennamme kolme saraketta: tehtävän nimi, ongelmallisten tapausten lukumäärä. sekä normaalien tapausten lukumäärä, sekä määritämme lajitteluksi laskevan järjestyksen ongelmallisten tapausten lukumäärän perusteella.


var table = dc.dataTable("#dc-table-attempts");
table
.dimension(taskDim)
.columns([
{ label: 'Tehtävä', format: function(d){ return d._id;} },
{ label: 'Ongelmissa (kpl)', format: function(d){ return d.numberOfStudentsInProblems;} },
{ label: 'OK (kpl)', format: function(d){ return d.numberOfStudentsOk;} }
])
.size(1000)
.group(function(d) {return "yes";})
.showGroups(false)
.sortBy(function(d) {return d.numberOfStudentsInProblems;})
.order(d3.descending);

Taulukon kukin rivi kertoo meille numeeriset arvot, millainen tilanne yksittäisen tehtävän osalta oli palautuskertojen suhteen – montako ongelmallista ja montako normaalia tapausta.
Loppujen lopuksi käskytämme dc.js-kirjastoa piirtämään kaaviot:
dc.renderAll();

Lopputulos palkkikaaviosta voi näyttää sopivalla datajoukolla esimerkiksi tältä. Oranssi palkki kuvaa normaalisti suorittaneiden määrää, ja sininen puolestaan raja-arvon ylittäneiden määrää. Ongelmalliset tehtävät on havaittavissa selkeästi.

Taulukko puolestaan esittää saman tiedon numeerisesti.

Miten kokeilu onnistui?

Visualisoinnin perusteella on helppo havaita mitkä tehtävistä ovat hankalia ja mitkä puolestaan helpompia. Myös yksityiskohtaiset tehtävänimet ja numeeriset arvot näkyvissä taulukosta. Kaavio ja taulukko tarjoavat suoraan tiedon, mitä tehtävistä on kehitettävä, joten kehitettyä visualisointia voi pitää varsin onnistuneena. Visualisointi on myös tarpeen mukaan suoraan siirrettävissä muihin opintojaksototeutuksiin, joissa on paljon automaattisesti tarkistettavia tehtäviä. Tämä tekee siitä varsin hyödyllisen työkalun suunnittelun tueksi.

Myöhemmin tänä keväänä esittelen erilaisen aktiivisuuskaavion toteutusta, jolla saadaan seurattua opiskelijan edistymistä vaikkapa tietyn aihealueen parissa.

Kirjoittaja Anssi Gröhn, tietojenkäsittelyn lehtori

(21.3.2019 muokattu kuvia ja tekstiä)