Yleistä
Tämä materiaali on tarkoitettu Helsingin yliopiston harjoitustyökurssin Tietokantasovellus (4 op) materiaaliksi. Kurssin tietokantasovellus esitietovaatimuksena ovat kurssit Ohjelmoinnin perusteet (TKT-10002), Ohjelmoinnin jatkokurssi (TKT-10003), ja Tietokantojen perusteet (TKT-10004).
Kurssi olettaa merkittävää panostusta omatoimiseen lisätiedon etsimiseen, eikä materiaali kata läheskään kaikkea kurssin kannalta oleellista.
Harjoitustyön eteneminen ja aikataulu
Viikko | Eteneminen |
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
Käytännön yksityiskohdat
Tarkista kulloisenkin toteutuskerran käytännön yksityiskohdat kurssin courses-sivulta. Löydät linkin oikeaan kurssiin weboodista tai esimerkiksi tästä listasta.
Tukiväylät
Kurssilla on ohjausta kurssin courses-sivulla ilmoitetulla tavalla.
Sähköpostitse tapahtuvaa ohjausta ei kurssilla ole. Kumpulan Exactumin mikroluokissa (BK107, B221) saa työskennellä myös ohjausaikojen ulkopuolella, jos siellä ei ole tuolloin muuta toimintaa.
Verkon yli nopein tapa avun kysymiseen on kurssin keskustelukanava #tsoha
, johon pääsee helpointen kanavan Matrix-huoneen kautta: https://riot.im/app/#/room/#_ircnet_#tsoha:irc.snt.utwente.nl. Kanavan muut osallistujat ovat vapaaehtoisia kurssin kanssaopiskelijoita.
Yhteistyö
Hyvä yhteistyö keskittyy jokaisen osapuolen oppimiseen ja parantaa oppimistuloksia. Jos teet harjoitustyötä yhdessä muiden kanssa, sinun tulee kuitenkin myös tehdä ja palauttaa oma työ.
Hyvä ohjesääntö yhteistyöhön on ns. Gilligan's Island -sääntö:
The Gilligan's Island Rule: You are free to meet with fellow students(s) and discuss an assignment with them. Writing on a board or shared piece of paper during the meeting is acceptable; however, you should not take any written (electronic or otherwise) record away from the meeting. Everything that you derive from the collaboration should be in your head. After the meeting, engage in at least a half-hour of mind-numbing activity (like watching an episode of Gilligan's Island), before starting to work on the assignment. This will assure that you are able to reconstruct what you learned from the meeting by yourself.
Opintovilpistä
Kurssilla seurataan Helsingin yliopiston opintokäytäntöjä. Plagiarismi ja opintovilppi, eli esimerkiksi netissä olevien tai kaverilta saatujen vastausten kopiointi ja niiden palauttaminen omana työnä on kiellettyä.
Todettu opintovilppi johtaa kurssisuorituksen hylkäämiseen ja toistuva opintovilppi voi johtaa opinto-oikeuden määräaikaiseen menettämiseen. Lue lisää osoitteesta http://blogs.helsinki.fi/alakopsaa/opiskelijalle/.
Arvostelu
Harjoitustyön arvostelu perustuu dokumentaatioon, prosessiin sekä lopullisen sovelluksen toimintaan. Arvostelu ym. käytänteet tarkasteltiin kurssin aloitusluennolla. Syksyn 2018 periodin II aloitusluennon kalvot ym löytyvät tämän linkin takaa.
Työ arvostellaan useamman osan summana:
- Dokumentaatio, tietokantarakenteen toimivuus valittuun ongelmaan (18p)
- Tietokannan toteutus ja tietokantaa käyttävän sovelluksen tietokantaa käyttävän osan rakenne, ml. tietoturva (12p)
- Web-sovelluksen tietokantaan kuulumaton puoli (6p)
- Käytettävyys (6p)
- Ylläpidettävyys (6p)
- Aikataulussa pysyminen, viikkopalautukset, demo ja koodikatselmoinnit (12p)
Dokumentaatio, tietokantarakenteen toimivuus valittuun ongelmaan
- Dokumentaation yleinen sisältö: aiheen kuvaus, sovelluksen käyttöohje, sovelluksen asennusohje, työn ja sovelluksen rajoitteet, työn puuttuvat ominaisuudet, dokumentaation vastaavuus toteutettuun työhön, omat kokemukset.
- Käyttötapaukset / user storyt ja niihin liittyvät SQL-kyselyt: dokumentaatiossa listattuna oleellisimmat käyttäjäryhmät sekä käyttötapaukset (tai user storyt). Käyttötapausten yhteydessä kuvattuna toimivat ja järkevät SQL-kyselyt.
- Tietokantarakenteen kuvaus: täyttää kurssin tavoitteet ja soveltuu hyvin tarkoitukseensa, tietokantataulujen normalisointi sekä tarvittaessa perustelu normalisoinnin puutteille, tietokantakaavion sisällyttäminen dokumentaatioon, tietokantakaavion ja todellisen tietokannan vastaavuus, dokumentaatiossa CREATE TABLE -lauseet sekä indeksien lisäykset, valittu tietokannanhallintajärjestelmä toimiva ja ongelma-alueeseen sopiva (ei esim SQLiteä Herokussa).
Tietokannan toteutus ja tietokantaa käyttävän sovelluksen tietokantaa käyttävän osan rakenne, ml. tietoturva
- Ohjelmassa ei SQL-injektiomahdollisuuksia, isoksi kasvavissa listauksissa sivutus, käyttäjien syötteet validoidaan palvelimella, indeksien käyttö, SQL-virheiden käsittely, kyselyiden toteuttaminen tehokkaasti (yhdellä kyselyllä toteutettavissa olevat asiat tehdään yhdellä kyselyllä useamman sijaan), sovelluksissa käytössä ja toteutettuna monimutkaisempia yhteenvetokyselyitä.
Web-sovelluksen tietokantaan kuulumaton puoli
- Sovellus toimii päällisin puolin (ei rikkinäisiä linkkejä, lomakkeet toimivat kun syöte järkevä)
- Sovellus toimii vaikka syöte ei järkevää (validointi joko palvelimella tai selaimella)
- Sovelluksen yleiskuva (ml. tyylit) on yhtenäinen ja sen käyttö tuntuu luontevalta
Käytettävyys
- Sovellus on käytettävä, opittava, muistattava ja käyttäjän näkökulmasta tehokas. Sovelluksen tarjoamat sivut ovat loogisesti rakennettu ja sivut ovat helposti löydettävissä (etusivu sovelluksen juuressa, järkevä yleisvälikko). Käyttäjän syötteet validoidaan. Mahdolliset virhetilanteet tuottavat ymmärrettäviä virheviestejä. Sovellus on käytettävä myös laajemmilla tietomäärillä (sivutus, tiedon hakeminen).
Ylläpidettävyys
- Konfiguraatiot sekä paikalliselle kehitysympäristölle että tuotantoympäristölle. Sovellus ei sisällä tuotantoympäristön salasanoja tms. Koodin laatu ok (ei copy-paste koodia, ei pois-kommentoitua koodia jne), sovellus pilkottu selkeitä vastuualueita hoitaviin luokkiin. Sovelluksen koodi on ymmärrettävää, löydettävissä ja tarpeelliset kohdat kommentoitu. Kurssiin syventynyt kurssilainen tai kurssilaisryhmä ymmärtää ohjelman rakenteen ja tavoitteet ohjelmakoodista.
Aikataulussa pysyminen, viikkopalautukset, demo ja koodikatselmoinnit
- Aikataulutus: palautusten tekeminen ajoissa, oma harjoitustyöhön liittyvä ajanhallinta.
- Vertaistoiminta: vertaisarviointien ja koodikatselmointien tekeminen kurssin annetussa aikataulussa.
- Demotilaisuuteen osallistuminen
Arvosanarajat
Pisteet | Arvosana |
---|---|
91% tai yli | 5/5 |
86%-90% | 4/5 |
81%-85% | 3/5 |
76%-80% | 2/5 |
70%-75% | 1/5 |
< 70% | hylätty |
Arvosanalle 5 on lisäksi seuraavat minimivaatimukset.
- Toimiva tietokantaa käyttävä web-sovellus.
- Vähintään kolme tietokohdetta, eli vähintään 3 tietokantataulua sekä mahdolliset liitostaulut.
- Kirjautumisen lisäksi käyttäjä on yhdistetty tietokannassa johonkin tietokohteeseen, eli käyttäjien tietoja ei tule käyttää pelkästään kirjautumisen osana.
- Vähintään kahdesta tietokohteesta täysi CRUD (eli luomis-, lukemis-, päivitys-, ja poistotoiminnallisuus).
- Yksi tai useampi monesta moneen -suhde.
- Vähintään kaksi monimutkaisempaa useampaa tietokantataulua käyttävää yhteenvetokyselyä. Yhteenvetokyselyt ovat perustellusti (järkevä) osa sovelluksen käyttötapauksia ja toimintaa.
Arvosanan 1 minimivaatimukset ovat em. pisteytyksen lisäksi seuraavat:
- Toimiva tietokantaa käyttävä web-sovellus.
- Vähintään kaksi tietokohdetta, eli vähintään 2 tietokantataulua sekä mahdolliset liitostaulut.
- Kirjautuminen.
- Vähintään yhdestä tietokohteesta täysi CRUD (eli luomis-, lukemis-, päivitys-, ja poistotoiminnallisuus).
- Käyttötapaukset listattu.
Harjoitustyön keskeyttäminen
Mikäli olet osallistunut harjoitustyöhön ja keskeyttänyt sen tai saanut harjoitustyöstä hylätyn arvosanan, ja haluat osallistua harjoitustyöhön uudestaan, lähetä sähköpostia kurssin vastuuhenkilölle Arto Hellakselle (arto.hellas@cs.helsinki.fi) ennen ilmoittautumista.
Analytiikkadatan keräämisestä ja kurssilla tehtävästä tutkimuksesta
Analytiikkadatan kerääminen ja arvostelu
Kurssin aikana tehdyistä tehtävistä kerätään tietoa. Kerätty tieto sisältää materiaalissa olevien kyselyiden vastauksia ja kurssimateriaalin käyttöä. Tallennettu tieto sisältää henkilökohtaisen tunnisteen, jonka perusteella ei voida suoraan päätellä henkilöllisyyttäsi. Tieto ei esimerkiksi siis sisällä nimeäsi tai sähköpostiosoitettasi.
Kurssilla tehtävästä tutkimuksesta
Kurssilla tehdään oppimiseen liittyvää tutkimusta. Tällä tutkimuksella on useampia tavoitteita: (1) lähestyä tilannetta, jossa oppimateriaali ja tehtävät osaavat ottaa oppijoiden yksilölliset erot paremmin huomioon ja reagoida niihin tarjoten kohdennetumpaa opetusta, (2) kehittää digitaalisissa ympäristöissä tapahtuvaan oppimiseen liittyvää ymmärrystä ja tietoa, sekä (3) tukea tutkimustiedon kautta muita oppimateriaalien kehittäjiä ja oppimisen tutkijoita.
Tällaisesta tutkimuksesta kiinnostuneiden kannattaa tutustua esimerkiksi artikkeliin Educational Data Mining and Learning Analytics in Programming: Literature Review and Case Studies.
Tutkimusdatan hallinnasta vastaa Helsingin yliopiston tietojenkäsittelytieteen laitoksen Agile Education Research -ryhmän Arto Hellas. Anonymisoimattomaan tutkimusdataan eivät pääse käsiksi muut tutkijat. Voit myös pyytää milloin tahansa sinusta kerätyn datan poistamista lähettämällä sähköpostin osoitteeseen arto.hellas@cs.helsinki.fi
Työskentelystä kerättyä tietoa käytetään tutkimuksessa jos sallit. Tutkimuksemme päätavoitteena on osaamisen kehittymisen arviointi tekemisen arvioinnin sijaan, mikä johtaa tulevaisuudessa yksilöllistä osaamista paremmin kehittävien vinkkien ja tehtävien tarjoamiseen. Tutkimustuloksista ei pystytä tunnistamaan yksittäisiä opiskelijoita. Jos et salli kurssin aikana kerättyjen tietojen käyttämistä tutkimuksessa, siitä ei tule minkäänlaisia seuraamuksia.
Löydät tämän sivun ylälaidasta linkin "Osa 1", jolla pääset ensimmäiseen osaan käsiksi. Siirtyminen onnistuu myös tästä painamalla.
Kurssimateriaalin tekijät ja lisenssi
Kurssimateriaalin on tehnyt Arto Hellas. Muita tekijöitä löytyy kurssimateriaalin Github-reposta.
Tämä materiaali on lisensoitu Creative Commons BY-NC-SA-lisenssillä, joten voit käyttää ja levittää sitä vapaasti, kunhan alkuperäisten tekijöiden nimiä ei poisteta. Jos teet muutoksia materiaaliin ja haluat levittää muunneltua versiota, se täytyy lisensoida samalla lisenssillä. Materiaalien käyttö kaupalliseen tarkoitukseen on ilman erillistä lupaa kielletty.
Voit osallistua kurssimateriaalin parantamiseen. Jokaisen sivun alalaidassa on linkit, joilla pääset ehdottamaan muutoksia. Muutosten ehdottaminen vaatii Github-tunnuksen.