Helsingin yliopisto
/
Tietojenkäsittelytieteen
laitos
/
Ohjelmoinnin jatkokurssi
Copyright © 2009 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.
Ohjelmoinnin jatkokurssi: koevihjeitä
(Muutettu viimeksi 17.6.2009)
Koealue:
- Kirjassa:
luvut 2-5, ei kuitenkaan kappaletta 4.3.4 linkitetyistä listoista
(s. 174-179), luvun 5.3 sarjallistetuista olioista ei kysytä,
luvun 5 tiedostojenkäsittelytavat ovat "vanhentuneita".
Aika monessa muussakin asiassa www-materiaali on kehittynyt
kirjan sisältöä monipuolisemmaksi ja uudenaikaisemmaksi.
- Www-sivuilla:
luvut 2-5, ei kuitenkaan luvun 4.3. kohtaa "Linkitetyt rakenteet"
eikä luvun 4.6 kohtaa "Pakkaukset Unixissa/Linuxissa (bash-shell)".
Luvun 5.1. kaikenlaisia eri poikkeusluokkia ei tarvitse opetella
ulkoa:
jos poikkeuksia kokeessa kysellään, riittää osata käyttää
pelkästään poikkeusta Exception.
Luvun 5.1. kohdasta "Virheiden käsittelyä" ei tule koekysymyksiä.
Luvun 5.2 kohta "Historiaa - opettavainen tarina" ei kuulu
koealueeseen, ei myöskään kohta "Sarjallistaminen -
binääritiedostoja".
Luvusta 5.3 riittää osata käyttää geneerisiä tietorakenneluokkia
ArrayList<E> ja HashMap<K,V>.
Luku 6 siis ei kuulu koealueeseen.
- Harjoitustehtävät
ovat tärkeitä, erityisesti "vaikeat" tehtävät.
Tärkeitä asioita, vihjeitä, ...
- Luvut 1 ja 2 ovat taustatietoja. Koska kurssi Ohjelmoinnin perusteet
on tämän kurssin esitietovaatimus, noiden lukujen asiat on osattava, vaikkei
niitä erityisesti testatakaan.
- 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...
- 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
- mutta luokkamuuttujan käyttöä Jonotuskoneen tapaan
"juoksevan numeron generointiin" ei enää kysytä kokeessa
- luokan lataaminen ja olion luonti
- luokkamäärittelyn rakenne ja mahdollisuudet
- luokan käyttötavat
- periytyminen, yli- ja aliluokat, konstruktorit periytymisessä,
polymorfismin idea
- 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:
- 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...
- On hyvä osata tekstitiedostojen lukemista ja kirjoittamista.
Luokkien File, PrintWriter ja Scanner
yksinkertainen käyttötaito on siis syytä osata.
- ArrayList<E>- ja HashMap<K,V>-luokkien
yksinkertainen käyttö on hyvä osata.
Muita 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.
- Tarkastajalle 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.
- System.out.println-lauseen saa lyhentää muotoon "S.o.p".
- Harjoitustehtävät ovat tärkeitä!
- Vanhat kokeet ja vanhan Johdatus ohjelmointiin kurssin 2.
välikokeet saattavat olla kiinnostavia. Linkkipolkujen alkuja löytyy
kurssin
luennointikertojeni luettelosta.
On syytä kuitenkin huomata, että kurssin sisältö on joiltakin
osiltaan muuttunut melkoisesti!
Vanhoihin malliratkaisuihin on muutenkin syytä suhtautua terveellä
kritiikikillä, koska kehitys kehittyy...
Takaisin koetulos- ja koeselityssivulle.