Ohjelmistotekniikan erikoiskurssi

TiteWiki

Loikkaa: valikkoon, hakuun

Sisällysluettelo

Kurssin perustiedot

  • Nimi: Ohjelmistotekniikan erikoiskurssi (meidän tapauksessamme J2ME-ohjelmointi)
  • Koodi: KTE1328
  • Aika: 27.10.2008 - 13.03.2009
  • Suoritus: pakollinen
  • Luokittelu: suuntautumisvaihtoehdon ammattiopinnot, ohjelmistotekniikan suuntautumisvaihtoehto
  • Laajuus: 3 op
  • Oppitunteja/viikko: 4
  • Arvostelu: 0-5
    • Oma arvosana: 5
    • Arvostelupvm: 31.03.2009
  • Läsnäolopakko: ei
  • Opettaja: Mikko Huhtanen

Virallinen kuvaus (scp.fi, opinto-opas 2005-2006)

Tavoite

-

Sisältö

-

Opetusjärjestelyt

-

Oppimateriaali

-

Hyväksymisvaatimukset

-

Oma kuvaus

Opetusjärjestelyt

Ohjelmistotekniikan erikoiskurssi voi mielestäni teoriassa vaihdella sisällöltään vuosikurssista toiseen, mutta ilmeisesti käytännössä se on kuitenkin ollut viime vuosina aina J2ME-ohjelmointia (huom. termi J2ME tunnetaan nykyisin Java ME:nä), kuten meilläkin tällä kerralla. Kurssi esiintyi lukujärjestyksissä nimellä "J2ME-ohjelmointi". Vanhaa tapaa on helppo jatkaa, kun ei tarvitse huolehtia uusista järjestelyistä...

J2ME:n kohdalla opiskellaan melko minimaalisesti puhdasta teoriaa kuunnellen - pääasiassa koodataan mobiililaitteisiin soveltuvia J2ME-sovelluksia NetBeans-kehitysympäristössä. Teoriaan kuuluisi periaatteessa Juha Peltomäen kirjoittama kirja J2ME-ohjelmointi (Docendon kustantama), mutta käytännössä sitä ei juurikaan seurattu, paitsi kokeeseen lukemisessa.

Oppitunnit etenivät usein tuskallisen hitaasti, mikä johtui osittain myös siitä, että NetBeans-kehitysympäristö temppuili useilla koneilla (käännöksissä tuli mystisiä virheitä, jotka korjaantuivat useilla "clean buildeilla" ja emulaattori ei aina suostunut käynnistymään). Opiskelutahti oli kaikkiaan kovin hidas, josta en liiemmin tykännyt, sillä oppitunneilla tuntui suurimman osan aikaa siltä, että siellä istui turhaan.

Vuoden 2008 lopulla käytiin läpi teoriaa ja tehtiin harjoituksia oppitunneilla. Vuoden 2009 puolella en käynyt oppitunneilla kertaakaan, vaan keskityin harjoitustyön tekemiseen kotioloissa.

Sisältö

Aivan alkuun katseltiin muutamia kalvoja, joilla selvitettiin J2ME-ohjelmoinnin taustoja ja nykytuulia. Sen jälkeen käytiin käsiksi käytännön harjoitteluun opettajan johdolla. Harjoitukset etenivät seuraavassa järjestyksessä (nimetty keksittyjen kutsumanimiensä mukaan):

  • Ovikello. Ensimmäiset askeleet J2ME-ohjelmointiin, mm. erilaisten näyttöjen luominen, näytöstä toiseen siirtyminen, syötteen lukeminen, ticker ja kuvien esittäminen.
  • Ulkoilu. Erilaisten elementtien käyttäminen (päivämäärä, kellonaika, radiopainikeryhmä, kuvat, tekstinsyöttölaatikko), ruudulta "isoon" tekstinsyöttöruutuun siirtyminen ja takaisin.
  • Kartta. Pääpaino canvas-siirtymisessä ja sieltä takaisin. Lisäksi aiheena kuvan vaihtaminen radiopainiketta painamalla.
  • Säie. Tässä harjoiteltiin nimensä mukaisesti säieohjelmointia ja lopputuloksena saatiin nuolikuvio vaeltamaan puhelimen näytöllä.
  • Nettihaku. HttpConnection- ja ContentConnection-luokkiin tutustumista, toisin sanoen haettiin internetistä puhelimen näytölle tekstiä tekstitiedostosta sekä kuvatiedosto.
  • RmsKoe. RecordStore-luokan käyttäminen eli tiedon tallentaminen puhelimen muistiin.

Lisäksi opettaja esitteli omaa vanhaa projektiaan, jossa matkapuhelimen Java ME -sovelluksella pystyttiin ohjaamaan ulkoista relettä.

Nämä harjoitukset saatiin käytyä läpi vuoden 2008 puolella, minkä jälkeen aloitettiin harjoitustyön tekeminen. Harjoitustyön aiheen sai keksiä itse, se piti vain hyväksyttää opettajalla. Harjoitustyöstä piti laatia seuraavaa:

  • aiheen kuvaus
  • tarkempi suunnitelma
  • itse toteutus, jossa sovelluksesta piti löytyä vähintään:
    • näyttöjä > 1
    • verkkoyhteys (hakua palvelimelta ja vientiä palvelimelle)
    • tiedon tallentaminen puhelimeen
    • säikeiden hyödyntäminen
    • piirto näytölle
    • kuvan esittäminen
  • käyttöohje
  • raportti

Itse valitsin harjoitustyökseni sovelluksen, jolla pystytään tallentamaan oman auton tankkaustietoja internetissä olevaan tietokantaan. Laadin ensin omaan www-hotelliini Perl-skriptin, joka ylläpitää CSV-muotoista tietokantaa tankkaustiedoista. Skriptillä pystyy lisäämään tietokantaan uusia tankkauksia sekä tiedustelemaan rekisteritunnuksen perusteella auton viimeisintä tankkausta. Kännykkäsovellukseen tuli toiminnoiksi uuden tankkaustiedon tallentaminen joko verkkoon tai puhelimen muistiin, puhelimen muistiin tankkaustietojen tarkastelu ja muokkaaminen sekä lähettäminen palvelimelle, viimeisimmän tankkaustiedon haku sekä joukko sovelluksen asetuksia, jotka tallennetaan kaikki puhelimen muistiin (esitallennetut tankkausasematiedot, rekisteritunnukset sekä tankkaajan nimi ja palvelinkomentosarjan osoite).

Harjoitustyön tekeminen oli paikoin vaikeaa, sillä oppitunneilla ei käyty kunnolla läpi kaikkia asioita, joita harjoitustyön toteuttamiseksi tarvittiin. Onneksi koululla olisi voinut käydä kysymässä apua opettajalta, joten aivan yksin ei tarvinnut tietoa etsiä. Myös työvälineiden valinnassa oli pientä epäselvyyttä: koululla oli käytettävissä vain NetBeansin 5.5.1-versio, mutta harjoitustyö pyydettiin kuitenkin toteuttamaan uudella 6.5-sarjan versiolla. Nämä versiot eivät olleet keskenään yhteensopivia, eli jos projektia yritti avata koululla, ei se onnistunut.

Koe/muu arvostelu

Kurssin arvostelu perustui kokeen suorittamiseen ja harjoitustyöhön.

Koe pidettiin kurssin lopulla. Siitä kerrottiin etukäteen epämääräisesti vain, että kokeessa kysytään asioita, joihin löytyy vastauksia Peltomäen J2ME-kirjasta. Niinpä käytännössä koko kirja oli koealuetta. Koe oli loppujen lopuksi melko helppo. Siinä kysyttiin hieman omasta harjoitustyöstä (esimerkiksi miten oli hyödyntänyt jotain tiettyjä elementtejä), vähän yleisesti J2ME:stä sekä verkkoyhteyksistä ja tiedon tallentamisesta puhelimen muistiin.

Harjoitustyön arvosanaan 3 vaadittavat asiat luettelin Sisältö-osiossa. Arvosanaa voi nostaa sanatarkasti seuraavilla toimenpiteillä: "fiksu vekotin, paljon kaikkea pakollista, jotakin mitä ei ole hoksattu vaatia".

Harjoitustyön palautti ajoissa luokaltani vain kolme oppilasta. Tähän kiireeseen vaikutti varmasti monilla opinnäytetyön sekä projektityön tekeminen. Myöhästymisilmiö ei ollut opettajalle uusi, sillä sama on kuulemma toistunut menneinä vuosina.

Todellinen hyöty oppimisen kannalta

J2ME:stä (tai siis nykyisin Java ME:stä) minulla ei ollut ennestään kokemusta, joten odotin kurssia mielenkiinnolla. Ainakin NetBeansilla tehtynä Java ME -ohjelmointi osoittautui melko helpoksi. Harjoitustyö oli mielenkiintoinen ja sain sen jopa toimimaan lähes täydellisesti. NetBeansin oman emulaattorin lisäksi testasin sovellustani omassa puhelimessani, jossa se myös toimi odotetusti. Kerrankin näki siis selviä käytännön tuloksia.

Vähänkin kännykkäsovellusten luomisesta kiinnostuneille hyvä kurssi, vaikkakin kurssimateriaalin toivoisi saatettavan ajantasaiseksi. Ei sovi toki unohtaa sitä, että Java ME taitaa olla ainakin Suomessa tappioasemassa verrattuna Symbianiin ja Maemoon, joten työelämässä Java-pohjaisiin kännykkäsovelluksiin ei välttämättä törmää.

Arvosanat kurssille (0-5)

  • Toteutus: 3
  • Opetus: 4
  • Hyödyllisyys: 5
  • Oma suoritus: 5
Henkilökohtaiset työkalut