Opetuksen tukijärjestelmän speksit ja toteutusluonnos

Laatinut alunperin Mari Seppä, 29.4.1999

Määrittelyä täsmennetään projektin kuluessa.

  1. Tausta
  2. Erilaiset toiminnot
  3. Arkkitehtuuri

1. Tausta

Tietojenkäsittelyn perus- ja massakursseilla on viime vuosien aikana yhä suuremmassa määrin siirrytty verkon käyttöön opetusvälineenä ja opetuksen tukivälineenä mm. tiedon jakeluun ja keruuseen. Monille kursseille on kehitetty kurssien tarpeita vastaavia apuohjelmistoja kurssien oman henkilökunnan voimin, mikäli näillä on ollut tähän resursseja. Tyypillisiä toimintoja ovat olleet harjoitustöiden jakelu, palauttaminen ja mahdollisesti automaattinen tarkistaminen sekä työryhmien, aikataulujen ja palaverien hallinta.

Tietojenkäsittelyopin laboratorion ja Tietoliikenne- ja Multimedian laboratorion yhteisessä opetuksen kehittämispäivässä, joka pidettiin 1.2.99, todettiin tässä suhteessa konkreettisen yhteistyön tarve. Eri kursseille on toteutettu useita kirjavia ja monessa suhteessa päällekkäisiä järjestelmiä. Toisaalta, koska nämä on kehitetty juuri tietyn kurssin tarpeisiin, ne eivät usein sovellu sellaisenaan muille kursseille, vaan tarvitaan muutostöitä. TKO-laboratorion opetuksen kehittämistyöryhmä päätti ottaa tämän asian yhdeksi painopistealueeksi. Tarvitsemme yhteisen ja yleiskäyttöisen opetuksen tukijärjestelmän, joka pohjautuu sähköpostin ja WWW:n käyttöön.

Ns. integroituja opetus-/oppimisjärjestelmiä on viime aikoina kehitetty vilkkaasti ja työryhmän jäsenet ovatkin perehtyneet niihin mm. Kohti Virtuaali-TKK:ta -hankkeen yhteydessä sekä Oulussa pidetyssä Campus Futurum -seminaarissa. Yhteinen johtopäätös on ollut se, että monista eduistaan huolimatta integroidut järjestelmät eivät sovellu laajamittaiseen käyttöön monilla kursseilla. Perusteluna tälle, ehkä yllättävällekin väitteelle ovat seuraavat asiat:

2. Erilaiset toiminnot

Järjestelmän käyttöönoton konfigurointi kursseille on Unix-pohjainen, joka pystyy hyödyntämään konfiguraatiotiedostoja. Kurssin aikainen hallinta tulisi painottua WWW-pohjaiseen tietojen selaukseen, lisäämiseen, poistamiseen ja muuttamiseen.

2.1 Ilmoittautuminen

Ilmoittautumisia on tunnistettu olevan kahta erilaista.

  1. Kurssille ilmoittautuminen.
  2. Kurssin osiin, kuten harjoitusryhmiin tai palavereihin, ilmoittautuminen.

Työryhmän tai -parin haku ei pääosiltaan kuulu ilmoittautumiseen ja siten selitetäänkin työryhmien hallintaa käsittelevässä osuudessa (osuus 2.2).

2.1.1 Kurssille ilmoittautuminen

Ilmoittautuminen voi olla monitasoinen ja se voi sisältää muiden toiminnallisuuksien käynnistämistä tai valmistelemista. Ensimmäinen toteuttamisvaihe sisältää vain yksitasoisen ilmoittautumisen.

Opetushenkilökunnalle toteutettavat toiminnallisuudet

Opiskelijan ilmoittautumislomake luodaan kurssin opetushenkilökunnan puolesta. Opetushenkilökunnan jäsen valitsee kolmiosaisesta WWW-lomakkeesta haluamansa osuudet ilmoittautumislomakkeeseen.

Lomakkeen ensimmäisessä osassa ovat pakolliset ja kursseilla usein käytetyt tiedot.

