Harjoitustyöstä

Yleistä:

Harjoitustyön yleiset vaatimukset

Seuraavien tulee toteutua, että harjoitustyö voidaan hyväksyä:

  1. Ohjelman tulee olla Java-kieltä.

  2. Lähdekoodin tulee kääntyä Java 5 -kääntäjällä. Kääntäjä ei saa antaa yhtään varoitusta (tiukimmalla varoitusasetuksella).

  3. Lähdekoodin tulee olla Javan koodauskäytänteiden mukainen:

    http://java.sun.com/docs/codeconv/

    Lisäksi on noudatettava seuraavia:

    • tabulaattoria ei käytetä sisennykseen vaan pelkkiä välilyöntejä (säädä editorisi asetukset).
    • jokaisella metodilla tulee olla täydellinen javadoc-kommentti johon sisältyy oikeellisesti käytetyt @param ja @return -tägit.
    • tiedoston alussa tulee olla tekijän koko nimi.
  4. Ohjelmaan EI SAA TEHDÄ ITSE LUOKKAA, JOSTA LUODAAN OLIOILMENTYMÄ! Se siis sisältää vain "static" -metodeja (aliohjelmia).

  5. Kaiken tulee sijaita yhdessä Javan käännösyksikössä. (Helpottaa tekemistä ja tarkastamista; oikeasti ja jatkokursseilla tämä on järjetöntä!)

  6. Jokaisen selkeästi erillisen toiminnallisuuden tulee sijaita omassa aliohjelmassaan. Yksikään aliohjelma ei saa itsessään olla kovin pitkä.

  7. Globaaleja muuttujia ei saa olla (so. mikään muuttuja ei saa näkyä koko käännösyksikön alueella) ellei ole vakio. Kaikki viedään tarvittaessa parametrina tai luodaan paikallisesti.

  8. Koodissa ei saa olla kovakoodattuja numeerisia arvoja (kaikki data on tultava käyttäjältä tai tiedostosta)

  9. Käännetyn ohjelman tulee toimia tehtävänannon mukaisesti.

  10. Peruskäytettävyyden tulee toteutua:

    • Kun käyttäjältä kysytään syötettä, tulee ohjelman tarkoin kertoa odotetun syötteen muoto ja merkitys.
    • Syötteiden oikeellisuus on tarkistettava. Esim. ohjelma ei saa kaatua poimimattomaan poikkeukseen, jos kokonaisluvuksi yritetään syöttää "kilpikonna".

Aiheita

Tulee olemaan jotain seuraavanlaisia:

Merkkijonoja:

  • syötetään merkkijonoja / tekstitiedostoja ja tutkitaan tai muokataan niitä pienillä algoritmeilla.

Puolimatemaattisia:

  • syötetään liukulukumatriisi ja analysoidaan rivejä/sarakkeita
  • yksinkertaisia algoritmeja vektori- ja matriisilaskentaan
  • tilastollisia tunnuslukuja

Urheilullisia:

  • pisteenlasku urheilukilpailuun (syötetään tulokset ja lasketaan sijoitukset tmv)

Pikkupelejä:

  • kahden pelaajan ristinolla konsolikäyttöliittymällä