Kurssi käsittää Java -ohjelmoinnin perusteet. Tavoitteena on johdatella lukija selaimen päällä ajettavan appletin toiminnan ymmärtämiseen. Ennen kuin tälle tasolle päästään, joudutaan kurssin alussa opettelemaan kaikki Java -kieliopin perusteet perinteisesti mustalle ruudelle tulostaen. Niille, jotka ovat aikaisemmin ohjelmoineet jollain korkeamman tason ohjelmontikielellä, ei tässä osaa kurssia ole paljoa työtä. Pascal -kieleen verrattaessa Javasta löytyy lähes kaikki vastaavat rakenteet ja ohjauslauseet. Javan tietotyypit poikkeavat kuitenkin jonkin verran Pascal -kielen vastaavista. Tästä syystä kehoitan lukijaa kiinnittämään niihin erityistä huomiota. C++ -kielellä ohjelmoinut omaksuu varsin nopeasti Java -kieliopin. Java on rakenteiltaan ja syntaksiltaan rajoittuneempi kuin C++ ja vastaavasti jonkin verran selkeämpi ohjelmoitava.
Kurssi soveltuu myös opiskelijalle, jolla ei ole aikaisempaa ohjelmointikokemusta. Kurssin 7 ensimmäistä kappaletta käsittelee ohjelmonnin perusteita. Tässä vaiheessa olisi aloittelevalle ohjelmoijalle tarpeen ohjaavan opettajan avustus ja opastus. Ohjelmoimaan voi oppia tekemällä harjoituksia ja niiden perusteella omia ohjelmia. Kehoitan aloittelevaa ohjelmoijaa tekemään alkupään harjoitukset tunnollisesti ja niitä soveltaen tekemään runsaasti omia ohjelmia.
Kurssin alussa tehdään perinteisiä ohjelmia komentotason mustalle ruudulle. En kehoita ketään kovin paljoa käyttämään aikaa tulostuksien muotoiluun ja yksityiskohtiin koska nykyiset sovellusohjelmat eivät juurikaan toimi komentotasolla. Muotoiluun kannattaa keskittyä vasta windows- ja selainympäristössä. Alun hankalaa tulostus - syöttö ympäristöä ei kuitenkaan voi välttää opeteltaessa ohjelmoinnista vasta aivan perusteita.
Kurssin loppuosa käsittelee applettien ohjelmointia. Niissä on paljon esimerkkiohjelmia, joita kannattaa käyttää pohjana omien sovellusten tekemiseen. Applettikoodeja kirjoitettaessa samat ohjelmakoodipalikat toistuvat ohjelmasta toiseen. Täten nopea tapa ohjelman tekoon on käyttää valmista ohjelmapohjaa.
Kurssi on jaettu kuuteen kahden viikon osaan. Ensimmäisten viikkojen aikana vauhti on varsin ankara. Kunkin osan aikana annetaan tehtäviä, joihin saa mallivastaukset. Kurssissa on paljon tehtäviä. Ne tehtävät, joihin ei mallivastauksia saa on merkitty tähdellä * ja niiden tekeminen jää opiskelijan omalle vastuulle. Huomautettakoon, että useimmiten - varsinkin vaativammissa tehtävissä- mallivastaus ei välttämättä ole ainoa vastaus. Kehoitan kuitenkin tarkasti tutkimaan luentomateriaaliin liitetyt mallivastaukset. Niissä toivottavasti on ohjelmia kirjoitettu niin kuin ne on kokemuksesta osoittautuneet järkeviksi kirjoittaa. Kurssin suorittamiseen liittyvistä jaksotehtävistä on annettu ohje toisaalla.
Opiskelijalle toivotan onnea ja kärsivällisyyttä kurssin opinnoissan. Aina uuden radikaalisti aikaisemmasta poikkeavan ajattelutyylin omaksuminen johtaa ristiriitoihin ja tuskastumisiin. Kannattaa kuitenkin muistaa, että molemmat kuuluvat uuden asian oppimisprosessiin siinä missä riemun tunnekin tajuamisen hetkellä.
Luentomateriaalia työstettäessä internet -selaimet eivät vielä osanneet tulkita aivan kaikkia Javan version 1.2 piirteitä. Tämän takia jotkin piirteet aiheuttavat selaimessa virhetilanteen. Myöskin eri valmistajien selaimet käyttäytyvät hieman eri tavoin. Joulukuussa 1998 ilmestyneen javan version 1.2 päivityskorjaukset ilmestynevät todennäköisesti piakkoin selaimiin. Javan julkaisijan www -sivuilla tulisi käydä aina mainitun kaltaisten ongelmien ilmestyessä. Tämä kouluttaa myös tietolähteiden käyttöön nopeasti muuttuvassa internet -maailmassa. Kurssin kieleksi on valittu java juuri edellä mainitun nopean muutostahdin takia. Java on ohjelmointifilosofiansa vuoksi ilmeisen pitkäikäinen ohjelmointikieli. Javalla voi ohjelmoida todennäköisesti tulevaisuudessa niin teollisuusautomaatiota kuin kodin astianpesukonettakin.
Kurssi koostuu soveltuvin osin pitämistäni java -kursseista Lappeenrannan Kimpisen lukiossa. Kurssimateriaali on näiden luentojen pohjalta työstetty verkko-opetukseen soveltuvaksi. Kurssi etenee paljolti lineaarisesti oppikirjan tavoin. Asiamäärän lisääntyessä on kuitenkin pyritty tarpeen mukaan laittamaan linkkejä taaksepäin aikaisemmille sivuille. Tässä suhteessa kurssimateriaalia kehitetään edelleen.
Lappeenranna teknisen korkeakoulun opettajille Timo Hatakka, Lasse Lehtimäki, Jari Koponen ja Jukka Turunen esitän nöyrimmät kiitokseni saamistani arvokkaista vihjeistä, huomautuksista ja korjausehdotuksista, jotka ovat tehneet tämän kurssimateriaalin työstämisen ylipäätään mahdolliseksi.
Lappeenrannassa 13.02.2002, Ilkka Koivistoinen