wiki:s2014/ht-palautusohjeet-cs
Last modified 2 years ago Last modified on 2014-12-26 14:00:57

Harjoitustyön ohjeet

1. Tärkeimmät asiat

https://trac.cc.jyu.fi/projects/ohj1/raw-attachment/wiki/k2014/harjoitustyo/ht-ajoitus.png

Kurssin SVN-repon osoite.

https://svn.cc.jyu.fi/srv/svn/ohj1-pelit/2014s
  • Vaihe 1: Suunnitelma hyväksytty Demo 5 palautukseen mennessä. Esittele suunnitelma ohjaajalle pääteohjauksessa tai varaa sitä varten aika Korpista ohjaajalle. Suunnitelma pitää kirjoittaa wikiin ennen kuin esittelet sen.
  • Vaihe 2: Harkkatyö 50% valmis (ja esitelty ohjaajalle) Demo 8 palautukseen mennessä. Tässä esittelyssä varmistetaan, että harjoitustyö on saatu aluille ja siinä on jo jotain toimivia elementtejä. Esittele työsi ohjaajalle ja (varaa sitä varten aika.)
  • Esittely muille: Harkkatyö n. 90 % valmis viimeiseen harjoitustöiden esittelytilaisuuteen mennessä. Jokainen esittelee työnsä muille opiskelijoille. Esittely: Esittelyt pidetään pienissä ryhmissä (pääteohjaus) ja ne aloitetaan viimeisten demojen palautusten jälkeen ke 26.11. Ks. ilmoittautumisohje. Läsnäolo on näissä pakollista vähintään kerran.
  • Harkkatyön vaihe 3 hyväksytty ennen tenttiä Hyväksyttäminen ohjaajalla. Varaa aika tai tule ohjauksiin. Syksyllä 2014 takaraja on 17.12 eli alkuperäisen tentin ajankohta.
  • HUOM Jos koet kurssin aikana myöhästyväsi jostain yllä mainitusta aikarajasta, ilmoita siitä aina harjoitustyön ohjaajallesi ja sovi hänen kanssaan uudesta aikarajasta. Jokainen aikaraja, josta opiskelija myöhästyy ilmoittamatta, aiheuttaa puolen numeron tiputuksen kurssin kokonais arvosanaan. Opiskelija, joka ei ole palauttanut harjoitustyötään 20.12.2014 mennessä, saa automaattisesti hylätyn arvosanan kurssista (ellei erikseen ole pakottavista syistä sovittu muuta).

2. Yleistä harjoitustyöstä

  • 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, tosin yleensä tuntemattoman kanssa parina oleminen ei tahdo onnistua).
  • 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.
  • entä jos en halua tehdä peliä, vihaan pelejä?
    • Pelin ei tarvitse olla räiskintää, se voi olla vaikka lapsille suunnattu yhteenlaskun tms. opetusohjelma (peli)
    • jos tuokaan ei käy, voidaan keksiä jotakin muutakin

3. Pelin suunnittelu

  • Suunnittelemattomia harjoitustöitä ei hyväksytä.
  • Ohjeet suunnitelman palauttamiseksi Wikiin ja videoesimerkki luennolta Luento 7a, 01:00.
  • 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.
  • Pelissä pitää "tapahtua jotakin", eli ruudulla pitää näkyä jotain järkevää. Huomaa että 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
  • taulukko/taulukoita/listoja
  • taulukkoja/listoja pitää "vipeltää" läpi (eli käyttää jotakin silmukkaa)
  • jos et halua tehdä peliä, lue C# harjoitustyö, ei peli
  • "lopullisessa" työssä ei kaiken suunnitellun tarvitse toimia. Tarkoitus on osoittaa että itsenäisesti hallitaan kurssin asiat.

4.1 Tarkistettava ennen työn hyväksyttämistä

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. Aliohjelminen nimet alkavat isolla kirjaimella. Jokaiselle aliohjelmalle merkitty miettien public, protected tai private.
  4. } + 2 tyhjää: Aliohjelmien loppusulun } 2 tyhjää riviä
  5. Attribuutit oikein: Ei turhia attribuutteja. Jokaiselle attribuutille private.
  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.

Jos työstä puuttuu (kuten saakin puuttuu) suunnitelmassa olleita toimintoja, niin ne dokumentoidaan .cs-tiedoston alkuun (luokan dokumentoinnin jälkeen, huomaa kaksi kauttaviivaa, ei kolme) tyyliin:

  // TODO: kolme muuta tasoa
  // TODO: ohjaus XBOX-peliohjaimella
  // TODO: verkkopeliversio

Tärkeää on tietää (ja dokumentoida) mitä on tehnyt ja mitä on tekemättä.

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

  • Koko harkkatyön Solution (ei bin eikä obj hakemistoa) viedään versionhallintapalvelimelle esimerkiksi TortoiseSVN:n (NPO wikissä) avulla (ohjeita svn:än käyttöön).
  • Työn esittely muille:
    • Töiden esittely tapahtuu pienissä ryhmissä (koko 5-15 henkeä, HT-näyttö, koska kohta 6.). Jokainen (pari) esittelee harjoitustyönsä oman ryhmänsä tapaamisessa. Harjoitustyön ei tarvitse vielä olla (mutta saa) 100% valmis esittelytilaisuudessa - tarkoitus on antaa ja saada palautetta jotta vielä viimeisiä pikku viilauksia voidaan tehdä.
  • Varsinainen hyväksyminen
    • Varaa (parisi kanssa) aika ohjaajalle, ja esittele harjoitustyösi. Näin voidaan varmistua että olet/olette todella itse tehneet pelin. Voit(te) hyväksyttää työsi myös ohjauksissa.
    • hyväksyminen voidaan tehdä myös näyttötilaisuudessa kun kaikki ovat oman esittelynsä pitäneet. Ohjaaja voi myös pyytää tekemään pikkuparannuksia ennen varsinaista hyväksymistä (tästä ei saa loukkaantua :-).
    • hyväksymisen voi pyytää myös ennen esittelytilaisuutta mikä työ on riittävän valmis.
    • Työ on hyväksytettävä ohjaajilla viimeistään ennen deadlinea (ks. tämän sivun yläosa).

6. Näyttötilaisuus (työn esitteleminen muille)

  1. Laita työsi versionhallintaan ohjeiden mukaisesti
  2. Harjoittele työn pudottamista toisella koneelle samoilla ohjeilla
  3. Varaa näyttötilaisuus Korpista valistemalla joku HT-näyttö-ryhmistä. Tilaisuuteen pitää tulla TASALTA ja varmistaa että työ tulee versionhallinnasta.
  4. Näyttötilaisuudessa kunkin ryhmän työ otetaan opettajan koneelle ja "pelataan" valkokankaalla. Tarkoitus on että kaikki paikalla olevat katsovat vuorotellen toistensa töitä. Jokainen sanoo myös muutaman sanan työstään ja siinä olevista ratkaisuista. Eli tämä on tavallaan "miniseminaari" (jossa esiintymistä ei arvostella :-).
  5. Erikoistapauksista (ei voi osallistua/esitellä tms) sovittava opettajan tai ohjaajien kanssa erikseen.