/* Jossain vaiheessa heitä johonkin kohtaan nuo ja mitä niistä on käsitelty/käsittelemättä: native strictfp synchronized volatile assert Käsittelemättä: enum transient abstract continue for new switch assert default if package synchronized boolean do goto private this break double implements protected throw byte else import public throws case enum instanceof return transient catch extends int short try char final interface static void class finally long strictfp volatile const float native super while Linkkejä: http://java.sun.com/docs/books/tutorial/java/javaOO/index.html http://java.sun.com/docs/books/tutorial/java/nutsandbolts/finalVariables.html JavaCC on "parserigeneraattori". Java Practices -- Joitain Java-kikkoja selkeähkösti jäsenneltynä; ei parane purra nielemättä, mutta on noissa paljon asiaakin. */ ?>
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.
$last_modified = filemtime("index.php");
print(" Viimeksi kajottu ");
print(date("Y-m-d", $last_modified).".
");
?>
MUUTOKSIA TULEE! (Nyt on hyvä aika klikata selaimen Reload-nappia, ettet
lue välimuistista vanhentunutta tietoa...)
"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.
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:
|
|
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.
/*Huomaa esitellä byte code tässä !!
Myöhemmin roskienkeruu: http://www.iecc.com/gclist/GC-faq.html
*/ ?>
|
|
|
6 | to 11.5. | Sisälle Javan rakenteisiin.
(Muista luento 4, monisteen luvut
4 ja
5)!
|
||
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?
|
------- 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.
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 |
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ä. |
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) |
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ä joihinkin dokumentteihin, jotka liittyvät kurssilla hipaistaviin ohjelmoinnin tai ohjelmistotekniikan piirteisiin. Ovat kuitenkin olennaisesti muiden kurssien tai (myöhemmän) itseopiskelun aiheita:
Tässä on listattu joitakin mikroluokissa käytössä olevia työkaluja, joilla kurssiin liittyviä demoja ja harjoitustyötä esimerkiksi voi tehdä.