English version of the materials are work in progress!

Expect bugs, typos, and other issues. The English version is expected to be completed during spring 2026.

Final Work

The final work is one of the assessable performances of this course. In the final work, your task is to design and optimize a SQLite relational database for a domain of your choice.

You can find detailed instructions and grading criteria for the final work below. Summary of instructions:

  • The final work is graded on a scale 1–5. The grade is determined criteria-based: the work has three levels of requirements, and fulfilling all requirements of a level entitles to the grade of that level. Partial fulfillment of levels and errors affect the grade.
  • The final work is an individual performance. However, you can ask for help from other students and course teachers.
  • The final work can be done and submitted in the TIM system or as a separate file to the teachers' email list ().
  • The deadline for submitting the final work is 15.3.2026. Contact teachers well in advance if you cannot make it by the deadline.

Ohje

Open final work instructions by clicking here

You can find detailed assignments below. You can do the tasks directly in the TIM system or submit them in a way of your choice (e.g. document, git repository, ZIP file, own website). With the link below you can quickly get to the final work submission:

Submit final work and check feedback

Tasks

Task 1: Database Requirements Specification

Ensimmäisenä tehtävänä on valita itse harjoitustyön aihe ja kirjoittaa sen perusteella tietokannalle vaatimusmäärittely.

Harjoitustyössä suunnitellaan ja toteutetaan relaatiotietokanta johonkin (toivottavasti todelliseen) käyttötarkoitukseen. Mieti siis aluksi, millaiselle kohdealueelle haluaisit suunnitella tietokannan. Voit vaikkapa ottaa jonkin valmiin sovelluksen (WhatsApp, Spotify, Discord) tai alustan (Facebook, X, Instagram) ja mallintaa sen toimintaan tarvittavan yksinkertaisen tietokannan. Jos sinulla on toisaalta jokin peli tai oma ohjelma, jonka olet tehnyt, voit suunnitella sille relaatiotietokannan. Jos kaipaat apua tai inspiraatiota, tutustu ohjeessa oleviin mallikohdealueisiin.

Muista pitää asiat yksinkertaisina! Tällä opintojaksolla harjoitellaan tietokantojen suunnittelua, joten tietokannan ei tarvitse olla heti aluksi valtava.

Kun olet valinnut kohdealueen, kirjoita lyhyt kohdealueen kuvaus ja määrittele, mitä tietoja tietokantaan tulee tallentaa, jotta se täyttää kohdealueen tietokantatarpeet.

Voit muokata vaatimusmäärittelyä milloin tahansa! Harjoitustyön edetessä saatat ehkä haluta tarkentaa kohdealuetta tai tietokannan sisältöä, jos vaikkapa huomaat puutteita tai haluat yksinkertaistaa työtäsi. Tärkeintä on, että kuvauksesi on ajan tasalla.

# harj_t1

Task 2: Conceptual Modeling

Piirrä seuraavaksi ER-kaavio, joka mallintaa tehtävän 1 vaatimusmäärittelyssä esitetyn tietokannan tarpeen ydinkäsitteitä ja niiden välisiä suhteita.

Ota huomioon kaikki vaatimusmäärittelyssä esitetyt kohteet, ominaisuudet ja suhteet ja mallinna ne ER-kaaviossa vastaaviksi kohdetyypeiksi, attribuuteiksi ja suhdetyypeiksi. Mieti ER-kaaviota piirtäessäsi kohdealuetta ja käy tarpeen mukaan tarkentamassa tehtävän 1 tietokannan vaatimusmäärittelyä. Olennaista on, että tietokanta palvelee kohdealueen tarpeita mahdollisimman hyvin.

Voit piirtää ER-kaavion joko käsin, erillisellä piirto-ohjelmalla tai käyttämällä kurssin ER-kaavioeditoria. Huomaa, että voit laajentaa piirtoalan käyttämällä editorissa olevaa Laajenna-painiketta. Muita sopivia piirto-ohjelmia ovat esimerkiksi ERDPlus ja DrawIO.

# harj_t2
# harj_t2_kuva

Task 3: Transformation to Relation

Seuraavaksi ota tehtävässä 2 piirretty ER-kaavio ja transformoi se relaatiotietokannan kaavaksi.

Sovella transformoinnissa Luvussa 3.2 määriteltyjä transformointisääntöjä. Merkitse relaatiokaavaan relaatioiden nimet, relaatioihin kuuluvat attribuutit ja relaatioiden perusavaimet.

