/////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// Tehtävä 1 "Olio, mikä hemmetin olio?" Luokat ja oliot olivat yksi kurssin keskeisistä asioista. Vastauksien arvostelussa otettiin huomioon kerrontatapa. Kuten tehtävän annossa pyydettiin, vastaus oli tarkoitus esittää olio-ohjelmointia tuntemattomalle kaverille. Esimerkit saattoivat nostaa pisteitä, mikäli jotain asiaa ei oltu käsitelty mutta se ilmeni esimerkeistä selkeällä tavalla. Varsinaisista asiavirheistä sakotettiin lievästi tai ei ollenkaan, mikäli näitä ei oltu kurssilla käsitelty. Useissa vastauksissa ei oltu vastattu riittävän selventävästi, jotta aloitteleva olio-ohjelmoija sen ymmärtäisi. Toinen pistemenetyksen syy oli, että oltiin vastattu hyvin johonkin kysymyksen osa-alueeseen, mutta jokin toinen jäi kokonaan uupumaan. Kolmas syy radikaaleihin pistetiputuksiin oli, että oltiin valitettavasti vastattu kokonaan kysymyksen vierestä. Keskeinen asiasisältö, jonka toivoin löytyvän vastauksista merkityksineen: * Luokan määrittely: - konstruktori - attribuutit - metodit - public-/private-määreet * Olio luokan ilmentymänä - olion luonti, new-operaattori - saman luokan eri olioilla omat attribuuttinsa, ellei toisin käsketä - olion tila ~ olion attribuutit ajanhetkellä t - viite olioon, "olio asuu langan päässä" * Kapselointi - määritellään olion attribuutit yksityisiksi (private-määre) - olion attribuutteihin ei päästä käsiksi suoraan - vaan olion julkisten metodien tarjoaman rajapinnan kautta - käyttäjä näkee vain rajapinnan, ei olion sisäistä toteutusta - kapselointi on abstrahointia -> kun yksityiskohdat ovat poissa, asiat helpommin hahmotettavissa - luokkien uudelleenkäytettävyys paranee? /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// Tehtävä 2 Sekuntilaskuri Täysiin 16 pisteeseen vaaditaan: - ohjelma kääntyy ja toimii oikein - erityisesti lisaaSekunti() -metodi toimii oikein - olion attribuutit määritelty yksityisiks - kaikki vaaditut metodit löytyvät Puutteista / virheistä sakotettiin vakavuudesta riippuen. Tämän tehtävän perusteella kurssilaiset olivat oppineet hyvin perusluokan ohjelmointitaidon. /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// Tehtävä 3 Täysiin 18 pisteeseen vaaditaan: * Ohjelman perusrakenne kunnossa. - oikea syntaksi (pienet merkityksettömät huolimattomuusvirheet sallitaan) - onnenlukujen tallentamiseen käytetään taulukkoa... - ...johon 1000 lukua luetaan silmukassa - ohjelma opastaa käyttäjää sopivassa määrin tulosteiden avulla - toteutuksen siisteys * Ohjelmalogiikka toimii - Kun luvut on luettu taulukkoon, taulukko järjestetään... - ... jotta voidaan soveltaa binäärihakua - syötettyjen arvausten etsintä silmukassa - ohjelma pitää kirjaa oikeista ja vääristä arvauksista