From: Olli Alm Date: Fri, 16 Jan 2004 18:33:20 +0200 Tehtävä 1, arvosteluperusteet rekursio termin selitys (1p) -metodi, joka kutsuu itseään esimerkki tai muuta selvennystä (2p) Rekursiota käsiteltiin kurssilla suhteellisen suppeasti, joten tästä kohdasta sai melko helposti täydet pisteet. Rekursion tehokkuuteen liittyen vastauksissa oli hieman epäselvyyksiä, mutta niistä ei ole sakotettu. Rekursio ohjelmointitapana ei itsessään aiheuta tehokkuutta tai tehottomuutta. Tietyn kaltaisten ongelmien (hajota ja hallitse) ratkaisuun se sopii hyvin, mutta ei ole ehdoton edellytys. -ei ole sama asia kuin rekursiivinen funktio matematiikassa -ohjelma, joka kutsuu itseään on liian laaja selitys -muistinhallinnan kuvaus vastauksen kannalta epäolennainen abstrakti luokka termin selitys (1p) -luokka, joka ei toteuta kaikkia metodejaan tarkennusta -ei voi luoda ilmentymiä -voi sisältää julkisia metodeja sekä -abstrakteja metodeja, jotka ovat toteuttamattomia. -voidaan periä -aliluokan toteutettava abstraktit metodit (2p) -voidaan käyttää esimerkiksi julkisen rajapinnan toteutukseen. rajapintaluokka -kokoelma metodien nimiä -ei kerro toteutustavasta mitään -toteuttavan luokan annettava rajapintaluokan sisältämille metodien nimille toteutus. -mahdollistaa luokkien yhteen keräämisen tietyn toiminnallisuuden (toiminnallisuuden nimen) mukaan (3p) -mahdollistaa moniperinnän kaltaisen toiminnallisuuden polymorfismi -luokkahierarkiassa samannimisten metodien toiminnallisuudet vaihtelevat eri tasoilla toteutuksen mukaan. -hyvänä esimerkkinä toString -metodin periytyminen object-luokalta; metodi korvataan halutulla tulostusmetodilla aliluokissa. -Olion tyyppi on mahdollista muuttaa suorituksen aikana dynaamisesti: yläluokka voi saada arvokseen aliluokan ja saa näin käyttöönsä aliluokan toiminnallisuudet. (piste-väripiste -esimerkki) -täydet pisteet sai selkeällä kuvauksella joko hierarkiasta ja toiminnallisuuksien vaihtelusta tai sillä, että toiminnallisuuksien valinta riippuu olion tyypistä -polymorfismi ei tarkoita moniperintää eikä kuormittamista -esiteltiin kurssilla suhteellisen suppeasti, joten tästä kohdasta sai melko helposti täydet pisteet Yleisiä huomioita: -erityisen ilahduttavaa oli nähdä vastauksissa omaa pohdintaa ja omia esimerkkejä: asian ymmärtämisen osoittaminen välittyy korjaajalle helpommin. -esimerkkejä kannattaa kommentoida ja selittää auki. -esimerkki kannattaa myös kytkeä jollain tavalla annettuun kirjalliseen vastaukseen. -kurssilla esitellyn esimerkin mainitseminen vastauksessa ei ole itsessään esimerkki. -eri termien selitykset kannattaa pitää erillisinä vastauksina. viittaaminen edelliseen kohtaan (ja myös sen mahdollisiin virheisiin) voi vaikeuttaa vastauksen ymmärtämistä. Tässä vielä tilastot: 181 paperia, pistejakauma tehtävittäin: a) rekursio 0 35 19% 1 31 17% 2 22 12% 3 93 51% b) abstrakti luokka 0 20 11% 1 43 24% 2 67 37% 3 51 28% c) rajapintaluokka 0 12 7% 1 30 17% 2 40 22% 3 99 55% d) polymorfismi 0 76 42% 1 14 8% 2 23 13% 3 68 38%