582334 TDD-ohjelmointimenetelmä ja koodin suunnittelu (5 op), syksy 2009
582334 TDD programming technique and designing code (5 cr), autumn 2009

Luennot

HUOM! Tämä luentoaikataulu on vasta alustava suunnitelma. Luentojen sisältö ja lähdemateriaali tarkentuu myöhemmin.

Harjoituksen 1 tehtävänanto jaetaan

Luento 1: ???

Luento 2: ???

Harjoituksen 2 tehtävänanto jaetaan

Luento 3: ???

Luento 4: ???

Harjoituksen 3 tehtävänanto jaetaan

Luento 5: ???

Luento 6: ???

Harjoituksen 4 tehtävänanto jaetaan

Luento 7: ???

Luento 8: ???

Harjoituksen 5 tehtävänanto jaetaan

Luento 9: ???

Luento 10: ???

Harjoituksen 6 tehtävänanto jaetaan

Luento 11: ???

Luento 12: ???

Kurssikoe

Harjoitukset

Ohjelmointiharjoitukset saa tehdä parikoodauksena, ellei sitä ole erikseen kielletty. Jos kaksi henkilöä (mutta ei useampi) on yhdessä ohjelmoinut harjoitusviikolla vaaditun toiminnallisuuden, niin molemmat saavat siitä pisteet. Harjoitustöiden viikottainen toiminnallisuus on kumulatiivista, mutta on sallittua käyttää pohjana edellisviikon harjoituksista peräisin olevaa toisen henkilön koodia, jossa ei vielä ole tämän viikon harjoituksissa vaadittua toiminnallisuutta.

HUOM! Tämä harjoitusaikataulu on vasta alustava suunnitelma. Harjoitusten sisältö tarkentuu myöhemmin.

Tetris-harjoitustyön testitapaukset ovat GitHubissa. Olisi mukavaa saada niistä palautetta ennen kurssin alkua joltakulta, joka ei ole aiemmin käyttänyt TDD:tä... Palautetta voi lähettää sähköpostiini esko.luontola ÄT cs.helsinki.fi.

Lähdekoodit saa noudettua komennolla git clone git://github.com/orfjackal/tdd-tetris-tutorial.git (tutorial branch). Ohjeita Gitin käyttämiseen saa mm. virallisilta sivuilta, GitHubista ja Git Readystä. Lähdekoodit ovat valmiiksi Maven-projektina, joten niiden testit saa ajettua komennolla mvn test ja projektin saa zipattua komennolla mvn clean package (tuotokset tallentuvat /target-kansioon).

Harjoitus 1: Tetris #1 (totuttelu). Duplikaation havaitseminen.

Kotitehtävä:

Harjoitustilaisuudessa:

Harjoitus 2: Tetris #2-3 (algoritmien synty, refaktorointi). Muuttujien nimeäminen.

Kotitehtävä:

Harjoitustilaisuudessa:

Harjoitus 3: Tetris #4-6 (omat testit). Funktion refaktorointi.

Kotitehtävä:

Harjoitustilaisuudessa:

Harjoitus 4: Tetris #7 (mock objects). HT2 #1 (ensimmäiset askeleet).

Kotitehtävä:

Harjoitustilaisuudessa:

Harjoitus 5: HT2 #2 (GUI testing). Luokkarakenteen refaktorointi.

Kotitehtävä:

Harjoitustilaisuudessa:

Harjoitus 6: Legacy Code. SOLID Principles.

Kotitehtävä:

Harjoitustilaisuudessa: