582103 Ohjelmoinnin jatkokurssi (ohtk 25.8.2011)
Pääteemat | Esitiedot | Lähestyy oppimistavoitetta | Saavuttaa oppimistavoitteet | Syventää oppimistavoitteita |
---|---|---|---|---|
Luokkamäärittelyn tekniikat |
• Luokka, olio ja kapselointi (Ohjelmoinnin perusteet) |
• Tietää että "static" liittyy luokkaan, "ei-static" ilmentymään. |
• Osaa käyttää ohjelmoinnissa luokka- ja ilmentymämuuttujia sekä luokka- ja ilmentymämetodeita. • Tuntee näkyvyyden säätelyn mahdollisuudet ja ongelmat: yksityinen kalusto, pakkaustason kalusto, näkyminen aliluokkaan, julkinen kalusto. |
• Osaa jäsennellä ohjelman arkkitehtuuria luokka- ja oliotason tekniikoilla ja erilaisilla näkyvyyksillä. |
Periytyminen |
• Luokka, olio (Ohjelmoinnin perusteet) |
• Alkaa tajuta, miten aliluokka perii yliluokan ominaisuudet, kentät ja metodit. • Hahmottaa Objectluokasta alkavan luokkien puumaisen periytymishierarkian. |
• Ymmärtää yliluokka-aliluokkasuhteen ja osaa myös ohjelmoida aliluokkia. • Osaa arvostaa perittyjen kenttien kapselointia ja tietää miten ja milloin siitä voi poiketa. • Tuntee ja osaa ohjelmoinnissa ottaa huomioon sen, että konstruktorit eivät periydy ja sen mitä tästä seuraa. Osaa käyttää ohjelmoinnissa ilmauksia this, super, this() ja super(). • Taitaa perittyjen metodien korvaamisen ja perittyjen kenttien peittämisen. • Osaa käyttää viittaustyyppisille arvoille yhteisen yliluokan - abstraktin ja ei-abstraktin - tai rajapintaluokan tyyppistä muuttujaa ja tällä tavoin toteuttaa yleiskäyttöisiä luokkia ja metodeita. Tässä polymorfismin ymmärtäminen on välttämätöntä! • Tietää millaisia lisäyksiä periytyminen tuo näkyvyyssääntöihin. |
• Ymmärtää syvällisesti abstraktien luokkien, rajapintaluokkien ja polymorfismin käytön ohjelmien laadinnassa. • Tuntee moniperinnän idean ja osaa kertoa, miten Javassa moniperinnän edut ilman haittoja pyritään saavuttamaan rajapintaluokkien avulla. Osaa osallistua väittelyyn tästä kysymyksestä. |
Virhetilanteiden käsittely |
• Taito laatia yksinkertaisia Java-ohjelmia (Ohjelmoinnin perusteet) • On tavannut virhetilanteita |
• Tietää, että virheet pitää jotenkin hoidella. • Hahmottaa poikkeusten käsittelyn vaikutuksen ohjelman suoritukseen. |
• Tuntee erilaisia tapoja käsitellä virhetilanteita. • Tuntee tarkistettujen ja tarkistamattomien poikkeusten periaatteen ja osaa laatia ohjelmia, joissa poikkeuksia käsitellään Exception-tasolla |
• Osaa ohjelmoida omia poikkeusluokkia ja arvioida, millaisin tavoin virhetilanteita kulloinkin on paras käsitellä. |
Ohjelmointitekniikkaa |
• Taito laatia yksinkertaisia Java-ohjelmia (Ohjelmoinnin perusteet) |
• Oivaltaa tyyppimuunnoksen tarpeen. |
• Tuntee alkeistyypit ja niiden väliset sijoitusyhteensopivuussäännöt sekä myös eksplisiittisen tyyppimuunnoksen laveammasta alkeistyypistä suppeampaan. • Tuntee pakkausten periaatteen. • Osaa lähdemateriaalia käyttäen laatia ohjelmia, jotka lukevat ja kirjoittavat tekstitiedostoja. • On tutustunut pariin geneeriseen kokoelmaluokkaan, tajuaa niiden idean ja ja osaa materiaalia käyttäen myös ohjelmoida niillä. • Tuntee erilaisia ohjelman toimintaperiaatteita: tietoja kyselevä ohjelma, komentotulkki, suodatin, tapahtumaohjattu ohjelma. Osaa myös ohjelmoida kolmella ensin mainitulla tyylillä. |
• Osaa laatia rekursiivisia metodeita. Ymmärtää miksi rekursiivinen metodi Fibonaccin lukujen laskentaan on aikavaativuudeltaan eksponentiaalinen, binäärihaku logaritminen ja aavistelee ymmärtävänsä, miksi pikajärjestäminen on keskimääräisessä tapauksessa O(n*log n). • Tuntee aktivaatiotietuepinon idean lohkorakenteisen kielen toteutuksessa. • Kirjoittaa sujuvasti tiedostonkäsittelyohjelmia. Taitaa sarjallistamisen. • Osaa ohjelmoida omia geneerisiä luokkia. • Osaa laatia mallin mukaan yksinkertaisia GUI-ohjelmia. |