Nämä ovat oletusarvoisesti valittu ilmoittautumislomakkeeseen vaikkakin ne voidaan erikseen poistaa.

Lomakkeen toisessa osassa ovat valinnaiset ilmoittautumiseen liitettävät osuudet.

Kolmannessa osuudessa opettaja voi määritellä jonkun oman ilmoittautumisen yhteyteen liittettävän lomake-osuuden.

Opetushenkilökunnan jäsen voi lomakkeen alkuun lisätä haluamansa tekstin alustaakseen ilmoittautumislomakkeen täyttöä. Hän voi myös määritellä haluttaessa eri osuuksien, kuten kysymysten, järjestyksen.

Ilmoittautumislomakkeen luonti hoidetaan WWW-lomakkeella, joka käsitellään Perl:llä kirjoitetun cgi-bin -skriptin avulla. Valintaan ovat vaikuttaneet useat asiat.

Edellä esitetty ilmoittautumislomakkeen luonnnin käsittelytapa on helpoin ja nopein implementoida tässä vaiheessa. Myöhemmin voidaan käsittelyä muuttaa ilman, että mitään muita osia tarvitsee muuttaa.

Tämän ilmoittautumislomakkeen luonnin kohdalla tehdään yhteistyötä Veikko Siivolan kanssa, joka luo kurssien palautejärjestelmään hyvin samanlaista toteutustapaa.

Opiskelijoille toteuttavat toiminallisuudet

Ilmoittautumisessa luodaan opiskelijasta tiedot tietokantaan ja mahdollisesti pyydetään muita erillisiä tietoja kurssin suorittamista varten. Nämä erilliset tiedot ajetaan joko heti erillisten ohjelmien läpi tai talletetaan sopivaan tietokantaan myöhempää käsittelyä varten.

Myös opiskelijan antama ilmoittautuminen hoidetaan WWW-lomakkeella, joka käsitellään Perl:llä kirjoitetun cgi-bin -skriptin avulla edellä esitetyistä syistä.

Tulevaisuus

Seuraava askel ilmoittautumisen kehityksessä on kahden asteen ilmoittautuminen, jossa ensimmäinen osa voi sisältää esitentin ja/tai esimerkiksi parin tai ryhmänhakuun liittyvät osuudet.

2.1.2 Kurssin osaan ilmoittautuminen

Kurssin osiin ilmoittautuminen hoidetaan myös WWW-lomakkeen avulla, joka käsitellään Perl:llä kirjoitetun cgi-bin -skriptin avulla. Tähän on olemassa jo valmis ohjelma, jonka käytettävyyttä laajemmin tarkastellaan ja mahdollisesti laajennetaan käyttöön sopivaksi.

Nykyisellään kurssin osaan ilmoittautuminen sisältää tietokannan, jonne opetushenkilökunta ensin lisää päivämäärän ja kellonajan. Tästä tietokannasta luodaan WWW-sivu, jossa opiskelija voi merkitä tietyn kellonajan itselleen ja varaa sen lisäämällä opiskelijanumeronsa ja painamalla varaus-painiketta.

Työkaluja tähän tarvitsee luoda lisäämään tuo päivämäärä ja kellonaika sekä selaamaan jo varattuja aikoja ja niiden varaajien tietoja.

2.2. Työryhmien hallinta

Työryhmien hallinta jakautuu kahteen selvästi erilaiseen osaan.

  1. Työryhmien luonti
  2. Työryhmien hallinta ja käyttö

2.2.1 Työryhmien luonti

Työryhmien luonti on osalta työryhmän tai -parin muodostaminen ja toisaalta ryhmätietokannan luonti.

Työryhmän tai -parin muodostamismenettely

Ilmoittautumisen tai erillisen lomakkeen yhteydessä opiskelija voi ilmaista halunsa löytää työryhmä tai -pari. Tämä tieto merkitään opiskelijatietokantaan.

