Harjoitustyö

Kurssi suoritetaan tekemällä pakollisia demotehtäviä ja pakollinen harjoitustyö.

Kaikki valmiit harjoitustyöt julkaistaan kurssin Wiki-sivustolla kaikkien kiinnostuneiden katsottavaksi.

Harjoitustyöllä voi korottaa tai laskea (-10 prosenttiyksikköä - +15 prosenttiyksikköä) demotehtävien perusteella saamaansa kurssin arvosanaa. Erittäin ansiokas työ nostaa numeroa ja huono rimanalitus voi laskea arvosanan jopa alle ykkösen eli kurssia ei saakkaan läpi ellei parantele harjoitustyötään.

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 ja sisältö

Tärkeimpiä asioita tässä 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 ohjelman käyttöliittymän muuttaminen graafiseksi, jokin opetusohjelma, peli tai mikä tahansa mieleenjuolahtava (tarpeellinen) aihe.

Aiheen virikkeeksi voi käydä katsomassa vanhoja harjoitustöitä.

Esimerkkejä komentoriviohjelmista joihin voi rakentaa graafisen käyttöliittymän:

Lisäideoita voi selailla vaikka Free Software Directorysta.

Harjoitustyöksi sopivia peli-ideoita semmoisenaan tai yksinkertaistettuina:

Vaaditut ominaisuudet

Harjoitustyössä pitää olla tyypilliset Windows- ominaisuudet:

Lisäominaisuudet

Lisäksi ohjelmasta on löydyttävä jotain seuraavista (jos aihe vain suo mahdollisuuden):

Eli laivanupotuspeli, joka on aina 10x10 ruudussa on huono aihe, mutta jos käyttäjä voi itse valita pelilaudan koon jostakin dialogista ja menusta, niin aihe onkin jo parempi.

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 dokumentti 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ä osaa 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 syytä käyttää XML dokumentaatio kommentteja.

Arvostelu

Harjoitustyö vaikuttaa kurssin arvosanaan nostamalla tai laskemalla kurssin demotehtävistä saatua suoritusprosenttia. Työ voi laskea demoprosenttia enintään 10 prosenttiyksikköä ja nostaa 15 prosenttiyksikköä

Arvosteluun vaikuttavat mm. seuraavat seikat:

Mitä nollan (0) prosenttiyksikön harkkaan tarvitaan

Jos harjoitustyön aihe on selvästi yksinkertainen ja helppo niin nollan (0) prosenttiyksikön työssä pitää olla vähintään seuraavat asiat kunnossa:

Lisäprosentteja voi saada mm. seuraavilla: laaja ja/tai monimutkainen aihe, hyvin yleiskäyttöinen ja hyödyllinen komponentti

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 aikataulun, johon on kirjoitettu vähintään.

Aikataulu ja suunnitelma kirjoitetaan siistiksi WWW-sivuksi ja sijoitetaan joko kurssin Wiki-sivustolle tai tekijän haluamaan paikkaan, joka linkitetään wiki-sivustoon. 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 2.11.2010.

Harjoitustyösuunnitelman palauttaminen

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 etenemisestä kurssin keskustelupostituslistalla ja päivittämällä työn www-sivulle viimeisin versio/vaihe työstä.

Esim. Matti Meikäläisen suunnitelman mukaan työn ensimmäinen toimiva ja jotenkin käyttökelpoinen mutta viimeistelemätön versio valmistuu 1.12.2010. Matti sijoittaa käännetyn työn ja lähdekoodit työnsä www-sivulle 1.12.2010 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 tarpeen mukaan 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.

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). Myös kurssin keskustelupostituslistaa kannattaa käyttää erityisesti silloin, kun sama ongelma saattaa koskea useampaa.

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.

Valmis/keskeneräinen työ

Valmis työ sijoitetaan työn WWW-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

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/>
Jukka Mäntylä (jmantyla@iki.fi) <http://www.iki.fi/jmantyla/>
2011-01-12 12:17:52
Informaatioteknologia - Jyväskylän yliopiston informaatioteknologian tiedekunta