Helsingin yliopisto
/
Tietojenkäsittelytieteen
laitos
/
Java-ohjelmointi
Copyright © 2003
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 8.12.2003)
Koe on keskiviikkona 17.12. kello 16:00-20
Porthania I:ssä. 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ä. Alkueläin- ja
tossueläinsimulaatioita ei kuitenkaan kysytä.
Tärkeitä asioita, vihjeitä, ...
- Kokeeseen saa ottaa mukaan
A4-kokoisen "lunttilapun". Ohjeita luntin laadintaan ja perusteluita
kokeilulle löytyy
lunttiohjesivulta.
- Luvut 1, 2 ovat taustatietoja. Koska kurssi Ohjelmoinnin perusteet
on tämän kurssin esitietovaatimus, 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ä.
- 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...
- Luku 4:
- Kurssin keskeisin luku, koko jutun ns. "pihvi"!
- Javan olio-ohjelmointikalusto: idea ja kayttötavat,
- abstraktin tietotyypin ja kapseloinnin 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ä
- 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ä periaateet siinä laajuudessa
kuin materiaalissa on esimerkkejä.
- Jos try-catch- lausetta tai throws-ilmausta tarvitaan,
riittää osata käyttää kaikkien 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 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 saa käyttää, jos ei erikseen kielletä, "S.o.p"-lyhennettä
saa käyttää; se tarkoittakoon nimenomaan println-versiota.
- Harjoitustehtävät ovat tärkeitä. Alkueläin- ja
tossueläinsimulointeja ei kysytä. 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ä (kokeesta on saatava vähint. 25 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.