Ryhmien tai parien jako voidaan hoitaa joko automaattisesti tai kurssin vastaavan opettajan määrittelemien kriteerien mukaan parien tai ryhmien valinta opiskelijoille. Tämä sisältää jos minkälaisia vaatimuksia ja toivomuksia. Ennenkuin monimutkaista ohjelmaa aletaan suunnitella, tulee tehdä laajempi selvitys toivomuksista ja vaatimuksista sekä punnita erilaisia toteutusmahdollisuuksia.

Opetuksen tukijärjestelmän ensimmäisessä osuudessa toteutetaan tästä vain hyvin minimaalinen osa, jossa paria tai ryhmää haluavien nimistä, sähköpostiosoitteista ja lisäkommentteista muodostetaan WWW-sivu tietokannan tietojen perusteella. Tähän liittyy opiskelijan mahdollisuus poistaa itsensä kyseiseltä sivulta parin tai ryhmän löydyttyä.

Ryhmätietokannan luonti

Kaikissa tapauksissa ei tarvita ryhmätietokantaa, vaikka opiskelijat tekisivätkin töitä pareina. Tietokantaa tarvitaan vain siinä tapauksessa, että ryhmää käytetään yhtenä kokonaisuutena tuloksien, yhteydenpidon tai muun tavoitteen saavuttamiseksi.

Ilmoittautumisen yhteydessä opiskelijan ilmoittama parityö voi merkitä vain vaadittavien kotitehtävien määrän erilaisuutta yksinsuorittajiin verrattuna. Tällöin ei tarvita erillistä ryhmätietokantaa, ellei haluta esimerkiksi lähettää ryhmätunnisteelle sähköpostia tai tuloksia.

Tietokanta on tyypiltään samanlainen kuin opiskelijatietokanta. Siinä missä opiskelijatietokannan opiskelijan primäärisenä tunnistuksena toimii opiskelijanumero, ryhmätietokannassa tunnisteena on ryhmän tunniste. Jokainen opiskelija on oma kokonaisuutensa sen sijaan, että jokainen ryhmä on määritelty kokonaisuudeksi. Näin ryhmätietokantaan voidaan liittää opiskelijaspesifistä tietoa, kuten hänen roolinsa ryhmässä, vaikkakin yhdistävä tekijä koko ryhmällä on ryhmätunniste.

Ryhmätietokannassa on määritelty kolme erityyppistä kenttää.

  1. Määriteltyihin käyttötarkoituksiin, kuten ryhmä-, opiskelija- ja ryhmän tutorin tunnisteeseen.
  2. Varattuihin kenttiin, jotka otetaan tulevaisuudessa käyttöön yllä olevaan tarkoitukseen.
  3. Vapaasti käytettäviä kenttiä, joita opetushenkilökunta voi käyttää niin paljon kuin haluaa.

Käytännössä ryhmätietokanta laajenee sen mukaan kuin sinne halutaan tietoa. Se on kuitenkin määrämuotoinen, josta samoista paikoista löytyy kaikilla kursseilla tarvittavat ryhmätiedot.

Ryhmätietokanta voidaan luoda kurssin ilmoittautumisen yhteydessä tai erillisen lomakkeen avulla.

Ennen WWW-liittymän rakentamista, tulee tarkemmin selvittää tarvittavat kentät tietokannassa. Tähän liittyen kannattaa erityisesti haastatella Käyttöliittymät- ja Ohjelmatyö-kurssien henkilökuntaa.

2.2.2 Työryhmien hallinta ja käyttö

Tietokantaan kohdistuvia tarvittavien toimenpiteiden selvittämiseksi tulee haastatella Käyttöliittymät- ja Ohjelmaprojekti-kurssien henkilökuntaa. Toimenpiteiden teko tulee olla mahdollista .htaccess-suojauksen takaa WWW-liittymän avulla.

Ainakin seuraavien toimenpiteiden tulee olla mahdollisia.

2.3 Harjoitustehtävät

Harjoitustehtävät ovat varsinkin tietotekniikassa erittäin tärkeitä. Taitoja ei mitata rakennettavilla laitteilla tai suoritettavilla kemiallisilla ilmiöillä vaan riittävä osaaminen kerätään ja osoitetaan harjoitustöillä. Harjoitustöiden hallintaan liittyy seuraavia osia.

  1. Harjoitustöiden jako
  2. Harjoitustöiden palautus
  3. Harjoitustöiden arviointi

