Taso ja pistearvo: | A 120 |
---|---|
Lyhyesti: | Luodaan käynnistysmoduuli, jonka avulla koekäytetään annettuja elokuvatilastoihin liittyviä luokkia. |
Mitä opitaan: | Lukemaan Epydoc-dokumentteja, kirjoittamaan käynnistysmoduuli aiempaa itsenäisemmin, käyttämään metodien palauttamia olioita. |
Toteuttamisen vapaus: | Aika vähäinen edelleen. Ihan yhtä tarkkaa vaihe vaiheelta -ohjetta ei tosin ole annettu kuin aiemmin. |
Realistisuus: | Korkea. Annetun luokan tarjoamien palvelujen käyttäminen jonkin kiinnostavan(?) ongelman ratkaisemiseen on modernissa ohjelmoinnissa tärkeä taito. Annetun dokumentaation lukutaito on aivan keskeisen tärkeä taito. Ohjelmoijat käyttävät usein valmiita komponentteja, jotta vältytään keksimästä pyörää uudestaan. |
Haastavuus: | Ei kovin hankala, jos pohjatyö (eli edelliset tehtävät) on tehty ajatuksella. |
Työläys: | Varsin kevyt tehtävä. Useimmat selviävät tästä varmasti n. parissa tunnissa. |
Kirjoittakaa pääohjelma, jonka avulla voi koekäyttää
annettuja luokkia TopMovies
ja Movie
. Näistä edellinen kuvaa "parhaiksi arvioitujen
elokuvien listoja" (esim. "Kaikkien aikojen Top 250") ja jälkimmäinen yksittäisiä elokuvia.
Tehtävä on kaksiosainen:
TopMovies
ja Movie
.
Teidän ei tarvitse (eikä ehkä kannatakaan yrittää) lukea niiden ohjelmakoodia, vaan
käyttäkää luokat kuvaavaa Epydoc-dokumentaatiota (lisätietoja alla).
Tällaiset Epydoc-dokumentit ovat yleinen tapa kuvata Python-luokkien
käyttöä ja niitä hyödynnetään myös lähes kaikissa tulevissa harjoitustehtävissä tällä kurssilla.
moviestat
moduuli nimeltä movie_test.py
ja siihen pääfunktio main
. Pääfunktioon tulee luoda yksi TopMovies
-olio, joka kuvaa IMDB.com:in
Top 250-leffalistaa. Tämän jälkeen pääfunktion tulee tulostaa järjestyksessä seuraavat asiat,
kukin omalle rivilleen.
Python-luokkien keskeiset piirteet kuvataan usein ns. Epydoc-dokumentteina eli webisivuina, jotka generoidaan automaattisesti Python-koodiin kirjoitettujen kommenttien perusteella. Epydoc-dokumentteja käytetään tälläkin kurssilla laajasti, melkein kaikissa tulevissa tehtävissä, ja on erittäin tärkeää osata lukea niitä.
Tämän kurssin projektien Epydoc-dokumentaatiot löytyvät projektin alihakemistosta doc/
.
Kun luette Epydoc-dokumentteja, huomatkaa miten ne kuvaavat nimenomaan luokkien "julkiset osat" -- siis tiedot, joita luokkien käyttäjä tarvitsee: luokkien perusajatus, niiden alustusmetodit (miten luokista luodaan olioita) ja muut metodit (miten luotuja olioita käytetään). Luokkien sisäisen toteutuksen yksityiskohdat puolestaan eivät selviä näistä dokumenteista.
Palauttakaa luomanne tiedosto movie_test.py
arvosteltavaksi Goblin-järjestelmään.
Jos tarvitsette apua palautuksen tekemisessä, katsokaa lisätietoja
kurssisivujen Goblin-ohjeesta.
TopMovies
ottaa tietonsa, on tiedostossa imdb_top_250_aug_2006.txt
.
Kuitenkin laatimanne käynnistysmetodin pitää toimia myös jos datalähteenä käytettäisiin jotain muuta vastaavaa
leffaluetteloa. Esim. Goblin koeajaa palautustanne myös toisenlaisella leffaluettelolla. Niinpä esimerkiksi
kolmatta tulosteriviä kirjoittaessa ei pidä luottaa siihen, että jokaisen mahdollisen TopLeffat-listan kärjessä on juuri
samana vuonna julkaistu leffa...
moviestat
on myös pari muuta luokkaa (CreateDirectorStats
ja
MovieChartFile
. Voitte jättää ne tässä vaiheessa huomiotta.