Helsingin yliopisto
/ tietojenkäsittelytieteen laitos
/ Ohjelmointitekniikka (Scala)
/ © Arto Wikla 2012
Ohjelmointitekniikka (Scala): koealue ja vihjeitä
Muutettu viimeksi 23.2.2012
/
Sivu luotu
20.2.2012
/
[Scala]
Mahdollisesti hyödyllistä materiaalia:
Koealue:
Koekysymykset perustuvat luentoihin ja
kurssin verkkomateriaaliin.
Seuraavassa viitteet lukuihin tarkoittavat nimenomaan
verkkomateriaalin lukuja, eivät oppikirjan lukuja.
Numerointi on sama kuin oppikirjassa, mutta sisällöt poikkeavat
toisistaan jonkin verran.
- Luku 1 ei ole kokeen kannalta kaikkein keskeisintä sisältöä.
Siellä on taustaa, käytännön neuvoja ja ihan alkeita sekä toisaalta
aika pitkällekin meneviä esimerkkejä.
- Luvuissa 2 ja 3 on kaikenlaista pikku sälää, jota voi kokeessakin
tarvita. Listaoperaatioiden listaa ei kannata opetella ulkoa. ;)
- Luvut 4 ja 5 ovat keskeistä peruskalustoa.
Operaattoripresedenssiluetteloa ei kannata opetella ulkoa. ;)
- Luvun 6 idea immutaabeleista olioista on keskeistä Scala-tekniikkaa.
- Luvussa 7 täsmennetään rakenteisten lauseiden toimintaa ja merkitystä.
Myös for-rakenteen suodatus-generointi ja yield-arvojonot
ovat keskeistä Scala-tekniikkaa. Lohkorakenteena toteutettu
nimiavaruuksien sisäkkäisyys on keskeistä Scala-tekniikkaa.
- Luku 8 on keskeistä Scala-tekniikkaa.
- Luvuissa 9 ja 10 esitetyt tekniikat ovat keskeisiä.
Luvun 9 kohta "Tyypitettyjä Lambda-lausekkeita Scalalla"
ei kuulu koealueeseen.
- Luvun 11 luokkahierarkian ideat on syytä osata selittää:
Mitä ja miksi ovat Any, AnyVal ja AnyRef. Entä Nothing ja
Null. Nothing-AnyVal-knoppologiaa ei kysytä.
- Luku 12 on keskeistä Scala-tekniikkaa. Erityisesti
rajapintojen ohuus-rikkaus-ideat on syytä ymmärtää.
Pinoutuvat muunnokset on syytä myös osata.
Mutta moniperinnästä ja timanteista ei kysytä.
Ja kuten jo kurssimateriaalissa todetaan: linearisointi ei
kuulu koealueeseen. Kyse on siis siitä, että kokeessa vastaan
ei tule tilannetta, jossa liitetyillä piirreluokilla olisi
huomioon otettavia yliluokkia.
- Luvun 13 package-import-asioista ei tule kysymyksiä.
- Luvun 17 "Iteroitavat ja iteraattorit"
on syytä osata.
- Luvun 30 aktoreista ja niiden viestinvälityksestä riittää
ymmärtää ja osata vai sen verran ja sillä tasolla, kuin
materiaali esittää.
- Luvun 32 GUI-asioista ei kysymyksiä.
Kokeen luonteesta:
- Kokeessa asioiden ymmärryksen ja taitamisen tasoksi riittää
kurssimateriaalin ja luentojen taso. Kuten on nähty, Scala
on vahva kieli ja samat asiat voidaan tehdä hyvin monella
tavalla.
- Joissakin harjoitustehtävien esimerkkiratkaisuissa
on tutustuttu moniin mielenkiintoisiin ohjelmointitekniikoihin,
mutta näitä luentojen yli meneviä asioita ei siis kokeessa kysytä.
Saa käyttää, jos osaa myös selittää siten, että kokeen tarkastajakin
ymmärtää.
- Jippoiluja ja tahallista harhaanjohtamista
yritetään välttää koetehtävissä. Niitä on oman edun vuoksi järkevää
välttää myös koevastauksissa...
- Luultavasti tehtävätyypit ovat (mm./ainakin) seuraavanlaisia:
- Selitä lyhesti XXXX ja anna myös valaisevia ohjelmaesimerkkejä.
(XXXX on jokin Scalan käsite tai tekniikka)
- Mitä seuraava tulostaa: XXXX? Miksi?
Mistä tekniikasta on kysymys? Miten kaikki oikein käy?
Pelkästä tulostuksesta ei saa pisteitä, mutta myös ilman oikeaa
tulostusta pisteet ovat tiukassa.
(XXXX on ohjelmanpätkä)
- Selitä XXXX, anna pieniä esimerkkejä ja perustele
XXXX:n hyödyllisyys(tms.)
(XXXX on jokin ohjelma-arkkitehtuurin väline kuten
funktioparametri, sulkeuma, luokka, abstrakti luokka,
piirreluokka, pakkaus, iteraattori, aktori ...)
- klassinen essee
- ...
- [Laadi ohjelma, joka XXXX.
(XXXX on ohjelman "spesifikaatio")
[Tämä tehtävätyyppi on ongelmallinen!]]
- Luultavasti kokeessa on hyvin vähän varsinaista itsenäistä
ohjelmointia. Varsinaisia avoimia ohjelmointitehtäviä ei ole lainkaan.
- Luultavasti kokeen ohjelmanpätkissä - annetuissa tai pyydetyissä -
on kyse kurssimateriaalin ohjelmien muunnelmista.
Hyvää tarkoittavia neuvoja:
- Kannattaa muistaa, mistä kokeessa oikeastaan on kysymys ja mistä ei:
Koevastaus on teksti, jolla tarkastaja saadaan
uskomaan - tai edes luulemaan - että vastaaja osaa asiat.
Ajattele koetilanteessa tarkastajan psykologiaa,
älä omaa intoasi tai ahdistustasi!
Koe on kuin esitys, jonka vastaanottaja on tarkastaja.
- On järkevää vastata ensin niihin kysymyksiin, jotka osaa.
Sitten voi yrittää sitten niitä toisia ...
- On järkevää käyttää kuvaavia tunnuksia ja kirjoittaa hyvin selkeätä
ohjelmatekstiä! Silloin tarkastaja saattaa ymmärtää, mitä hivenen
virheelliselläkin ratkaisulla on tarkoitettu.