Merkitse relaatiot alla olevaan tekstilaatikkoon. Käytä seuraavia merkintöjä:

R ({|a|}, b, c)        - Relaatio R, jolla on perusavain a sekä attribuutit b, c
S ({|a, b|}, c)        - Relaatio S, jolla on perusavaimet a, b sekä attribuutti c
Kissa ({|nimi|}, ikä)  - Relaatio Kissa, jolla on perusavain nimi ja attribuutti ikä

Sen jälkeen luettele myös relaatioiden viiteavaimet ja mihin relaatioihin ne viittaavat. Viiteavaimet määrittävät relaatioiden väliset suhteet (Luku 3.1). Määritä siis, mitkä relaation attribuutit ovat peräisin toisesta relaatiosta.

Merkitse viiteavaimet relaatiokaavan jälkeen seuraavasti:

R.a -> S.a                - Relaation R attribuutti a viittaa relaation S attribuuttiin a
R.b -> S.b                - Relaation R attribuutti b viittaa relaation S attribuuttiin b
Eläin.nimi -> Kissa.nimi  - Relaation Eläin attribuutti nimi viittaa relaation Kissa attribuuttiin nimi
# harj_t3

Task 4: Defining Database with SQL Language

Kun ER-malli on transformoitu relaatiotietokannan kaavaksi, voidaan kaavan perusteella luoda tietokanta ja tallentaa siihen dataa.

Määrittele relaatiotietokannan kaavasi perusteella SQLite-tietokanta käyttäen SQL:n tietokannan rakenteen määrittelykieltä (DDL, Luku 4.3). Jokaiselle relaatiokaavassa olevalle relaatiolle tulee määrittää oma tietokantataulu. Ota tietokantataulujen määrittelyssä huomioon attribuuttien tyypit, pääavaimet, viiteavaimet sekä mahdolliset muut eheysrajoitteet.

Lisää tämän jälkeen tietokantaasi mallidataa (Luku 4.2). Mallidataa kannattaa olla riittävästi, jotta saat tehtyä tehtävän 5 hyvin.

Kirjoita SQL-lauseet alla olevaan palautuslaatikkoon. Huomaa, että tehtävälaatikkoon on jo lisätty apukoodia, joka alustaa tietokannan ennen koodisi suorittamista.

Voit myös samalla testata, että data tuli lisätyksi, suorittamalla yksinkertaisia SELECT * FROM taulu; -komentoja. Huomaa, että oletuksena TIM tulostaa No result, jos et suorita mitään hakukomentoja.

# harj_t4

Task 5: Essential SQL Search Queries

Seuraavaksi esitä 1–5 esimerkkiä kohdealueen kannalta olennaisista SQL-kyselyistä, joilla dataa haetaan tietokannasta.

Mieti, millaisia käyttötapauksia tietokannalle olisi kohdealueella. Kirjoita sitten näitä käyttötapauksia vastaavat oleelliset SQL-kyselyt. Voit kirjoittaa haku- (SELECT), poisto- (DELETE) ja muokkauskyselyjä (UPDATE). Datan hallintaan liittyvien SQL-kyselyiden syntaksia on kuvattu Luvussa 4.2.

Esitä esimerkkikyselyt alla olevissa palautuslaatikoissa (1 esimerkki/laatikko). Lisää samalla lyhyt kuvaus siitä, mitä SQL-kysely tekee ja mikä on sen käyttötarkoitus.

Vinkkejä:

  • Hakulauseissa pyri palauttamaan vain ne sarakkeet, jotka ovat käyttötapauksen kannalta oleellisia. Jos palautat taulun kaikki sarakkeet, perustele kommenteissa valintasi.
  • Huomaa, että hakulauseissa voit tehdä laskutoimituksia ja ryhmitellä tuloksia. Näin voit rakentaa monipuolisia kyselyitä.
  • Muista, että poisto- ja muokkauslauseissa voidaan käyttää ehtoja. Tällä tavoin voit muodostaa kohdealueen kannalta hyödyllisiä massamuokkaus- ja massapoistokyselyitä.
  • Voit alustaa tietokantasi takaisin perustilaan painamalla "Aja" tehtävän 4 palautuslaatikossa. Tämä palauttaa tietokantasi takaisin oletustilaan.

Add example 1

Add example 2

Add example 3

Add example 4

Add example 5

Task 6: Finding Functional Dependencies

Palataan vielä tehtävässä 3 muodostettuun relaatiotietokannan kaavaan.

