Helsingin yliopisto
/
Tietojenkäsittelytieteen
laitos
/
Java-ohjelmointi
Copyright © 2004
Arto Wikla.
Tämän oppimateriaalin käyttö on sallittu vain yksityishenkilöille
opiskelutarkoituksissa. Materiaalin käyttö muihin tarkoituksiin,
kuten kaupallisilla tai muilla kursseilla, on kielletty.
Java-ohjelmointi: koevihjeitä
(Muutettu viimeksi ??.12.2004)
Koe on tiistaina 14.12. kello 15-19 yliopiston päärakennuksen salissa
1 (Fabianinkatu 33).
Koeaikaa on 3 1/2 tuntia.
Koealue:
- kirjassa (4. painos):
luvut 1-5, ei kuitenkaan kappaletta 4.3.4 linkitetyistä listoista
(s. 174-179), ei kappeletta 5.3 sarjallistetuista olioista eikä
kappaletta 5.4 näppäristä tietorakenteista,
luvun 5 Java-API:n tiedostojenkäsittelyluokkia ei tarvitse osata ulkoa
- www-sivuilla:
luvut 1-5, ei kuitenkaan kappaleen 4.6 kohtaa "Pakkaukset
Unixissa/Linuxissa (bash-shell)",
ei kappeletta 5.3 "Pari näppärää tietorakennetta",
luvun 5 Java-API:n tiedostojenkäsittelyluokkia ei tarvitse osata ulkoa
- Harjoitustehtävät ovat tärkeitä.
Tärkeitä asioita, vihjeitä, ...
- Kokeeseen saa ottaa mukaan
A4-kokoisen "lunttilapun". Ohjeita luntin laadintaan ja perusteluita
menettelylle löytyy
lunttiohjesivulta.
- Luvut 1, 2 ovat taustatietoja. Koska kurssi Ohjelmoinnin perusteet
on tämän kurssin esitietovaatimus, joten noiden lukujen asiat on
tietenkin osattava. Niitä ei kuitenkaan mitenkään erityisesti
kysellä tai testailla.
- Luku 3:
- Tiivis kertaus ja täydennys algoritmien laadintavälineistä.
- "Varattuja sanoja ei tarvitse osata luetella!"
- Alkeistyypit - viitaustyypit: tärkeä ymmärrettävä.
- Numeeristen tyyppien tarkkoja lukualueita ei kysytä.
Ylivuotoasiat eivät tällä kurssilla ole mitenkään
kovin kiinnostavia.
- Eksplisiittistä tyyppimuunnosta (cast) ei pyydetä tekemään,
on järkevää silti ymmärtää, mistä on kyse ja milloin
implisiittinen on luvallinen.
- Matemaattisia perusfunktioita ei tarvitse osata ulkoa.
- Laskentajärjestystä ja operaatioiden sitovuutta ei kysytä, mutta
ne on tietenkin käytännössä osattava. (Tai ainakin osattava
käyttää sulkumerkkejä.)
- Keskeytyslauseita break ja continue ei pyydetä käyttämään
ohjelmoinnissa.
Toki niitä saa käyttää, jos osaa tehdä sen hyvin.
- Mitään tehtävää ei pyydetä ratkaisemaan rekursiolla. Saa toki
käyttää, jos on aivan varma että osaa ja että
rekursio on kyseissä tilanteessa järkevää...
- Luku 4:
- Kurssin keskeisin luku, koko jutun ns. "pihvi"!
- Javan olio-ohjelmointikalusto: idea ja kayttötavat,
- kapseloinnin ja abstraktin tietotyypin idea, "API-kuvauksien"
ymmärtäminen ja lukutaito (kokeissa on usein annettu
tuollaisia ja pyydetty toteuttamaan tai/ja käyttämään niitä!)
- ilmentymämuuttujat ja luokkamuuttujat,
- ilmentymämetodit ja luokkametodit,
- luokan lataaminen ja olion luonti,
- luokkamäärittelyn rakenne ja mahdollisuudet,
- periytyminen, yli- ja aliluokat, konstruktorit periytymisessä,
polymorfismin idea
- luokan käyttötavat,
- abstrakti luokka ja rajapintaluokka (esseiden lisäksi näitä
voi olla myös ohjelmointitehtävissä!)
- pakkausten käyttö Java-tasolla on ymmärrettävä, mutta kokeessa
ei kysytä pakkauksien toteuttamisesta erityisissä
käyttöjärjestelmissä, esim. Unixissa/Linuxissa, Windowsissa tms.
- näkyvyyden säätely on ymmärrettävä sekä teoriassa että käytännössä.
- Luku 5:
- Tiedostojen käsittelyn valmiita luokkia ei tarvitse osata ulkoa.
Jos sellaisia tarvitaan, ne annetaan. (Yleensäkään Javan APIa
ei ole järkevää opetella ulkoa... No jokin String-luokan
compareTo ja vastaavat on toki hyvä muistaa...)
- Poikkeusten käsittelystä on ymmärrettävä perusperiaatteet.
Oppimateriaalin esittelemä taso riittää!
- Jos try-catch- lausetta tai throws-ilmausta tarvitaan,
riittää osata käyttää poikkeusten yliluokkaa Exception.
Nykyään kokeissa yleensä on tarvittu try-catch-taitoa...
- Kirjan luvut 5.3. ja 5.4 ja www-materiaalin luku 5.3 eivät siis
kuulu koealueeseen.
- Luku 6:
- Sovelmia tai GUI-sovelluksia ei kokeessa ohjelmoida.
Niistä ei myöskään kysytä. Ideat on toki hyvä ymmärtää.
Muita neuvoja:
- On järkevää vastata ensin niihin kysymyksiin, jotka osaa.
Sitten voi yrittää sitten niitä toisia ...
- Jokainen vastaus kirjoitetaan omalle paperilleen (omille papereilleen).
- 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.
- Tarkastajille on annettu ohje "jos lausekkeen ymmärtämiseen kuluisi
enemmän aikaa kuin 15 sekuntia, lauseketta ei tarvitse yrittääkään
ymmärtää". On siis syytä kirjoittaa selkeitä lausekkeita.
- Jos kysymys kuuluu "käytössäsi on A, toteuta B",
silloin todellakin
tarkoitetaan, että käytössäsi on A, älä ihmeessä sitä toteuta,
toteuta B tavalla tai toisella A:ta käyttäen.
Kokeessa siis edellytetään lukutaitoa! :-)
- Luokkaa Lue on syytä käyttää tietojen lukemiseen,
ellei sitä erikseen kielletä, "S.o.p"-lyhennettä
saa käyttää; se tarkoittakoon nimenomaan
println-versiota.
- Harjoitustehtävät ovat tärkeitä. Jotkin esimerkkiratkaisut saattavat
mennä yli kurssin vaatimustason. Oppikirja, www-materiaali ja
ennen kaikkea luennot määräävät kurssin vaatimustason. Luennoijan
itse laatimat (muuutamat) esimerkkiratkaisut on pyritty pitämään
tuolla tasolla.
Viimeisten harjoitusten (5.)
Java-API:n tiedostonkäsittelyluokkia ei tietenkään tarvitse osata ulkoa.
- Vanhat kokeet ja vanhan Johdatus ohjelmointiin kurssin 2.
välikokeet saattavat olla kiinnostavia. Linkkipolkujen alkuja löytyy
kurssin
pääsivulta. Huomaa kuitenkin, että vanhat malliratkaisut
eivät välttämättä ole (enää?) täydellisiä! Tämän syksyn luennot ja
oppimateriaali määräävät, mikä kokeessa on "oikein"...,
"kehitys kehittyy"...
Vanhoihin selostuksiin ei siis voi vedota uuden kokeen
arvostelua arvostellessa! "Vastuu on lukijalla" - kuten
verkkosivuja luettaessa yleensäkin!
Kurssin arvosanan määräytyminen (alustava!):
harjoitukset 7 pistettä
koe 53 pistettä
-----------
yhteensä 60 pistettä
tehtyjä tehtäviä: 5 8 11 14 17 20 23
pisteitä: 1 2 3 4 5 6 7
pisteitä: 30 33 36 39 42 45 48 51
arvosana: 1- 1 1+ 2- 2 2+ 3- 3
Takaisin tulossivulle.