Olio-ohjelmoinnin jatkoLaajuus (3 op)
Opintojakson tunnus: TT00AA18
Opintojakson perustiedot
- Laajuus
- 3 op
Osaamistavoitteet
Opintojakson suoritettuaan opiskelija ymmärtää rajapintojen ja kerrosarkkitehtuurin merkityksen edistyneessä olio-ohjelmoinnissa ja tuntee rinnakkaisohjelmoinnin problematiikan. Opiskelija osaa määritellä ja käyttää monipuolisesti itse ohjelmoimiaan luokkia ja rajapintoja. Opiskelija osaa toteuttaa kerrosarkkitehtuurin (MVC, DAO) mukaisia ohjelmia. Opiskelija osaa hyödyntää Javan eri luokkakirjastoja (Collections framework, JDBC, 2D API).
Sisältö
Rajapinnat ja kerrosarkkitehtuuri.
Kokoelmaluokkien kehys (Collections Framework).
Rinnakkaisohjelmointi (säikeet).
2D-grafiikka.
Arviointikriteerit, tyydyttävä (1)
Rajapinnat ja kerrosarkkitehtuuri:
- Opiskelija osaa määritellä rajapintoja ja niille toteutukset.
- Opiskelija osaa selittää MVC-, DAO- ja DTO-mallien merkitykset.
Kokoelmaluokkien kehys (Collections Framework):
- Opiskelija osaa luetella erilaisia Javan Collection- ja Map-rakenteita ja esittää niille sovellusalueita.
- Opiskelija osaa käyttää Collection- ja Map-rakenteita sellaisille olioille, joille yhtäsuuruus ja luonnollinen järjestys on määritelty.
Rinnakkaisohjelmointi (säikeet).
- Opiskelija osaa ohjelmoida säikeitä.
2D-grafiikka:
- Opiskelija osaa grafiikan teknisen tuottamisen periaatteen.
Arviointikriteerit, hyvä (3)
Rajapinnat ja kerrosarkkitehtuuri:
- Opiskelija osaa kirjoittaa MVC-mallin mukaisia ohjelmia, joissa hyödynnetään järjestelmän rakentamista rajapintoja toteuttavista osista, kun toteutusvaihtoehtoja on useita.
- Opiskelija osaa toteuttaa JDBC:n avulla tietokantaa käsittelevän yksinkertaisen DAO-kerroksen ja tietää kuinka suojautua SQL-injektiohyökkäyksiltä.
Kokoelmaluokkien kehys (Collections Framework):
- Opiskelija osaa määritellä luokan olioille yhtäsuuruusominaisuuden ja luonnollisen järjestyksen hyödyntääkseen rakenteita, jotka kieltävät duplikaatit (joukot) ja jotka pitävät yllä luonnollista järjestystä (järjestetyt listat ja joukot).
Rinnakkaisohjelmointi (säikeet):
- Opiskelija osaa toteuttaa säikeiden synkronoinnin yhteiskäyttöisen tietorakenteen käsittelyä varten.
- Opiskelija tuntee Swingin yhden säikeen säännön.
2D-grafiikka:
- Opiskelija osaa hyödyntää kaksoispuskurointia ja säikeitä grafiikan tuottamisessa.
Arviointikriteerit, kiitettävä (5)
Rajapinnat ja kerrosarkkitehtuuri:
- Opiskelija osaa hyödyntää Java Reflection APIa ohjelman dynaamiseen konfigurointiin (esim. kerroksen toteutuksen valinta properties-tiedoston avulla).
- Opiskelija osaa toteuttaa monipuolisen SQL-injektioturvallisen DAO-kerroksen.
Kokoelmaluokkien kehys (Collections Framework):
- Opiskelija osaa sujuvasti hyödyntää erilaisia rakenteita annetuissa ongelmatilanteissa.
- Opiskelija osaa myös vähemmän tunnetut rakenteet (esim. EnumMap).
Rinnakkaisohjelmointi (säikeet):
- Opiskelija osaa toteuttaa säikeen pysäyttämisen lisäksi myös muut säikeen elinkaareen liittyvät toimenpiteet (keskeytys, jatkaminen).
- Opiskelija osaa tunnistaa ja ratkaista Swingin yhden säikeen sääntöön liittyvät tilanteet.