Tarkastele funktionaalisia riippuvuuksia, jotka esiintyvät relaatiotietokannassasi. Esitä kaikki tehtävässä 3 määrittelemissäsi relaatioissa olevat epätriviaalit funktionaaliset riippuvuudet.

Muista, että funktionaalinen riippuvuus tarkoittaa, että jonkin relaation attribuutin arvo voidaan määrittää jonkin toisen relaation attribuutin (tai attribuuttijoukon) arvon perusteella (ks. Luku 5.1). Toisin sanoin, tässä tehtävässä sinun tulee esittää, millä tavoin eri tietokannan data riippuu toisesta datasta.

Tässä vaiheessa saatat joutua tekemään tarkennuksia vaatimusmäärittelyyn. On suositeltavaa, että aloitat funktionaalisten riippuvuuksien tarkastelun ja teet epäselvissä tapauksissa tarkentavia muutoksia tehtävään 1.

Voit palauttaa tehtävän alla olevaan tekstilaatikkoon tai kuvana tekstilaatikon alla olevaan palautuslaatikkoon. Jos palautat tekstivastauksen, merkitse funktionaaliset riippuvuudet seuraavasti:

RELAATIO1:   - Relaation "RELAATIO1" funktionaaliset riippuvuudet listataan alla
{X} -> {Y}     - Esimerkki 1: Attribuutti Y riippuu funktionaalisesti attribuutista X

RELAATIO2:   - Relaation "RELAATIO2" funktionaaliset riippuvuudet listataan alla
{X, Y} -> {Z}  - Esimerkki 2: Attribuutti Z riippuu funktionaalisesti attribuuteista X ja Y

Jos palautat vastauksen kuvana, on suositeltua, että käytät Harjoituksessa 5.2 esitettyä merkintätapaa:

# harj_t6
# harj_t6_kuva

Task 7: Normalization of Relations

Tarkastele nyt relaatiotietokantasi jokaisen relaation normalisointia käyttämällä edellisessä tehtävässä löytämiäsi funktionaalisia riippuvuuksia. Tutki, missä normaalimuodossa kukin relaatiosi on.

Tämän kurssin kannalta riittää, että tarkastelet normaalimuotoja 1NF, 2NF, 3NF, BCNF sekä 4NF (ks. Luku 5.3).

Jos jokin relaatio ei ole 4. normaalimuodossa, esitä, mitä muutoksia tekisit relaatiomallin kaavaan.

Voit kirjoittaa vastauksesi alla olevaan tekstilaatikkoon.

# harj_t7

Final Work Submission

Before submitting:

  • Ensure that you have answered the tasks according to the assignment. You can freely change the domain description and database requirements before submitting the work.
  • Familiarize yourself once more with instructions at the top of the page and ensure that your final work fulfills in your opinion at least criteria of level 1.
  • You can ask the teacher for feedback in guidance sessions.
  • Submit the work for grading only when you believe it is fully ready. You cannot edit the final work anymore after submission.
  • Efforts are made to grade the work within about two weeks of submission. Assessment and grade are recorded on this page. You will receive a notification when the work is graded.

When you think you are ready to submit:

Huomautus

You have not registered as a student of this year's course or you have logged in with other than your JYU account. Only students registered for the course this year can submit the final work.

Try logging in to TIM system again using HAKA login.

If you have already logged in with your JYU account, ensure that you have a valid registration for the course. In unclear situations contact course teachers: .

Please to interact with this component.

PalautettuPvm

{}

Harjoitustyö

Harjoitustyö on tämän opintojakson yksi arvioitavista suorituksista. Harjoitustyössä tehtäväsi on suunnitella ja optimoida SQLite-relaatiotietokanta itse valitsemallesi kohdealueelle.

Löydät harjoitustyön yksityiskohtaiset ohjeet ja arviointikriteerit alta. Yhteenveto ohjeista:

  • Harjoitustyö arvioidaan arvosanalla 1–5. Arvosana määräytyy vaatimusperusteisesti: työssä on kolme vaatimustasoa, ja kunkin tason kaikkien vaatimusten täyttäminen oikeuttaa tason mukaiseen arvosanaan. Tasojen osittainen täyttäminen ja virheet vaikuttavat arvosanaan.
  • Voit tehdä harjoitustyön parityönä tai yksin.
  • Jos teet harjoitustyön parityönä, sopikaa, kumpi parista palauttaa harjoitustyön osat. Toisin sanoen, vain yksi pareista tekee varsinaiset palautukset TIMiin.
  • Voit pyytää apua harjoitustyön tekemiseen kurssin ohjauksissa.
  • Harjoitustyön voi tehdä ja palauttaa TIM-järjestelmässä tai erillisenä tiedostona opettajien sähköpostilistalle ().
  • Takaraja harjoitustyön palautukselle on 15.3.2026. Ole yhteydessä opettajiin hyvissä ajoin, jos et ehdi takarajaan.

