T-106.213 Ohjelmoinnin peruskurssi L1 / OLO
Tapaus 4
Opintorekisteri
Tietojenkäsittelyopin laboratoriossa on käytössä oma
tietojärjestelmä OSR,
jonka avulla pidetään kirjaa oppilaiden suorituksista eri opintojaksoilla.
Seuraavassa on esitetty ko. järjestelmästä yksinkertaistettu
versio.
-
Jokaisesta laboratorion kurssista on kirjattu seuraavat vakiotiedot:
-
Kurssin nimi ja koodi
-
Vastaava opettaja
-
Opintoviikkomäärä (kiinteä)
-
Kurssin suorittaminen edellyttää, että on suorittanut hyväksytysti
kaikki kurssilla vaaditut osasuoritukset. Näitä
voivat olla esimerkiksi tentti, harjoitustyö, kotitehtävät,
portfolio jne.
-
Jokaisesta osasuorituksesta talletetaan sen nimi ja arvosteluperuste (arvosana
0-5 tai hyväksytty / hylätty). Osasuoritusten osia, esim. yksittäisiä
harjoitustehtäviä tai tenttitehtäviä ei kirjata tähän
järjestelmään.
-
Kurssien sisällöt ja vaatimukset voivat vaihtua silloin tällöin,
jolloin samasta kurssista voi olla useita eri versioita. Yhdessä
kurssiversiossa määritellään, mitkä osasuoritukset
(1-5 kpl) versioon kuuluvat. Esimerkiksi jonakin vuonna tiettyyn
kurssiin voi kuulua tentti ja kaksi harjoitustyötä ja seuraavana
vuonna samalla kurssilla toinen harjoitustyö korvataankin kotitehtävillä.
-
Sama osasuoritus voi olla osana useampaa kurssiversiota. Edellisessä
esimerkkitapauksessa tämä voisi tarkoittaa sitä, että
sama tenttisuoritus voidaan hyväksyä kummankin version osana.
Toisaalta, jos halutaan korostaa, että jokainen versio koostuu eri
osasuorituksista, osasuorituksen nimeen kirjataan mukaan suoritusvuosi,
esim. TENTTI2000, TENTTI2001 tms.
-
Kurssiversion yhteydessä määritellään myös
se, miten osasuoritusten arvosanoista lasketaan kurssin kokonaisarvosana.
Kullakin osasuorituksella on painoarvonsa kokonaisuudessa ja lopullinen
arvosana määräytyy painotetun keskiarvon mukaan. Arvosanalla
"hyväksytty" kirjattuja osasuorituksia ei lasketa mukaan keskiarvoon;
niiden osalta vain tarkistetaan, että ko. osasuoritus on suoritettu
hyväksytysti.
-
Vaikka kahdella eri kurssiversiolla olisi samat osasuoritukset, arvosana
voidaan laskea eri versioissa eri tavoin, koska osasuoritusten painoarvoa
voidaan muuttaa.
-
Järjestelmässä on kirjattu kaikki korkeakoulun opiskelijat
ja heistä keskeiset tiedot: nimi, opiskelijanumero ja koulutusohjelma.
-
Kunkin opiskelijan osalta on kirjattu, mitä kursseja ja niiden versioita
hän on suorittanut. Kunkin version osalta on talletettu tiedot siitä,
mitä ko. versioon kuuluvia osasuorituksia hän on suorittanut,
millä arvosanalla ja minä ajankohtana.
-
Kun järjestelmään kirjataan tietoja jonkin kurssin hyväksytyistä
osasuorituksista, järjestelmä tarkistaa kunkin tuloksissa mainitun
opiskelijan osalta, saako hän kurssista kokonaissuorituksen, ts. onko
hän suorittanut jonkin ko. kurssin version kaikki vaaditut osasuoritukset.
Jos näin on, hänelle kirjataan kurssin kokonaissuoritus ja tieto
tästä lähetetään edelleen korkeakoulun opintorekisteriin.
Tehtävät:
-
Suunnitelkaa luokkamäärittelyt tällaista järjestelmää
varten. Kuvatkaa tarvittavat luokat ja niiden suhteet sekä kuhunkin
luokkaan talletettavat tiedot.
-
Suunnitelkaa algoritmi, jonka avulla voidaan luetella annetun opiskelijan
kaikki suoritustiedot (kurssit, versiot, kokonaisarvosanat, osasuoritukset
ja niiden arvosanat).
-
Suunnitelkaa algoritmi, jonka avulla voidaan luetella tietyn kurssin kaikkien
versioiden suoritustiedot: osasuoritukset ja ketkä opiskelijat ovat
suorittaneet ko. version / osasuorituksen.
Tehtävien ratkaisuja ei tarvitse toteuttaa ohjelmina. Ratkaisut
voi esittää Javalla tai sitä muistuttavalla pseudokielellä,
jossa ei noudateta kieliopin mukaisia täsmällisiä ilmaisutapoja.
Huom. Tehtävä ei ole vallan helppo ja siihen voi olla
monenlaisia ratkaisuja. Keskustelkaa purussa eri ratkaisuista ja
niiden mahdollisista hyvistä ja huonoista puolista, mm. siitä,
miten valitut luokka- ja tietorakenteet vaikuttavat tehtävien 2 ja
3 algoritmien monimutkaisuuteen.
Suunnitelman otsake:
Oppimistavoitteet: