Harjoitustyö

Kurssi suoritetaan tekemällä pakollisia viikkotehtäviä ja pakollinen harjoitustyö. Kurssin arvosana on viikkotehtävistä lasketun keskiarvon ja harjoitustyöstä saadun arvosanan keskiarvo.

Ts. jos viikkotehtävistä saa keskiarvoksi 2.3 (ei pyöristetä kokonaisluvuksi) ja harjoitustyöstä arvosanaksi 1 niin kurssin arvosana on 2 koska (2.3+1)/2.0 = 1.65 ja pyöristyy ylöspäin kakkoseksi

Harjoitustyön saa aloittaa tehtyään viikkotehtäviä vähintään ykkösen (1) arvosanaan edellyttämän määrän.

Kaikki valmiit harjoitustyöt ja keskeneräisten harjoitustöiden suunnitelmat julkaistaan kurssin Wiki-sivustolla kaikkien kiinnostuneiden katsottavaksi.

Harjoitustyön saa tehdä haluamallaan välineellä, vapaavalintaisella ohjelmointikielellä ja mihin tahansa ympäristöön kunhan työhön voidaan sisällyttää kaikki vaadittavat asiat (erityisesti komponentti) ja ohjaaja kykenee ohjelmaa testaamaan. Eksoottisimmissa tapauksissa varaudu toimittamaan tarkistajalle kone/laite jossa ohjelmasi toimii.

Harjoitustyön aihe

Tärkeimpiä asioita harjoitustyössä on käyttöliittymän komponenttien käyttö. Erityisesti omien komponenttien tuottaminen ja jakaminen muiden käyttöön. Algoritmiset seikat eivät ole niin suurella painolla.

Harjoitustyö pitää toteuttaa järkevällä ja hyvällä ohjelmointitavalla. Tarkistajalla on täydet valtuudet hylätä näennäisesti toimivat mutta purukumilla viritetyt tai muuten epäilyttävät tekeleet.

Aihe

Harjoitustyön aihe pitää keksiä itse. Se voi olla esimerkiksi jonkin aikaisemmin tehdyn komentoriviohjelman käyttöliittymän muuttaminen graafiseksi, jokin opetusohjelma, peli tai mikä tahansa mieleenjuolahtava (tarpeellinen) aihe.

Harjoitustyön toteuttamista XNA-frameworkin päälle EI suositella. XNA ei ole kunnolla tapahtumapohjainen kehitysympäristö ja puhdas peliohjelmointi eroaa muutenkin tavallisesta graafisten käyttöliittymien ohjelmoinnista. WPF- ja Windows Forms -pohjaiset peliharjoitustyöt ovat ok.

Omatta aihetta miettiessä voi käydä hakemassa ideoita vanhoista harjoitustöistä.

Vaaditut ominaisuudet

Harjoitustyön arvosana määräytyy harjoitustyöaiheen yleisen vaativuuden, työn toteutuksen ja työssä toteutettujen yleisten ominaisuuksien perusteella.

Harjoitustyö noudattaa UX guiden tärkeimpiä käytettävyysohjeita. Kts. ITKA112-kurssin luento 2-3 Mitä korkeamman arvosanan harjoitustyöllään haluaa saada niin sitä tarkemmin UXGuidea on noudatettava.

Seuraavaan on listattu eritasoisten harjoitustöiden perusvaatimuksia. Listausta tullaan vielä päivittämään ja tarkentamaan.

Taso 1

Arvosanan 1 saavuttaa, kun harjoitustyö sisältää vähintään seuraavat perusasiat ohjelman varsinaisen toiminnallisuuden lisäksi:

Taso 3

Arvosanan 3 saavuttaa, kun ohjelma sisältää taso 1:en edellyttämät asiat ja näiden lisäksi ohjelma toteuttaa seuraavat asiat:

Lisäksi ohjelman on toteutettava joitakin seuraavista:

Taso 5

Arvosanan 5 saavuttaa, kun ohjelma sisältää taso 3:en edellyttämät asiat ja näiden lisäksi ohjelma toteuttaa seuraavat vaatimukset:

Tason 5 ohjelma voi sisältää mm. seuraavia asioita:

Komponentit