2.3.1 Harjoitustöiden jako

Harjoitustöiden jakamistapoja on useita. Jos jakamistapa on WWW, jossa samat tehtävät ovat kaikkien opiskelijoiden tehtävänä, ei jakamiseen tarvita erityisiä apuvälineitä. On kuitenkin tilanteita ja tapoja, jossa apuvälineitä tarvitaan.

  1. Tehtäväaiheen varaus, jonka varausmäärä on rajoitettu.
  2. Tehtäväaiheen varaus, missä kysytään opiskelijalta aihe ja perustelu. Varauksen hyväksyy myöhemmin opetushenkilökunnan jäsen.
  3. Automaattinen kotitehtävien yksilöinti ja lähetys opiskelijalle.
  4. Erikoistuneet aihevaraukset, kuten kursseilla Ohjelmatyö ja Käyttöliittymät.

Osuuksista 1-3 on olemassa jo eri kursseilla käytettäviä versioita. Näistä versioista tehdään mahdollisimman toimivat mahdollisimman laajan kurssivalikoiman käytettäväksi. Sekä opetushenkilökunnan että opiskelijoiden WWW-lomakevaraukset ja hyväksymiset tehdään tässä vaiheessa.

Joissakin tapauksissa joidenkin harjoitustöiden jakoon, palautuksiin ja muihin toimintoihin tulee olla rajoitettu pääsy. Mekanismeina .htaccess ja SSL ovat riittävät, mutta näihin liittyen tulee rakentaa helpot tavat luoda pääsyä rajoittavia sivukokoelmia ja niille helposti pääsy sallitun ryhmän jäseniltä.

Myöhemmin katsotaan yksilöllisiä kursseja ja pyritään määrittelemään mitä yhteisiä piirteitä näiden aiheiden ja tehtävien jaossa on. Tätä varten haastatellaan isompaa osaa tietotekniikan osaston kurssien opetushenkilökunnasta.

2.3.2 Harjoitustöiden palautus

Harjoitustöiden palautuksissa mahdollistetaan tuttujen työkalujen kautta palautettavat kotitehtävät. Näitä tuttuja työkaluja ovat sähköposti ja WWW.

Harjoitustyön palaus WWW:n kautta onnistuu parhaiten WWW-lomakkeen avulla oli se sitten pitempi kirjoitettava vastaus tai lyhyt URL, joka haetaan samantien kotitehtäväpalautuksena.

Harjoitustyön palautus sähköpostitse mahdollistetaan tietyn yleisen muodon avulla. Opetushenkilökunta voi myös valita PGP-salattujen kotitehtävien palautuksen.

Kaikille näille tavoille on olemassa jo ohjelmia ja malleja. Tämän osuuden tavoitteena on saada palautukset samaan käsiteltävään muotoon, joka voidaan sitten ohjata joko talletukseen tai lisäkäsittelyyn.

Erityisesti näissä palautustavoissa katsotaan seuraavien kurssien palautusjärjestelmiä ja määritellään näistä tarpeeksi laajat yleisesti kurssien palautustapoihin sopivat mekanismit.

2.3.3 Harjoitustehtävien arviointi

Yhä kasvavat opiskelijamäärät pakottavat hakemaan tapoja tarkastaa suorituksia mahdollisimman automaattisin keinoin. Pisimmälle kehitetty järjestelmä on tällä hetkellä Ceilib, joka on trakla-kurssin käytössä.

Tässä yhteydessä kannattaa etsiä maailmalta muitakin automaattisia avoimesti ja suljetusti levitettäviä tarkastusmekanismeja.

Tämän lisäksi, jos ei vastaavaa muualta löydy, tulee kehittää ohjelma, joka pystyy hoitamaan helpohkot yhdistämis-, vaihtoehto, ja yksi sanavastauksien tarkistamisen. Tämän lisäksi tulisi määritellä yleiset kysymysmallit sekä tenteissä että kotitehtävissä eri kursseilla ja miettiä keinoja automatisoida niiden tarkastus mahdollisimman pitkälle.

