Määrittelyä täsmennetään projektin kuluessa.
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:
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.
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.
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ää.
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.
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.
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.
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.
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.
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.
