JavaCC on "parserigeneraattori". Java Practices -- Joitain Java-kikkoja selke�hk�sti j�senneltyn�; ei parane purra nielem�tt�, mutta on noissa paljon asiaakin. */ ?> TIEP111 - Ohjelmointi 2 --- Kes� 2006, Jyv�skyl�n yliopisto

TIEP111 - Ohjelmointi 2 --- Kes� 2006

Kurssin TIEP111 kes�n 2006 ilmentym�n tiedonantoja: linkit luentoaiheisiin ja lis�materiaaliin, demo, mallivastaukset, jne... Aikataulut, luentosalit, tulokset ja lomakkeet Korpissa: T�st� linkist�....

Tarkista, ett� olet saanut minulta postia v�likokeeseen liittyen. Vaihtoehtoja on:

Jos en ole l�hett�nyt mit��n postia, olen tulkinnut, ett� olet j�tt�nyt kurssin kesken. Jos t�m� ei mielest�si ole tilanne, ota yhteytt� v�litt�m�sti.

Sivu el�� kurssin ajan. "); ?> MUUTOKSIA TULEE! (Nyt on hyv� aika klikata selaimen Reload-nappia, ettet lue v�limuistista vanhentunutta tietoa...)

Sis�lt�

Tervetuloa kurssille 12.5.2006 asti

"Kioski on auki" 12.5.2006 asti. (Sen verran joustan Matti My�h�sille, jollainen itsekin aika usein olen...) Sen j�lkeen kurssia ei voi en�� aloittaa, koska mm. meill� on pakolliset demot ja harjoitusty� jo hyv�� vauhtia menossa. My�h�ilmoittautujien tulee tehd� 100 % demon 2 teht�vist� (jos ei ehdi palauttaa demoa 1 normaaliin tapaan).

Jos p��t�t osallistua, on kes�ohjelmasi saman tien ly�ty lukkoon hein�kuun loppupuolelle saakka: Tulet ohjelmoimaan. Paljon. Kurssi on ty�l�s, eli se vaatii aikaa ja istumista n�pp�imist�n ��ress�. Toisaalta el�m� on valintoja: r�tv��tk� kes�n rannalla velaksi vai opiskeletko siten, ett� yhteiskunta maksaa sinulle siit�. T�m� valinta on sinun. Toivottavasti kurssista tulee my�s palkitseva: Tavoitteena on saada osallistujille todella lyhyess� kalenteriajassa syntym��n alustava ohjelmoinnin taito. Guruja ei viel� Ohjelmointi kakkosella tehd�, mutta yritet��n saada jokainen oikealle tielle (ja pois v��rilt� raiteilta) ohjelmoinnin suhteen.

Helppoa se on (ja mukavaa) vaikkakin ty�l�st�. Tervetuloa.

T�m�n tervehdyksen, nettisivun ja kes�kurssin opetuksen allekirjoittaa Paavo Nieminen. Suurin osa materiaalista periytyy aiemmilta kurssikerroilta, joista melkein kaikki on pit�nyt Vesa Lappalainen.

Luennot

T�m� on luentosuunnitelma, jonka mukaan pyrin etenem��n. Merkitsen toteutuneet aiheet ja lis�materiaaliviitteet kunkin luennon j�lkeen. Saatan venkslata my�s tulevia aiheita paikasta toiseen, joten pit�k�� varanne ja tarkkailkaa ohjelmaa pari p�iv�� etuk�teen. P�iv�m��r�t ovat nyt lopullisia: Jos (puuta koputtaen) en tule kipi�ksi tai hulluksi, niin n�ill� ajankohdilla menn��n kurssin 52 luentotuntia:

nro viikko Ajankohta Aiheet, monisteviitteet Lis�materiaalia
1 18 ti 2.5. Kurssin aloitus:
  • Aikataulu, vaatimukset
  • johdattelua, motivointia
  • "mit� kaikkea, ja miksi, on ohjelmointi"
2 ke 3.5. Ohjelman elinkaari, suunnitteluvaihe esimerkkiohjelman kautta:
3 to 4.5. Viel� ohjelman suunnittelua esimerkkien kautta:
4 19 ti 9.5. Algoritmien suunnittelusta, toteuttamisesta ja testauksesta. P�yt�testi, totuustaulu.
5 ke 10.5. Ohjelmointikielten historia ja periaatteet; Java-kieli muiden joukossa.
6 to 11.5. Sis�lle Javan rakenteisiin. (Muista luento 4, monisteen luvut 4 ja 5)!
  • Javan k��nt�minen ja ajaminen komentokehotteessa: Windows/Unix
  • Lyhyt "kertaus" komentokehotteesta ja tehokkaasta tekstieditoinnista: miten ATK:sta tulee ATK:ta (Armottoman Tehottomasta Klikkailusta tulee Automaattista/Avustettua Tekstin Kirjoittamista)
  • 8. Java-kielen muuttujista ja aliohjelmista