2.4 Opiskelijatietokanta

Kohta 2.2 esitteli työryhmien hallinnan sekä työryhmätietokannan. Opiskelijatietokanta rakennetaan samanlaisin menetelmin avoimeen yleisesti hyväksi todettuun tietokantapohjaan.

Tällä hetkellä harkinnan alla on GnuDB.

Tapahtumakalenteri

Oleelliset tapahtumat ja deadlinet selityksineen ja linkkeineen tulee olla tapahtumakalenterissa. Tutkitaan sitä hyötyä, mikä mahdollisesti saadaan irti, jos tämä kalenteri sijoitetaan tietokantamuotoon. Toteutus tästä tehdään vasta myöhemmin.

2.6 Tilastointi

Tietokanta ja erityisesti vuosittain kerättävä tieto opiskelijoista mahdollistaa mielenkiintoisten tietojen keräyksen kurssin opiskelijaprofiilista. Tätä voi käyttää rahoituksen hankkimiseen sekä opetuksen oikeaan kohdistamiseen.

Tällä hetkellä tähän ei kehitetä työkaluja. Asia pidetään kuitenkin mielessä ja kerätään opetushenkilökunnalta tietoja siitä, minkälaisista tilastoista he ovat kiinnostuneet.

2.7 Konetentit

Konetentit ovat tapa helpottaa tarkastajan työtä. Konetentillä voidaan myös testata opiskelijan käytännön taitoja, kuten reititysongelman selvittämistä. Tämän lisäksi konetentissä on mahdollista luoda yksilöllinen tentti, joten vilppiä ei voi tapahtua.

Konetenttijärjestelyihin liittyy monta osaa. Huomioon pitää ottaa monta asiaa.

Tenttijärjestelyissä huomioitavia asioita.

Sisällöllisesti huomioitavia asioita.

Tentin tarkastukseen liittyviä asioita.

TML:ssä on koneellista tenttiä käytetty syksystä 1998. Siitä on ollut erittäin positiivisia kokemuksia sekä opetushenkilökunnan että opiskelijoiden puolelta. Katastrofitilanteista (koneet eivät toimi) on selvitty kunnialla. Erilaisia tenttimahdollisuuksia on kokeiltu.

Konetentti on erittäin laaja kokonaisuus ja siihen ei puututa projektin alkuvaiheessa. Konetentin spekseista tehdään myös erillinen osuus, koska niissä pitää ottaa huomioon monia eri asioita.

2.8 Tiedotus ja yhteydenpito

Oleellisena osana kurssien toimintaan kuuluu tiedotus ja yhteydenpito. Yhteydenpitoa voi olla opetushenkilökunnan ja opiskelijoiden kanssa sekä opiskelijoiden ja opetushenkilökunnan kesken. Tämän lisäksi myös opiskelijoista sekä opetushenkilökunnasta muodostuvat ryhmät voivat kommunikoida toistensa kanssa ja keskenään.

Tiedotuskanavia ovat WWW, sähköposti ja keskustelu- ja uutisryhmät. On olemassa jo ohjelmia, jotka lähettävät tiedotuksia kaikille tai osalle seuraavista vaihtoehdoista.

Kyseiset ohjelmat tulee valmistella laajemman opetushenkilökunnan käyttöön.

2.9 Palautteen motivointi, keruu ja käsittely

Palautteen motivoinnista, keruusta ja käsittelystä on olemassa erillinen spesifikaatio.

3. Arkkitehtuuri (luonnos)

3.1 Topologia

Projektissa toteutetaan kolme erilaista topologiavaihtoehtoa.

  1. Yksi kurssin tunnus.
  2. Monen eri kurssin tunnus samassa koneessa.
  3. Kurssilla on toiminnallisuus jaettu kahteen tai useampaan osaan.

3.1.1 Yksi kurssin tunnus