Ohje

Avaa harjoitustyön ohjeet klikkaamalla tästä

Löydät tarkat tehtävänannot alta. Voit tehdä tehtävät suoraan TIM-järjestelmään tai palauttaa ne omavalintaisella tavalla (esim. asiakirja, git-varasto, ZIP-tiedosto, oma verkkosivu). Alla olevalla linkillä pääset nopeasti harjoitustyön palautukseen:

Palauta harjoitustyö ja tarkasta palaute

Harjoitustyön tekeminen parityönä

# parityo_ilmo

Tehtävät

Tehtävä 1: Tietokannan vaatimusmäärittely

Ensimmäisenä tehtävänä on valita itse harjoitustyön aihe ja kirjoittaa sen perusteella tietokannalle vaatimusmäärittely.

Harjoitustyössä suunnitellaan ja toteutetaan relaatiotietokanta johonkin (toivottavasti todelliseen) käyttötarkoitukseen. Mieti siis aluksi, millaiselle kohdealueelle haluaisit suunnitella tietokannan. Voit vaikkapa ottaa jonkin valmiin sovelluksen (WhatsApp, Spotify, Discord) tai alustan (Facebook, X, Instagram) ja mallintaa sen toimintaan tarvittavan yksinkertaisen tietokannan. Jos sinulla on toisaalta jokin peli tai oma ohjelma, jonka olet tehnyt, voit suunnitella sille relaatiotietokannan. Jos kaipaat apua tai inspiraatiota, tutustu ohjeessa oleviin mallikohdealueisiin.

Muista pitää asiat yksinkertaisina! Tällä opintojaksolla harjoitellaan tietokantojen suunnittelua, joten tietokannan ei tarvitse olla heti aluksi valtava.

Kun olet valinnut kohdealueen, kirjoita lyhyt kohdealueen kuvaus ja määrittele, mitä tietoja tietokantaan tulee tallentaa, jotta se täyttää kohdealueen tietokantatarpeet.

Voit muokata vaatimusmäärittelyä milloin tahansa! Harjoitustyön edetessä saatat ehkä haluta tarkentaa kohdealuetta tai tietokannan sisältöä, jos vaikkapa huomaat puutteita tai haluat yksinkertaistaa työtäsi. Tärkeintä on, että kuvauksesi on ajan tasalla.

# harj_t1

Tehtävä 2: Käsitteellinen mallintaminen

Piirrä seuraavaksi ER-kaavio, joka mallintaa tehtävän 1 vaatimusmäärittelyssä esitetyn tietokannan tarpeen ydinkäsitteitä ja niiden välisiä suhteita.

Ota huomioon kaikki vaatimusmäärittelyssä esitetyt kohteet, ominaisuudet ja suhteet ja mallinna ne ER-kaaviossa vastaaviksi kohdetyypeiksi, attribuuteiksi ja suhdetyypeiksi. Mieti ER-kaaviota piirtäessäsi kohdealuetta ja käy tarpeen mukaan tarkentamassa tehtävän 1 tietokannan vaatimusmäärittelyä. Olennaista on, että tietokanta palvelee kohdealueen tarpeita mahdollisimman hyvin.

Voit piirtää ER-kaavion joko käsin, erillisellä piirto-ohjelmalla tai käyttämällä kurssin ER-kaavioeditoria. Huomaa, että voit laajentaa piirtoalan käyttämällä editorissa olevaa Laajenna-painiketta. Muita sopivia piirto-ohjelmia ovat esimerkiksi ERDPlus ja DrawIO.

# harj_t2
# harj_t2_kuva

Tehtävä 3: Transformointi relaatioksi

Seuraavaksi ota tehtävässä 2 piirretty ER-kaavio ja transformoi se relaatiotietokannan kaavaksi.

Sovella transformoinnissa Luvussa 3.2 määriteltyjä transformointisääntöjä. Merkitse relaatiokaavaan relaatioiden nimet, relaatioihin kuuluvat attribuutit ja relaatioiden perusavaimet.