7 20 ke 17.5.
8 to 18.5. Olioiden k�sittely alkaa, "paradigmahyppy"...
9 21 ti 23.5. Jatketaan luokista ja olioista
10 ke 24.5. Jatketaan luokista ja olioista. Polymorfismi, rajapinnat.
11 22 ti 30.5. Kertaus olioiden perusteista. Javan kielioppi: lauseet, lohkot, operaattorit, peruskontrollirakenteet.
12 ke 31.5. Luokkien suunnittelu, tietorakenteet, UML, CRC-kortit
13 to 1.6. Oliosuunnitelma ja sen toteutus olio-ohjelmointikielell�
14 23 ke 7.6. Poikkeukset (exceptions), Paketit (packages), Moduulijako ja yksikk�testaus, "Ohjelman synty"
15 to 8.6. Javan taulukot, merkkijonot, dynaaminen muisti, dynaaminen taulukko
16 24 ti 13.6. Dynaamiset taulukot ja Javan valmiit tietorakenteet. "autoboxing"
17 ke 14.6. T�ydennyst� Javaan ja olio-ohjelmointiin: abstract, final, implements, instanceof; abstraktit ja konkreettiset luokat. + Tiedostojen k�sittely�.
18 25 ti 20.6. Tiedostojen k�sittely [Java-moniste loppuu; edet��n loppukurssi esimerkkilistausten varassa.]
19 ke 21.6. Lis�� olioista ja dynaamisuudesta, linkitetty lista, Map.
20 to 22.6. Malliohjelman talletukset, Harrastukset. Iteraattorit.
21 26 ti 27.6. Olioiden v�linen kommunikointi. Lis�ksi: Versionhallinta. Refaktorointi. Suunnittelumallit.
22 ke 28.6. Funktio-oliot. Lis�ksi ehk� viel� jotain liukuluvuista (+avainsanasta strictfp). Lis�ksi ehk� jotain s�ikeist� (+avainsanoista synchronized, volatile). Lis�ksi ehk� jotain Javan alustariippumattomuudesta (+avainsanasta native sek� siit� miten Java-ohjelmaan saa aikaan alustariippuvuuden).
23 to 29.6. P��tesy�tt�
24 27 ti 4.7. Oikeellisuustarkistukset, ohjelman testausvaihe. Ehk� jotakin avainsanasta assert. JUnit.
25 ke 5.7. Etsiminen ja lajittelu Jos aikaa j��, avainsana enum sek� "serialization" ja transient. ClassLoader, Java virtuaalikoneen sielunel�m��.
26 to 6.7. Ohjelmointi on nyt opittu (?). Mihin suuntaan eteenp�in?
  • Tekstipohjainen k�ytt�liittym� graafiseksi.
  • Isommat ohjelmat, miksi ja mist�
  • "Public domain" -ratkaisut; milloin on OK copy-pastettaa koodia netist�.
  • Ohjelmoija, tiimi, kommunikointi
  • Yhteenveto: Mit� on k�sitelty luennoilla ja miksi.

------- T�ss� kohtaa menn��n: -------

Luennot on nyt pidetty, ja j�ljell� on kolme viikkoa hein�kuuta. Demot, p��teohjaukset ja varattavat harkkaohjausajat jatkuvat. Harjoitusty�st� pit�isi saada aikaan j�rkev� ohjelma ja legendaarinen "Vaihe 7" siten hyv�ksytyksi. Lis�ksi ajalle sijoittuu v�likoe sek� uusinta niille, jotka tupeksivat ensimm�isen yrityksen liian pahasti. Kun uusien eteen tulevien asioiden virta lopulta p��ttyy, yritet��n ne saada viel�p� jollain tavoin j�sentym��n kokonaisuudeksi. Eli senp� takia viimeinen kolme viikkoa ovat kurssin t�rkeimm�t! Yrit�n tsempata opettajana, ja toivottavasti porukka tsemppaa oppijoina. Lopussa toivottavasti on tapahtunut oppimista enemm�n oikeaan kuin v��r��n suuntaan. N�ytt�jen perusteella joudun miettim��n arvosanat niille, jotka pyristelev�t loppuun saakka.

Demot 1-6

Demokerta Linkki vastauksiin aiheet + Harjoitusty�vaihe
demo1 (poistettu) johdanto, algoritmien ideaa HT vaihe 1: Esisuunnitelma
demo2 (poistettu) algoritmeja, taulukoita, aliohjelmiin perustuvaa ohjelmointia
demo3 (poistettu) Java-aliohjelmia (=staattisia luokkametodeja) HT vaihe 2: K�ytt�liittym� ja -ohje, tallennusformaatti, ei Java-koodia
demo4 (poistettu) Syntaksi, l�hdekoodi, Java-oliot HT vaihe 3: K�ytt�liittym�luokka: P��menu ja alamenut Javalla
demo5 (poistettu) oliot, perint�, kapselointi HT vaihe 4: Tietorakennesuunnitelma, oliokaaviot
demo6 (poistettu) oliot, rajapinta HT vaihe 5: Tietorakenteet toteutettu Javalla, moduulijako

Demot 7-11

Demokerta Linkki vastauksiin aiheet + Harjoitusty�vaihe
demo7 (poistettu) merkkijonoja, matriiseja HT vaihe 6: Tiedostonk�sittely, luokkien v�linen yhteisty�
demo8 (poistettu) kertausta, tietorakenteita (dynaamisuus, geneerisyys, valmiit algoritmit) (toteutetaan ja testataan uusia toimintoja, ohjausta annetaan tarvittaessa jatkuvasti)
demo9 (poistettu) v�likoeteht�v�n tyyppisi� teht�vi� (sama jatkuu)
demo10 (poistettu) funktio-olioita, oikeellisuustarkistuksia, kokonaisuuden hahmottamista HT vaihe 7: Toimiva sovellus, kaunis koodi
demo11 (poistettu) kokonaisuuden hahmottamista, suorituskyvyn huomioimista, rekursion hy�dynt�minen algoritmeissa HT viimeistely ja (toivottavasti) hyv�ksynt�.

P��teohjaukset

nro Ajankohta Aiheet/teht�v�t
1 pe 5.5. Ohjaus1
2 pe 12.5. Ohjaus2
3 pe 19.5. Ohjaus3
4 pe 2.6. (Demoja, harkkaty�t�)
5 pe 9.6. (Demoja, harkkaty�t�)
6 pe 16.6. (Demoja, harkkaty�t�)
7 pe 30.6. (Demoja, harkkaty�t�)
8 pe 7.7. (Demoja, harkkaty�t�)
9 pe 14.7. Delphi-ty�kalu, ikkunaliittym�t, tapahtumapohjaisuus (+ Demoja, harkkaty�t�)
11 pe 21.7. Yleisesti v��rin/heikosti ymm�rrettyjen pointtien paikkailua/varmistelua (+harkkaty�t�, jos kell� viel� on)

K�yt�nt�j�, ohjeita

Tarkista, ett� olet saanut minulta postia v�likokeeseen liittyen. Vaihtoehtoja on:

Jos en ole l�hett�nyt mit��n postia, olen tulkinnut, ett� olet j�tt�nyt kurssin kesken. Jos t�m� ei mielest�si ole tilanne, ota yhteytt� v�litt�m�sti.

Jos N-asema ei toimi automaattisesti, joutuu kirjoittamaan Command Promptiin tuollaiset rivit:

net use N: /delete
net use N: \\eppi.ad.jyu.fi\mnt "" /u:""

Lis�tietoa: http://www.ad.jyu.fi/

Linkkej� materiaaliin

Aiemmilta kurssikerroilta

Muilta kursseilta ("esitietoa")

Java-speksej� Sunin supporttisivuilta

Liit�nn�istiet�myst�...

Linkkej� joihinkin dokumentteihin, jotka liittyv�t kurssilla hipaistaviin ohjelmoinnin tai ohjelmistotekniikan piirteisiin. Ovat kuitenkin olennaisesti muiden kurssien tai (my�hemm�n) itseopiskelun aiheita:

Ty�kaluja

T�ss� on listattu joitakin mikroluokissa k�yt�ss� olevia ty�kaluja, joilla kurssiin liittyvi� demoja ja harjoitusty�t� esimerkiksi voi tehd�.

Tekstieditoreja

Ohjelmakehitysymp�rist�j�

[--LINKKI SIVUN ALKUUN--]


(Validoi sivu WDG:n validaattorilla)