Aikataulu

HUOM

Vaikka et olisi tehnyt mitään jollakin tietyllä viikolla, kannattaa viikkoraportti kuitenkin kirjoittaa niin että repositoriossa on muutoksia viikon ajalta. Voit jopa saada pisteitä. Muuten pisteitä tulee automaattisesti 0 vaikka projektista olisi muuten mahdollista saada viikkopisteitä.

Kolmen peräkkäisen viikon ajan muuttumaton repositorio tulkitan kurssin keskeyttämiseksi!

Viikko 1:

  • Palautus 1:
    • Aihe, käytettävä ohjelmointikieli ja työn laajuus päätetty.
      • Juttele tarvittaessa ohjaajan kanssa. Jos toteutat jonkin valmiista aiheista Javalla tai Pythonilla ja kaikki on selvää, voit siirtyä suoraan määrittelydokumentin kirjoittamiseen. Jos haluat toteuttaa työn täysin omasta aiheesta tai erikoisemmalla kielellä, kannattaa asiasta jutella ennen palautuksen tekemistä.
    • Tustustu kurssimateriaaliin. Lue ainakin dokumentaatio-ohjeet tarkkaan.
    • Dokumentaatio: Määrittelydokumentti valmis.
    • TÄRKEÄÄ! Muista kirjoittaa määrittelydokumenttiin opinto-ohjelmasi ja projektin kieli!
    • Viikkoraportti numero 1: Kirjoitettu ensimmäinen viikkoraportti (ks. Palautukset)
    • Katso, että repositoriosi etusivulle on linkattu suoraan viikkoraportit. Jos tarvitset apua markdownissa, niin katso GitHubin ohje: https://guides.github.com/features/mastering-markdown/. Saat myös apua jos katsot esimerkiksi miten tämä tiedosto on tehty!
    • Projekti: Projekti luotu. Ohjeita tarvittaessa täältä. Alustettu versionhallinta (Github). Kaikki palautettava lisätään versionhallintaan, sähköpostilla ei palauteta mitään!
    • Salli issuet vertaisarviointia varten, katso Issueiden luonnin salliminen repoon
    • Rekisteröidytty kurssille labtoolissa: https://study.cs.helsinki.fi/labtool/
    • Labtoolin pikaohje
    • Jos uskot tarvitsevasi lisämateriaalia ja esimerkkejä testaamisesta ja projektin pystyttämisestä, kannattaa tutustua testing and rmq projektiin jo tässä vaiheessa.

Viikko 2:

  • Palautus 2:
    • Dokumentaatio: Kirjoitettu koodi on selkeää ja kommentoitua (esim. Javalla tehdyssä työssä Javadoc-kommentit).
    • Viikkoraportti numero 2: ks. Palautukset
    • Ohjelma: Aloitettu ydinalueen toteutus.
    • Testaus: Koodin kattava yksikkötestaus. (esim. Javalla tehdyssä työssä JUnit)
      • Varmista, että kun teet luokkia niin olet myös testannut ne mahdollisimman nopeasti/aikaisin (mieluiten testit samassa palautuksessa, kuin luokat on koodattu). Siten tiedät, että koodi, jonka juuri kirjoitit toimii kuten haluat. Tarvittaessa tutustu yksikkötestaukseen tukimateriaalissa.
    • Olisi erittäin suositeltavaa että jo tässä vaiheessa projektin testikattavuus olisi seurattavissa.
      • Javalla vaihtoehtoina esimerkiksi PIT, jacoco tai codecov. Jotain ohjeita löytyy täältä.
      • Muilla kielillä pitäisi viikoittain laittaa kattavuusraportti jonnekin näkyville. (Esim. codecov tai github pages).
    • Myös checkstyle tai muu vastaava olisi hyvä olla konffattuna jo tässä vaiheessa. Kannattaa jutella ohjaajan kanssa jos laadun seuraamisessa on jotain epäselvää.