Yksinkertaisin järjestelmän asennus tapahtuu yhdelle Unix-tunnukselle. Tätä tapausta käytetään, jos samassa Unix-koneessa ei ole muita kursseja, jotka käyttävät järjestelmää.

Tähän on luotava asennusskripti, joka luo tarvittavat hakemistot kurssille sekä asentaa tarvittavat tiedostot ja ohjelmat kurssin profiilin mukaan.

Kyseinen tunnus toimii kurssin tunnuksena. .procmailrc:ssä määritellään kurssille tulevien sähköpostien jakaminen eri kurssin haluamille palveluille.

Varmuuskopiot

Kaikki kurssin tunnukselle tulevat sähköpostit tallentuvat tmp-hakemistossa tiedostoon tmp.skriptin_nimi.prosessinumero. Tämä tmp-tiedosto poistetaan vasta kun sähköpostia ajava skripti on tehnyt tehtävänsä ilman odottamattomia virheitä.

Kyseisen tmp-tiedoston nimi helpottaa virheiden korjaamista.

3.1.2 Monen eri kurssin tunnus samassa koneessa

Useimmiten monta eri kurssia käytää samaa Unix-konetta. Näin ollen ei kannata samoja ohjelmia asentaa uudestaan jokaiselle tunnukselle, vaan niihin tehdään kurssin tunnukselta symbolinen linkki.

Kurssin kotihakemistoon luodaan asennusskriptin avulla hakemistoja ja symbolisia linkkejä. Käytännössä kurssin palveluiden käyttö ei eroa ollenkaan siitä, että kyseinen kurssi olisi ainut kurssi koko koneella.

Ylläpito helpottuu tällaisen järjestelyn avulla samoin kuin levytillaa säästyy. Päivitykset tarvitsee vain tehdä sen tunnuksen tiedostoihin, joihin symboliset linkit osoittavat.

Varmuuskopiot

Varmuuskopiokäytäntö on sama kuin yhdellä tunnuksella koneessa.

3.1.3 Hajautettu toiminallisuus useassa koneessa

Kurssi voi haluta, että kurssin toiminallisuus on hajautettu. Tämä voi johtua palomuurista tai siitä, että halutaan sallia vain tietyt toiminnot tietyille assistenttiryhmille.

Käytännössä käytetään kohdan 3.1.1 ja 3.1.2 mukaista mallia kaikissa tunnuksissa, jonne palvelut on hajautettu. Kurssille valitaan ensimmäinen sisäänpääsytunnus, jonka kautta sähköpostit jaetaan eri tunnuksille. WWW-palveluissa tulee skriptin vastaanottajakone tietää lomaketta tehdessä.

Tämän järjestelyn avulla voidaan esimerkiksi sijoittaa kurssin tietokanta johonkin tiettyyn koneeseen ja kaikki toiminnot, jotka eivät sitä vaadi, toiselle tunnukselle.

Varmuuskopiot

Itse koneessa käsiteltävien sähköpostien ja lomakkeiden varmuuskopiointi hoidetaan kuten kohdassa 3.1.1 ja 3.1.2. Ne postit, jotka tulevat sisäänpääsytunnukselta säilytetään kuitenkin sisäänpääsytunnuksella varmuuskopiotiedostossa backup.kone kunnes kone, joka lopulta käsittelee sähköpostin lähettää poistopyynnön onnistuneen käsittelyn jälkeen.

3.2 Tietokantajärjestely

Tietokantajärjestelyistä ennemmän Ari Korhosen toimesta.

Käytännössä isoin ja käytetyin tietokantamme on opiskelijatietokanta. Sen lisäksi on tarvittavia muita, kuten ryhmä-, assistentti ja esimerkiksi tehtävätietokanta.

Sekä kyselyihin että tietokantaan lisäyksiin ja muutoksiin luodaan yleispätevä rajapinta. Tärkeää on, että määritellään sekä sähköposti, WWW ja muulla tavalla tulevat kyselyt samanlaiseen muotoon, jotka sitten voidaan edelleen antaa palaselle, joka suorittaa itse kyselyn, muutoksen tai lisäyksen.

**********************************