wiki:k2013/harjoitustyo
Last modified 5 years ago Last modified on 2013-02-15 09:00:27

Ohjelmointi 1 (kevät 2013) » Harjoitustyö

1. Tärkeimmät asiat

  • Suunnitelma hyväksytty demo 5 palautukseen mennessä. Esittele suunnitelma ohjaajalle pääteohjauksessa tai varaa sitä varten aika Korpista ohjaajalle.
  • Harkkatyö 50 % valmis demo 8 palautukseen mennessä. Esittele työsi ohjaajalle ja (varaa sitä varten aika.)
  • Harkkatyö 90 % valmis demo 11 mennessä.
  • Jokainen esittelee työnsä muille opiskelijoille. Sovitaan tästä myöhemmin, mutta esittelyyn osallistuminen on pakollista.
  • Harkkatyö valmis ennen tenttiä (tenttiajat Korpissa). Hyväksyttäminen ohjaajalla. Varaa aika tai tule ohjauksiin.

2. Aluksi

  • Harjoitustyö on osa kurssisuoritusta. Arvosteluasteikko on hyväksytty/hylätty, ja harjoitustyö pitää olla hyväksytty ennen kuin kurssista voi saada arvosanan.
  • Harjoitustyö tehdään mielellään parityönä, mutta jos haluaa tehdä yksin niin sekin onnistuu. Paria voi kysellä esim kurssin postilistalta (katso wikin etusivu).
  • Harjoitustyömäärä opiskelijaa kohti on noin 30 tuntia (ks. kurssin työmäärä). Parityönä tehtävän työn määrä on siis keskimäärin 60 tuntia.

3. Pelin suunnittelu

  • Mieti minkä tyylisen pelin haluaisit tehdä. Jotain osviittaa antaa tieto siitä, millaisia pelejä Jypelillä voi tehdä.
  • Ennen pelin toteuttamista tehdään suunnitelma. Suunnitelma tulee hyväksyttää ohjaajilla ennen varsinaisen työn aloittamista. Varaa aika Korpista.
  • Ohjaajat majailevat sovittuina aikoina 4. kerroksen OTE-solun avotilassa. Kysy virastomestareilta apua jos et löydä perille!
  • Suunnittelemattomia harjoitustöitä ei hyväksytä.
  • Ohjeet suunnitelman palauttamiseksi Wikiin
  • Suunnitelmassa pitää olla ainakin seuraavat asiat:
    1. Tekijöiden nimet
    2. Pelin nimi
    3. Pelaajien lukumäärä (1-4)
    4. Pelin taustatarina tai kuvaus pelin teemasta
    5. Pelin idea ja tavoitteet
    6. Hahmotelma pelistä (kuva tai kuvia paperilla käsin tai tietokoneella piirrettynä)
    7. Jonkinlainen kuvaus siitä, miten peli etenee
    8. Pelissä olevat oliot, niiden toiminnot ja missä suhteessa ne ovat toisiinsa
    9. Toteutuksen suunnitelma: mitä tekisin ja missä järjestyksessä? Millä aikataululla?
  • Esimerkkisuunnitelma LunarLander-pelistä
  • Suunnitelma esitellään ohjaajille deadlineen mennessä (ks. tämän sivun yläosa)

4. Vaatimukset

  • Harjoitustyön aihe on siis peli. Millainen peli, sen päättää jokainen itse. Huomaa, että peli voi olla myös "ei-perinteinen", käytä mielikuvitustasi ja luovuuttasi.
  • Pelissä pitää "tapahtua jotakin", eli ruudulla pitää tapahtua jotain järkevää. Harjoitustyön pääpaino ei kuitenkaan ole hienossa ulkoasussa.
  • Vähintään muutama aliohjelma Main():n ja Begin():n lisäksi
  • Joillekin aliohjelmille on vietävä parametrejä ja joidenkin on palautettava arvoja

4.1 Korppiin merkittävät kentät

Alla on tarkastettavien osa-alueiden lista, jonka ohjaajat tulevat tarkastamaan harjoitustyön esittelemisen yhteydessä. Jos ok niin merkintä tulee Korppiin.

  1. Nimi ja versio: Koodissa tekijän nimi ja versio (@author, @version)
  2. Kommentit: Kaikki luokat, aliohjelmat ja metodit ovat kommentoituja. Dokumenteissa kuvataan sitä, mitä aliohjelmat tekevät, ensisijaisesti ei sitä miten, se kommentoidaan itse koodin sisään jos tarvitsee.
    • Voit tarkistaa dokumentaatiosi: palauta itse kirjoittamasi harjoitustyön .cs-tiedosto (usein Begin()-aliohjelman sisältämä .cs-tiedosto) myös NettiDemoWWW:llä demoksi numero 15. Paina Päivitä index.html ja katso sitten minkälainen dokumentti syntyi työstäsi. Mieti kommentteja sen mukaan.
  3. Nimeäminen: Muuttujien ja aliohjelmien nimeäminen johdonmukaista ja loogista, noudattelee C#-kielelle sovittuja käytänteitä. Katso koodauskäytänteet.
  4. } + 2 tyhjää: Aliohjelmien loppusulun } jälkeen vähintään 1, enintään 2 tyhjää riviä
  5. Attribuutit oikein: Ei turhia attribuutteja
  6. Ei globaaleja: Ei globaaleja muuttujia. Jos jotain globaaleja arvoja tarvitaan, ne tehdään vakioilla (const).
  7. Ei toistoa: Ei turhaa toistoa, joka olisi voitu tehdä silmukoilla tai aliohjelmilla. Tämä koskee myös aliohjelmia.
  8. Taulukko: Käytetään taulukkoa tai listaa
  9. Silmukka: Ainakin yksi silmukka
  10. Toimii: Työ toimii ainakin merkittävältä osin (kaikkia suunnitelman osia ei tarvitse olla tehtynä).
  11. Ei turhia literaaleja: Koodissa ei numeerisia vakioita, tai merkkijonoja, joiden pitäisi olla const-määreellä. Suomennettuna: et siis saa tehdä koodia esim: (y < 18) jossa 18 on nyt väärin, sen tilalle muuttuja tai vakio.

5. Työn esittely ja hyväksyttäminen

  • Koko harkkatyön Solution viedään versionhallintapalvelimelle esimerkiksi TortoiseSVN:n (ohje NPO wikissä) avulla.
  • Töiden esittely tapahtuu myöhemmin sovittavien pelisääntöjen mukaan kuitenkin niin, että kaikki esittelevät. Harjoitustyön ei tarvitse vielä olla 100% valmis esittelytilaisuudessa - tarkoitus on antaa ja saada palautetta jotta vielä viimeisiä pikku viilauksia voidaan tehdä.
  • Varaa (parisi kanssa) aika ohjaajalle, ja esittele harjoitustyösi. Näin voidaan varmistua että olet/olette todella itse tehneet pelin. Voit(te) esitellä pelisi myös ohjauksissa.
  • Työ on hyväksytettävä ohjaajilla viimeistään ennen deadlinea (ks. tämän sivun yläosa).