Viikko 3:

  • Palautus 3:
    • Dokumentaatio: Kirjoitettu koodi selkeää ja kommentoitua. Aloitettu kirjoittamaan testausdokumenttia.
    • Viikkoraportti numero 3
    • Ohjelma: Ohjelman ydinalue edennyt, aloitettu ehkä jo omien tietorakenteiden toteutus, mikäli työhön kuuluu sellaisia.
    • Testaus: Koodin kattava yksikkötestaus.
    • Viimeistään tässä vaiheessa testikattavuuden olisi oltava käytettävissä, ja testausdokumentissa on ainakin testikattavuusraportti kuvana / taulukkona.
    • Viimeistään tässä vaiheessa checkstylen tai vastaavan koodin laadun seurannan tulisi olla käytössä.

Viikko 4:

  • Ensimmäiset vertaisarvioinnit jaetaan viikon palautuksen jälkeen. Katso labtoolista linkki katselmoitavaan repoon. Vertaisarvioinnin deadline on sama kuin viikon 5 deadline.
  • Ohjeet vertaisarviointiin täällä
  • Salli issuet vertaisarviointia varten, katso Issueiden luonnin salliminen repoon

  • Palautus 4:
    • Dokumentaatio: Koodi kommentoitua. Aloitettu kirjoittamaan toteutusraporttia.
    • Viikkoraportti numero 4
    • Ohjelma: Ohjelman ydintoiminta valmis.
    • Testaus: Koodin kattava yksikkötestaus. Aloitettu suorituskyky- tai muu aiheeseen sopiva testaus (kirjoita näistä testausdokumenttiin).

Viikko 5:

  • Toiset vertaisarvioinnit jaetaan viikon palautuksen jälkeen. Katso labtoolista linkki katselmoitavaan repoon. Vertaisarvioinnin deadline on sama kuin DL 6.

  • Palautus 5:

    • Ensimmäinen vertaisarviointi tehtynä (Löydät linkin katselmoitavaan repoon labtoolista)
    • Dokumentaatio: Koodi kommentoitua. Toteutus- ja testausdokumentaatiota kirjoitettu.
    • Viikkoraportti numero 5
    • Ohjelma: Ohjelman ydintoiminta valmis.
    • Testaus: Koodin kattava yksikkötestaus. Aloitettu suorituskyky- tai muu aiheeseen sopiva testaus.

Viikko 6:

  • Palautus 6:
    • Toinen vertaisarviointi tehtynä (löydät linkin katselmoitavaan repoon labtoolista)
    • Dokumentaatio: Kirjoitettu koodi kommentoitua. Toteutus- ja testausdokumentaatiota kirjoitettu.
    • Viikkoraportti numero 6
    • Ohjelma: Tietorakenteiden ja algoritmien omat toteutukset käytössä siltä osin mitä on sovittu tehtäväksi itse.
    • Testaus: Koodin kattava yksikkötestaus. Suorituskykytestausta tehty.

Demotilaisuus:

  • Esitellään ohjelman toimintaa.
  • Lyhyt noin 10 minuuttinen esitys ja mahdollisiin kysymyksiin vastailu (riippuen aikataulusta).

LOPULLINEN PALAUTUS

  • Dokumentaatio:
    • 100% selkeää ja kommentoitu koodi
    • Valmiit dokumentit:
      • Määrittelydokumentti (ei tarvitse päivittää alkuperäisestä)
      • Toteutusdokumentti
      • Testausdokumentti
      • Viikkoraportit
      • Käyttöohje
  • Ohjelma:
    • Mielellään suoritettava ohjelma github releasena (esim. jar-tiedosto)
    • Työ valmis ja hiottu
  • Testaus:
    • Koodin kattava yksikkötestaus
    • Dokumentoitu ohjelman testaus testausdokumenttiin
    • Graafinen esitys esim. aikavaativuuksien toteutumisesta empiirisen testauksen perusteella