Merkitse relaatiot alla olevaan tekstilaatikkoon. Käytä seuraavia merkintöjä:

R ({|a|}, b, c)        - Relaatio R, jolla on perusavain a sekä attribuutit b, c
S ({|a, b|}, c)        - Relaatio S, jolla on perusavaimet a, b sekä attribuutti c
Kissa ({|nimi|}, ikä)  - Relaatio Kissa, jolla on perusavain nimi ja attribuutti ikä

Sen jälkeen luettele myös relaatioiden viiteavaimet ja mihin relaatioihin ne viittaavat. Viiteavaimet määrittävät relaatioiden väliset suhteet (Luku 3.1). Määritä siis, mitkä relaation attribuutit ovat peräisin toisesta relaatiosta.

Merkitse viiteavaimet relaatiokaavan jälkeen seuraavasti:

R.a -> S.a                - Relaation R attribuutti a viittaa relaation S attribuuttiin a
R.b -> S.b                - Relaation R attribuutti b viittaa relaation S attribuuttiin b
Eläin.nimi -> Kissa.nimi  - Relaation Eläin attribuutti nimi viittaa relaation Kissa attribuuttiin nimi
# harj_t3

Tehtävä 4: Tietokannan määrittäminen SQL-kielellä

Kun ER-malli on transformoitu relaatiotietokannan kaavaksi, voidaan kaavan perusteella luoda tietokanta ja tallentaa siihen dataa.

Määrittele relaatiotietokannan kaavasi perusteella SQLite-tietokanta käyttäen SQL:n tietokannan rakenteen määrittelykieltä (DDL, Luku 4.3). Jokaiselle relaatiokaavassa olevalle relaatiolle tulee määrittää oma tietokantataulu. Ota tietokantataulujen määrittelyssä huomioon attribuuttien tyypit, pääavaimet, viiteavaimet sekä mahdolliset muut eheysrajoitteet.

Lisää tämän jälkeen tietokantaasi mallidataa (Luku 4.2). Mallidataa kannattaa olla riittävästi, jotta saat tehtyä tehtävän 5 hyvin.

Kirjoita SQL-lauseet alla olevaan palautuslaatikkoon. Huomaa, että tehtävälaatikkoon on jo lisätty apukoodia, joka alustaa tietokannan ennen koodisi suorittamista.

Voit myös samalla testata, että data tuli lisätyksi, suorittamalla yksinkertaisia SELECT * FROM taulu; -komentoja. Huomaa, että oletuksena TIM tulostaa No result, jos et suorita mitään hakukomentoja.

# harj_t4

Tehtävä 5: Olennaiset SQL-hakulauseet

Seuraavaksi esitä 1–5 esimerkkiä kohdealueen kannalta olennaisista SQL-kyselyistä, joilla dataa haetaan tietokannasta.

Mieti, millaisia käyttötapauksia tietokannalle olisi kohdealueella. Kirjoita sitten näitä käyttötapauksia vastaavat oleelliset SQL-kyselyt. Voit kirjoittaa haku- (SELECT), poisto- (DELETE) ja muokkauskyselyjä (UPDATE). Datan hallintaan liittyvien SQL-kyselyiden syntaksia on kuvattu Luvussa 4.2.

Esitä esimerkkikyselyt alla olevissa palautuslaatikoissa (1 esimerkki/laatikko). Lisää samalla lyhyt kuvaus siitä, mitä SQL-kysely tekee ja mikä on sen käyttötarkoitus.

Vinkkejä:

  • Hakulauseissa pyri palauttamaan vain ne sarakkeet, jotka ovat käyttötapauksen kannalta oleellisia. Jos palautat taulun kaikki sarakkeet, perustele kommenteissa valintasi.
  • Huomaa, että hakulauseissa voit tehdä laskutoimituksia ja ryhmitellä tuloksia. Näin voit rakentaa monipuolisia kyselyitä.
  • Muista, että poisto- ja muokkauslauseissa voidaan käyttää ehtoja. Tällä tavoin voit muodostaa kohdealueen kannalta hyödyllisiä massamuokkaus- ja massapoistokyselyitä.
  • Voit alustaa tietokantasi takaisin perustilaan painamalla "Aja" tehtävän 4 palautuslaatikossa. Tämä palauttaa tietokantasi takaisin oletustilaan.

Lisää esimerkki 1

Lisää esimerkki 2

Lisää esimerkki 3

Lisää esimerkki 4

Lisää esimerkki 5

