Tietorakenteiden ja algoritmien oppimisympäristö LEAD

Learning Environment for Algorithms and Data structures


Projektin yleiskuvaus


1. Taustaa

Projektin taustalla on Teknillisen korkeakoulun tietojenkäsittelyopin laboratoriossa 90-luvulla tehty työ, jossa on vähitellen kehitetty apuvälineitä tietorakenteiden ja algoritmien opettamiseen.

Pohjalla oleva perusjärjestelmä, TRAKLA, kehitettiin 90-91. Sen tarkoituksena oli automatisoida kurssin Tik-76.122, Tietorakenteet ja algoritmit, kotitehtävien tarkastamista. TRAKLAn perustoiminnot ovat seuraavat: Järjestelmän toimivuutta on myöhemmin parannettu lisäämällä siihen joitakin uusia toimintoja. Tärkein muutos toteutettiin 96-97, jolloin sille laadittiin WWW-pohjainen käyttöliittymä, ns. WWW-TRAKLA. Ilmoittautuminen ja tehtävien tilaaminen käy sen avulla päinsä suoraan WWW-lomakkeelta. Lisäksi tehtävät esitetään graafisessa muodossa ja ne voidaan ratkaista graafista editoria (ns. TRAKLA-EDIT) käyttäen. Valmis ratkaisu palautetaan siten, että TRAKLA-EDIT lähettää ratkaisusta sähköpostiviestin TRAKLAlle tarkastusta varten.

2. Tavoitteet

2.1 Yleisperiaatteet

Projektin tavoitteena on kehittää opiskelijoita varten oppimisympäristö, jossa he voivat opiskella eri tietorakenteiden ja algoritmien toimintaa seuraavien toimintojen avulla.

2.2 Pedagoginen näkemys opiskelijan työstä

Jotta järjestelmästä tulisi pedagogiselta kannalta mielekäs, sen pitäisi pystyä tukemaan seuraavien tavoitteiden saavuttamista Nykyinen TRAKLA / WWW-TRAKLA -järjestelmä tukee näistä tavoitteista vain ensimmäistä. Muiden tavoitteiden saavuttamista voidaan uudessa järjestelmässä tukea seuraavalla tavalla.

2.3 Järjestelmä opettajan kannalta

Opettajan kannalta järjestelmän tulee tukea seuraavia asioita:

3. Osatavoitteet

Projektissa on monia osatavoitteita, joita voidaan viedä eteenpäin irrallaan toisista osista.

3.1 Nykyisen TRAKLA-järjestelmän päivitys

Nykyisen TRAKLAn ohjelmakoodi ei vastaa tasoltaan sitä, mitä jatkossa vaaditaan. Koodia ei voi ensinnäkään antaa kansainväliseen levitykseen, koska se on osin tehty suomeksi. Toiseksi sen ylläpidettävyys ja muunneltavuus on paikoitellen huono. Parannuksia on tehty kesällä 97, mutta työ on vielä kesken. Tavoitteena on:

3.2 WWW-työkalut

Koko järjestelmästä tulee siinä määrin laaja WWW-sovellus, että on perusteltua hankkia sitä varten oma serveri. Samalla mahdollisia turvallisuusongelmia voidaan rajoittaa tähän koneeseen paremmin. Nykyisessä järjestelmässä ollaan riippuvaisia muusta ylläpidosta (TRAKLA ja WWW-TRAKLA pyörivät Niksulassa) ja mahdolliset turvallisuusaukot voivat aiheuttaa harmia muille kuin TRAKLAn ylläpitäjille.

Lisäksi tarvitaan hyvät työkaluohjelmat itse WWW-dokumenttien hallintaan.

3.3 Oppimateriaalin kerääminen yhteen paikkaan

Oppimateriaali sisältää mm. luentokalvot, prujut, linkit oheismateriaaliin, jne. Tämä kaikki tulee saada yhteen paikkaan sopivasti organisoidulla tavalla.

Tässä yhteydessä tutkitaan myös, onko mahdollista käyttää joustavasti materiaalia, joka ei ole suoraan WWW:ssä saatavilla. Esimerkkinä tästä ovat Thomas Ottmannin kehittämät algoritmiopetuksen työvälineet ja animoidut luennot.

3.4 Kokonaisuuden organisointi

Jo nykyisin Tietorakenteet ja algoritmit -kurssin kotisivun alla on sangen paljon materiaalia. Kun järjestelmä tulee merkittävästi paisumaan, tulee miettiä koko organisaatio kunnolla. Minkälaisiin moduleihin tieto jaetaan? Miten taataan tiedon ja linkkien helppo päivittäminen? Minkälainen on sivujen graafinen layout?

3.5 TRAKLA-EDITin kehittäminen