Jokaisen harjoitustyössä pitää valmistua vähintään yksi yleiskäyttöinen komponentti (arpakuutio, pelikortti, korttipakka, pelilauta tms...), joka luovutetaan kaikkien kurssilaisten käyttöön dokumentoituna. Komponentin ei välttämättä tarvitse olla graafinen.

Komponenttia varten kirjoitetaan oma WWW-sivu, joka linkitetään varsinaisen harjoitustyön WWW-sivuun. Komponentin omalta sivulta löytyy komponentin dokumentaatio (vrt. Microsoftin dokut) ja itse komponentti kaikkine tykötarpeineen zip-paketissa.

Komponentit linkitetään kurssin Wiki-sivustolle vapaasti levitettäväksi ja tarkoitus on että kurssilaiset käyttäisivät mahdollisuuksien mukaan myös muiden tekemiä komponentteja.

Dokumentointi

Harjoitustyön tärkeä osa on dokumentoitu ohjelmalistaus. Osa dokumentointia on ongelman jakaminen selkeiksi ja hyvin nimetyiksi aliohjelmiksi/komponenteiksi/luokiksi. Samoin osa dokumentointia on epämääräisten vakioiden siirtäminen koodista tiedoston alussa oleviin vakiolausekkeisiin.

Dokumentoinnissa on käytettävä XML dokumentaatio kommentteja.

Ohjelmakoodin dokumentoinnin lisäksi on työn wiki-sivulle kirjoitettava selkeä kuvaus ohjelmasta, sen toiminnasta ja myös lyhyt käyttöohje.

Ohjelman ja komponentin www-dokumentaatio on helppo tuottaa suoraan ohjelmakoodin kommenteista Doxygen-ohjelman avulla.

Arvostelu

Työ arvostellaan työn tavoitetason perusteella. Jos työ ylittää selvästi siihen alunperin suunnitellut vaatimukset voi saada myös korkeamman arvosanan. Jos työ alittaa tavoitteensa niin arvosanaa vastaavasti lasketaan.

Arvosteluun vaikuttavat mm. seuraavat seikat:

Julkisuus ja tekijänoikeus

Keskeneräiset ja valmiit harjoitustyöt ovat nähtävillä WWW:ssä. Ohjelman tekijä voi muotoilla lähdekoodiinsa haluamansa tekijänoikeudet (esim. GPL).

Työkalut

Käytettäväksi työkaluksi suositellaan Visual Studio 2010 ja C#-ohjelmointikieltä mutta työkalun ja kielen saa vapaasti valita kunhan lopputuloksena on ohjelma josta löytyy vaatimukset toteuttava graafinen käyttöliittymä.

Ohjausta ja neuvoja on tarjolla vain Visual Studiota ja C#-kieltä käyttäville. Muilla ohjelmilla ja kielillä tekevät ovat oman onnensa nojassa...

Aikataulu ja suunnitelma

Koska erityinen toivomus opiskelusta työelämään siirtyneiltä on se, että pitäisi opettaa myös suunnittelua ja aikataulussa pysymistä, niin jokainen laatii omasta harjoitustyöstään SIISTIN suunnitelman ja aikataulun, johon on kirjoitettu vähintään.

Aikataulu ja suunnitelma kirjoitetaan siistiksi WWW-sivuksi ja sijoitetaan joko kurssin Wiki-sivustolle. Jokainen käy itse lisäämässä Wiki-sivustolle linkin työhönsä. Samalle sivulle listataan myös töissä toteutettavat komponentit.

Aikataulu voi olla suunniteltu jokaisen omiin tarpeisiin ja opintoihin sopivaksi, ja siinä pysyminen sekä harjoitustyö arvostellaan osana kurssia arvosanaa. Liian löysä ja epätäsmällinen aikataulu sinänsä on jo negatiivinen ilman erittäin hyviä perusteita.

Aikataulu ja suunnitelma on palautettava lomakkeella viimeistään 15.4.2012.

Harjoitustyösuunnitelman palauttaminen

Harjoitustyön tekijän tiedot

Harjoitustyön tavoitetaso

Ohjaaja hyväksyy tai pyytää täydentämään suunnitelmaa. Hyväksynnän jälkeen voi varsinaisen työn tekemisen aloittaa. Ohjaaja kopioi hyväksytyn aikataulun talteen eikä siitä tämän jälkeen voi enää poiketa, kuin erittäin hyvästä syystä.