Tehtävä 6: Funktionaalisten riippuvuuksien etsiminen

Palataan vielä tehtävässä 3 muodostettuun relaatiotietokannan kaavaan.

Tarkastele funktionaalisia riippuvuuksia, jotka esiintyvät relaatiotietokannassasi. Esitä kaikki tehtävässä 3 määrittelemissäsi relaatioissa olevat epätriviaalit funktionaaliset riippuvuudet.

Muista, että funktionaalinen riippuvuus tarkoittaa, että jonkin relaation attribuutin arvo voidaan määrittää jonkin toisen relaation attribuutin (tai attribuuttijoukon) arvon perusteella (ks. Luku 5.1). Toisin sanoin, tässä tehtävässä sinun tulee esittää, millä tavoin eri tietokannan data riippuu toisesta datasta.

Tässä vaiheessa saatat joutua tekemään tarkennuksia vaatimusmäärittelyyn. On suositeltavaa, että aloitat funktionaalisten riippuvuuksien tarkastelun ja teet epäselvissä tapauksissa tarkentavia muutoksia tehtävään 1.

Voit palauttaa tehtävän alla olevaan tekstilaatikkoon tai kuvana tekstilaatikon alla olevaan palautuslaatikkoon. Jos palautat tekstivastauksen, merkitse funktionaaliset riippuvuudet seuraavasti:

RELAATIO1:   - Relaation "RELAATIO1" funktionaaliset riippuvuudet listataan alla
{X} -> {Y}     - Esimerkki 1: Attribuutti Y riippuu funktionaalisesti attribuutista X

RELAATIO2:   - Relaation "RELAATIO2" funktionaaliset riippuvuudet listataan alla
{X, Y} -> {Z}  - Esimerkki 2: Attribuutti Z riippuu funktionaalisesti attribuuteista X ja Y

Jos palautat vastauksen kuvana, on suositeltua, että käytät Harjoituksessa 5.2 esitettyä merkintätapaa:

# harj_t6
# harj_t6_kuva

Tehtävä 7: Relaatioiden normalisointi

Tarkastele nyt relaatiotietokantasi jokaisen relaation normalisointia käyttämällä edellisessä tehtävässä löytämiäsi funktionaalisia riippuvuuksia. Tutki, missä normaalimuodossa kukin relaatiosi on.

Tämän kurssin kannalta riittää, että tarkastelet normaalimuotoja 1NF, 2NF, 3NF, BCNF sekä 4NF (ks. Luku 5.3).

Jos jokin relaatio ei ole 4. normaalimuodossa, esitä, mitä muutoksia tekisit relaatiomallin kaavaan.

Voit kirjoittaa vastauksesi alla olevaan tekstilaatikkoon.

# harj_t7

Harjoitustyön palautus

Ennen palauttamista:

  • Varmista, että olet vastannut tehtäviin tehtävänannon mukaisesti. Voit vapaasti muuttaa kohdealueen kuvausta sekä tietokannan vaatimuksia ennen työn palauttamista.
  • Tutustu vielä sivun alussa oleviin ohjeisiin ja varmista, että harjoitustyösi täyttää mielestäsi vähintään tason 1 kriteerit.
  • Voit pyytää opettajalta palautetta ohjauksissa.
  • Palauta työ arvioitavaksi vasta, kun uskot sen olevan täysin valmis. Et voi enää muokata harjoitustyötä palautuksen jälkeen. Jos palautat työn parityönä, arvioidaan sen parin työ, joka oli palautettu ensimmäisenä.
  • Työ pyritään arvioimaan noin kahden viikon kuluessa palautuksesta. Arviointi ja arvosana kirjataan tälle sivulle. Saat ilmoituksen, kun työ on arvioitu.

Kun olet mielestäsi valmis palauttamaan:

Huomautus

Et ole ilmoittautunut tämän vuoden opintojakson opiskelijaksi tai olet kirjautunut sisään muulla kuin JYU-tunnuksellasi. Harjoitustyön voivat palauttaa vain tänä vuonna kurssille ilmoittautuneet opiskelijat.

Kokeile kirjautua TIM-järjestelmään uudelleen käyttäen HAKA-sisäänkirjautumista.

Jos olet jo kirjautunut JYU-tunnuksellasi, varmista, että sinulla on voimassa oleva ilmoittautuminen opintojaksolle. Epäselvissä tilanteissa ole yhteydessä opintojakson opettajiin: .

Please to interact with this component.

PalautettuPvm

{}

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.