TRAKLA-EDITissä on useita kehitystarpeita. Ensinnäkin sen tulee pystyä toimimaan itsenäisenä sovelluksena, joka ei kommunikoi enää sähköpostitse TRAKLAn kanssa. Toiseksi, sen tietoturvallisuus tulee miettiä tarkasti. Kolmanneksi, siihen tarvitaan suuri joukko uusia tehtäviä, joita on jo implementoitu TRAKLAssa, mutta ei vielä editorissa. Näiden lisäksi voidaan miettiä uusia tehtäviä, joita ehkä ei lainkaan kannata toteuttaa TRAKLAan, mutta joiden graafinen havainnollistaminen TRAKLA-EDITin avulla voisi olla järkevää.

TRAKLAn tulee pystyä generoimaan tehtävien malliratkaisut siten, että TRAKLA-EDIT voi esittää ratkaisun (toimintosekvenssinä, jota opiskelija voi selata edestakaisin). Lisäksi TRAKLA voi antaa palautetta opiskelijan ratkaisuissa olleista virheistä ja TRAKLA-EDITin tulee pystyä välittämään tämä palaute oikeassa kohdassa opiskelijalle näkyviin.

TRAKLA-EDITiä voidaan käyttää oppimateriaalin tukena siten, että se tarjoaa helpon mahdollisuuden esittää vuorovaikutteinen esimerkki jonkin algoritmin toiminnasta. Verrattuna tavanomaiseen algoritmianimaatioon TRAKLA-EDITin etuna on se, että algoritmia voi kelata edestakaisin ja se, että mukaan voidaan helposti lisätä tekstuaalista selostusta, joka vaiheistetaan simulaatioesimerkin kanssa. Samaa esitysmuotoa voidaan käyttää myös palautteen antamiseen opiskelijan vastauksesta.

3.6 Algoritmianimaatio

Algoritmianimaatiota on toteutettu paljonkin eri välineillä. Tämän järjestelmän kannalta keskeinen kiinnostava väline on Helsingin yliopistossa toteutettu Jeliot, joka mahdollistaa animaation automaattisen generoinnin suoraan ohjelmakoodin perusteella. Algoritmi kirjoitetaan Javalla ja kyseessä on WWW-sovellus. Tavoitteena on integroida Jeliot mukaan tähän hankkeeseen yhdeksi opiskelijan työvälineeksi.

Tämän lisäksi voidaan kerätä linkkejä hyviin animaatioesityksiin, mitä WWW:ssä on saatavilla.

3.7 Suorituskykyanalyysi

Algoritmin suorituskyky valkenee konkreettisesti, kun koodia ajaa hyvin erilaisilla syötteillä, jotka on varta vasten suunniteltu siten, että mukana on pieniä ja isoja datamääriä ja helppoja ja pahoja tapauksia algoritmin kannalta. Tätä varten tarvitaan laaja testiaineistokokoelma kaikille systeemissä mukana oleville algoritmeille. Lisäksi tarvitaan ohjelmisto, jolla uutta testidataa voidaan generoida annettujen parametrien ohjaamalla tavalla.

Suorituskyvyn mittaamiseen tarvitaan helpot kirjastorutiinit, joiden avulla cpu-aika voidaan mitata. Systeemin pitäisi myös pystyä monitoroimaan, kuinka paljon muistia on kulloinkin varattu.

Hankalampi kysymys on se, miten annetusta algoritmikoodista voitaisiin automaattisesti laskea haluttujen operaatioiden määrät. Ratkaisuna voisi olla esim. makrokirjasto, jonka avulla operaatiot algoritmikoodissa toteutetetaan. Toinen vaihtoehto voi olla koodin esiprosessointi, jolloin siitä analysoidaan halutut asiat ja generoidaan näiden perusteella varsinainen suoritettava koodi.

Kaikkien näiden tueksi tarvitaan helppokäyttöisiä tilastollisia rutiineita, jotta tulosten luotettavuutta voitaisiin arvioida.

3.8 Opettajalle kerättävä data

Kun järjestelmässä asetetaan tehtäviä, jotka ratkotaan järjestelmän alaisuudessa, vastauksista tulee saada tilastoja niin koko kurssin osanottajien kuin yksittäisen opiskelijankin suorituksista. Tämä tulee vain opettajan käyttöön, joka voi halutessaan julkistaa niistä sopivat osat.


4. Aikataulu

Projektin alustava aikataulu jaksotetaan puolivuosittain seuraavasti. Aikataulu riippuu kuitenkin projektissa mukana olevista henkilöistä ja heidän toiveistaan.

4.1 Syksy 97

Tämän jakson aikana tehdään seuraavat asiat

4.2 Kevät 98

Tämän jakson aikana tehdään seuraavat asiat

4.3 Kesä ja syksy 98

Tämän jakson aikana tehdään seuraavat asiat

5. Resurssit

Projektin henkilöresursseihin kuuluu assistentti Ari Korhonen, lehtori Lauri Malmi ja tutkija Veikko Siivola.