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.

 

13.12.2012 - 00:22 Matti Luukkainen
17.08.2011 - 19:56 Matti Luukkainen