Aikataulun seuranta

Aikataulussa pysymistä seurataan raportoimalla työn aiheen hyväksymisestä ja työn aloittamisesta ja työn valmistumisesta keskustelupostituslistalla ja päivittämällä työn www-sivulle viimeisin versio/vaihe työstä. Myös muista työn kannalta olennaisista vaiheista voi raportoida keskusteluryhmässä.

Esim. Matti Meikäläisen suunnitelma saa ohjaajalta hyväksynnän 13.4.2012. Matti lähettää keskusteluryhmään viestin jossa kuvaa lyhyesti aiheensa ja antaa linkin harjoitustyösuunnitelmansa wiki-sivuun. Ensimmäinen toimiva ja jotenkin käyttökelpoinen mutta viimeistelemätön versio valmistuu 1.5.2012. Matti sijoittaa käännetyn työn ja lähdekoodit työnsä www-sivulle 1.5.2012 ja lähettää postituslistalle viestin jossa kertoo työnsä ensimmäisen version olevan kokeiltavissa ja tutkittavissa. Tarkistaja seuraa listan viestejä ja kirjaa ylös toiden etenemisen ja käy ehkä myös kokeilemassa ja katsomassa töitä. Kuka tahansa muukin kurssilainen voi käydä tutkimassa miltä Matti Meikäläisen työ tässä vaiheessa vaikuttaa ja voi ottaa myös työstä mallia tai antaa siihen vinkkejä ja palautetta. Matti saa työnsä valmiiksi 5.5.2012 ja ilmoittaa tästä keskusteluryhmään ja palauttaa työnsä ohjaajalle palautuslomakkeella.

Ohjaus

On aivan ilmeistä, että tämän kurssin harjoitustyössä tulee erinäisiä ongelmia, joita ratkoessaan vain hakkaa päätään seinään ja meinaa vielä viivästyä aikataulusta. Kohtuullisen ongelma ratkaisuyrityksen jälkeen voi ilman muuta kääntyä aina ohjaajan puoleen, on sitä itsekin oltu vaikeuksissa (ja tullaan olemaan). Kurssin keskustelupostituslistaa kannattaa käyttää kuitenkin käyttää mahdollisimman paljon koska samantyyppinen ongelma voi hyvin koskea muitakin. Neuvoja ja vinkkejä voi keskusteluryhmän kautta saada muiltakin kuin kurssin luennoijalta. Muiden neuvominen keskusteluryhmässä korottaa omaa arvosanaasi.

Yleisimmistä ongelmista pyritään keräämään kurssin oma FAQ-sivu jota kannattaakin aina ensimmäisenä tutkia. Toivottavaa olisi, että myös päivittäisitte listausta aina kun saatte selvitettyä jonkin ongelman, joka saattaa koskea muitakin.

Aluksi kysyn joka tapauksessa, että onko tilannetta tutkittu debuggerilla, joten tämä kannattaa tehdä jo etukäteen. Samoin ongelma kannattaa yrittää paimentaa hyvin pienelle alalle. Näin voimme vähän nopeuttaa ongelman käsittelyä.

Ohjausta saa sähköpostilla tai kurssin IRC-kanavalla (#appro) tai erikseen sovittavana ohjausaikana. Huhtikuussa järjestetään vielä torstaisin pääteohjauksia joissa voi käydä kyselemässä apua työnsä ongelmiin opettajalta tai muilta kurssilaisilta.

Valmis työ

Valmis työ sijoitetaan työn Wiki-sivustolle zip-pakettina. Paketin pitää sisältää kaiken ohjelman kääntämiseen vaadittavan eli koko projektin ja myös valmiin suoritettavan ohjelman.

Valmiin harjoitustyön palauttaminen

Harjoitustyön tekijän tiedot

Kerro ja perustele millaisen arvosanan harjoitustyösi ansaitsee

Vanhoja harjoitustöitä

Käyttäjien kommentit

Kommentoi tätä sivua Lisää uusi kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/gko/harkka/
© Antti Ekonoja (antti.j.ekonoja@jyu.fi) <http://users.jyu.fi/~anjoekon/>
Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <http://hazor.iki.fi/>
2012-04-30 00:22:52
Informaatioteknologia - Jyväskylän yliopiston informaatioteknologian tiedekunta