Tenttiohjeita
Yleistä
Tulevien tenttien ajankohdat löytyvät Oodista, jossa tentteihin myös ilmoittaudutaan. Ilmoittautuminen sulkeutuu viikkoa ennen tenttipäivää.
Tenttipapereita on tarjolla suomeksi. Jos haluat ruotsinkielisen tenttipaperin, kannattaa vaihtaa kurssin ruotsinkieliselle versiolle.
Tentin rakenne
Tentissä on kaksi tehtävää, joista ensimmäinen on tärkeämpi kuin toinen.
Ensimmäisellä tehtävällä pyritään varmistamaan, että jokaisella kurssin läpäisevällä opiskelijalla on vähintäänkin auttavat taidot ohjelmakoodin lukemisessa ja kirjoittamisessa (vrt. kurssin vähimmäistavoitteet). Ensimmäisessä tehtävässä jokainen opiskelija joutuu lukemaan annettua ohjelmakoodia ja muokkaamaan tai laajentamaan sitä.
Toinen tehtävä on myös soveltava. Se on ensimmäistä haastavampi ja sen tekeminen edellyttää ainakin joidenkin kurssin loppupään asioidenkin hallitsemista (vrt. C-tason tehtävät).
Tentin arvostelu
Tentti arvostellaan asteikolla:
- hylätty: Ensimmäisen tehtävän vastaus on selvästi puutteellinen tai väärin. Vastauksen perusteella ei saa sitä käsitystä, että vastaaja osaa lukea ja kirjoittaa Python-ohjelmakoodia. Ensimmäinen tehtävä on siis läpäistävä läpäistäkseen tentin (ja kurssin).
- hyväksytty: Vastaus ensimmäiseen tehtävään on kelvollinen tai erinomainen, mutta toista tehtävää ei ole ratkaistu oikein. Tämä riittää kurssin läpäisyyn.
- +1: Toinenkin tehtävä on ratkaistu oikein. Tästä saa +1 kurssin kokonaisarvosanaan (ks. ensimmäinen luento: arvosanan muodostuminen kurssiesitteestä).
Tenttikysymysten sisällöstä yleisesti
Tenttialueeseen kuuluvat luennoilla ja harjoitustehtävissä käsitellyt aiheet, poislukien sellaiset yksittäiset asiat, jotka on tällä sivulla erikseen alueen ulkopuolelle kuuluviksi mainittu. Ks. luento-ohjelma ja tehtäväluettelo.
Tentillä pyritään arvioimaan kuinka hyvin kurssilla opetetut asiat on ymmärretty. (Python-, olio-)ohjelmointiin liittyvät peruskäsitteet ja toimintatavat tulee sisäistää. Tentissä ei kysytä nippelitietoja.
Python-ohjelmointikielen yksityiskohtia ei erikseen, nimenomaisesti kysytä tyyliin: "Luettele Python-kielen toistolauseet.", "Miten sulkuja käytetään Python-koodissa?". Perusasiat (kuten juuri erilaiset toistolauseet, luokkien laatimisen perusteet, jne. jne.) tietysti kuitenkin tulee hallita käytännössä ja tehtävissä esitettävät ohjelmanpätkät on kyettävä tulkitsemaan. Samoin ohjelmointitehtävissä tulee osata kirjoittaa kelvollista Python-ohjelmakoodia, mutta pienistä syntaksivirheistä ei sakoteta.
Ohjelmointitehtävissä laadittaviksi pyydetty koodi on kirjoitettava hyvällä ohjelmointityylillä. Kauhealla tyylillä kirjoitettu ohjelma voidaan jopa hylätä.
Python-kirjastojen luokkia ja niiden metodeita, parametreja yms. ei tarvitse osata ulkoa kuin aivan keskeisimmin ja yleisimmin käytetyin osin. Jos valmiita luokkia tarvitaan, niistä annetaan tentin ohessa esimerkkejä ja/tai muuta apumateriaalia. Ks. täsmennykset alempaa.
Kurssin aihepiirien keskeistä termistöä voi tietysti esiintyä tenttikysymyksissä, mutta termien määrittelyjä ei erikseen kysytä.
Yksittäisiin aihepiireihin liittyviä täsmennyksiä
Alla sekalaisia tarkennuksia. Tenttialueeseen toki kuuluu paljon muitakin aiheita kuin nämä. Tämän luettelon olemassaoloa ei missään tapauksessa tule tulkita niin, että nämä aihepiirit olisivat keskeisempiä kuin ne, joita ei ole tässä erikseen mainittu.
Python keskeisintä perusvälineistöä pitää osata harjoitustehtävissä ja luennoilla käsitellyin osin:
- "Näytölle tulostaminen"
(
print
) on osattava. - Alkiokokoelmat: listojen perusajatus ja käyttö on ymmärrettävä. Alkioiden laittaminen listaan, niiden poistaminen ja vaihtaminen sekä listan alkioiden tutkiminen ja läpikäyminen ovat perusasiaa, jota kaikkien kurssilaisten täytyy osata soveltaa käytäntöön. Ainakin listatyypin tavallisimmat toiminnot (hakasulkujen käyttö, listaan lisääminen ja listan pituuden haku) on muistettava.
- Pythonin aivan keskeisin välineistö tulee tuntea: kuten merkkijono
string
. Näistä ei tarvitse muistaa läheskään kaikkia yksityiskohtia, mutta kurssin mittaan vastaan tulleet keskeisimmät piirteet tulee osata (esim. merkkijonon käsittely hakasuluilla ja pituuden haku). Minkään metodien nimiä ei toki erikseen pyydetä luettelemaan, mutta niistä voi olla hyötyä koodia lukiessa ja kirjoittaessa. Muita Pythonin tyyppejä ei tarvitse osata, mutta niitä voi joutua hyödyntämään koodia lukiessa tai kirjoittaessa. Tällöin näistä luokista annetaan tentissä oheismateriaalia.
- "Näytölle tulostaminen"
(
Toisessa tenttikysymyksessä voi esiintyä näitä aiheita: taulukot, sanakirja (hakemistorakenteet, "mäpit"), perintä, rekursio. Ensimmäisessä läpipääsyn ratkaisevassa tehtävässä niitä ei esiinny.
Näistä aiheista ei tule tenttikysymyksiä: graafiset käyttöliittymät, ohjelmakoodin laatu ja uudelleenrakentaminen, ohjelmointikielten historia ja muut ohjelmointiparadigmat, Eclipse-sovelluskehitin, Python-tulkin toiminta, Vislaamo-oppimistyökalu.
Muuttujien rooleista ei tule erikseen kysymyksiä, mutta roolinimikkeitä voi esiintyä tentissä annetussa ohjelmakoodissa.