27.3.2023
Esitteessä kuvataan Jyväskylän yliopiston informaatioteknologian tiedekunnassa järjestettäviä tietotekniikan opiskelijaprojekteja. Vuodesta 1995 lähtien toteutetut ohjelmistot sekä ne toteuttaneet projektiryhmät, tilaajat ja ohjaajat esitellään erillisessä dokumentissa. Sovellusprojektien esittelykalvot löytyvät pdf- ja ps-tiedostoina sekä projektien kehitysvaiheiden kuvaus HTML-, pdf- ja ps-tiedostoina. Sovellusprojekteissa käytettävä projektisopimusmalli ja vaitiolosopimusmalli ovat myös saatavissa.
Sovellusprojektien kautta tietotekniikan opiskelijat saavat käsityksen työelämän ohjelmistoprojektien hallitusta läpiviennistä ja ryhmätyöstä sekä projekteihin liittyvästä suullisesta ja kirjallisesta viestinnästä. Projekteissa opiskelijat saavat myös kokemusta kurssien harjoitustöitä laajempien ohjelmistojen määrittelystä, suunnittelusta, toteuttamisesta ja testaamisesta sekä tarvittavien dokumenttien laatimisesta. Jyväskylän yliopiston tietotekniikan pääaineesta valmistuneiden eräänä vahvuutena katsotaan olevan hyvät ohjelmointitaidot, joten tietotekniikan opiskelijaprojektit ovat ohjelmointipainotteisia.
Sovellusprojekteissa ei valitettavasti pystytä riittävästi panostamaan kehitettävien ohjelmistojen määrittelyyn ja testaukseen johtuen lyhyestä noin neljän kuukauden toteutusajasta. Projektissa toteutettavan sovelluksen käyttäjilleen tarjoamien tietojen ja toimintojen tulee siten olla pääosin tiedossa jo projektin alussa. Rajatusta ajasta ja työpanoksesta johtuen projektien tuloksena yleensä syntyy prototyyppi sovelluksesta, eikä kehitetylle ohjelmistolle voida antaa takuuta tai tarjota ylläpitoa. Tilaaja joutuukin lähes poikkeuksetta jatkokehittämään projektin tuloksia.
Kunkin opiskelijan työpanos Sovellusprojektissa on 200-400 tuntia (10-15 opintopistettä). Kyseisen projektin ohella sen jäsenet osallistuvat projektiryhmien yhteisiin koulutuksiin, joiden tunnit (50-80 tuntia) he kirjaavat erilliselle oheiskurssille. Projektin on havaittu olevan työmäärältään huomattavasti normaaleja luentokursseja työläämmän. Opiskelijat joutuvat siten varaamaan projektille lukukauden opintoja suunnitellessaan vähintään kaksinkertaisen työmäärän luentokurssiin verrattuna.
Sovellusprojekteihin osallistuneilla opiskelijoilla on ollut hyvin vaihteleva määrä opintoja takanaan aina tietotekniikan perus- ja aineopinnoista (aiemmin cum laude approbatur -kokonaisuus) melkein valmiiksi filosofian maisterin tutkinnoksi asti. Pääosin opiskelijat ovat kuitenkin kolmatta tai neljättä vuotta tietotekniikkaa pääaineenaan opiskelevia, sekä he edustavat tietotekniikan eri suuntautumisvaihtoehtoja. Heterogeenisen opiskelijaryhmän on katsottu tukevan opintojakson oppimistavoitteita, sillä tällöin opiskelijat saavat totuudenmukaisemman käsityksen projektimuotoisesta ryhmätyöstä, toiminnasta erilaisten ihmisten kanssa sekä projektin läpiviennin ja ryhmätyön iloista ja vaikeuksista.
Lisäksi voidaan todeta olleen keskimäärin vähemmän projektityön ongelmia sellaisissa ryhmissä, joiden jäsenet eivät ole tunteneet toisiaan hyvin projektin alussa. Tämä saattaa ainakin osittain johtua siitä, että projektimuotoinen työtapa on helpompi omaksua, kun ryhmän jäsenten välillä ei ole olemassa aiemmin muodostunutta työtapaa. Helpoksi koetun aiheen ja tutun ohjelmointityökalun yhdistelmä on myös joissakin tapauksissa hankaloittanut opiskelijoiden asennoitumista projektityöhön.
Sovellusprojektien aiheita voi ehdottaa pitkin vuotta vastaavina ohjaajina toimiville, joiden yhteystiedot löytyvät esitteen lopusta. Sovelluksen määrittelyyn ja suunnitteluun on varattu aikaa ainoastaan muutamia viikkoja. Tästä johtuen tilaajan aihetta ehdottaessaan laatima aiheen alustava määrittely ja rajaus edesauttavat menestyksellistä projektityötä ja onnistuneen sovelluksen toteuttamista.
Puolesta tusinasta tietotekniikan opettajasta koostuva työryhmä valitsee ehdotetuista aiheista toteutettavat. Valintaperusteina käytetään mm. aiheen soveltuvuutta oppimistavoitteisiin nähden, tilaajan sitoutumista projektiin, aiheen tarkahkoa rajausta, aiheen sopivaa vaativuutta sekä aiheen tuomaa uutta tietotaitoa opiskelijoille ja tiedekunnalle. Valinnassa suositaan ohjelmointipainotteisia aiheita. Kyseisessä valintatilaisuudessa muodostetaan myös projektiryhmät opiskelijoiden ilmoittautumislomakkeeseen kirjaamien toiveiden ja taitojen, suoritettujen opintojen sekä tavoitteena olevien tulosten toteutuksessa tarvittavien tietotaitojen perusteella.
Sovellusprojektien läpivientiä ohjaavina vastaavina ohjaajina ovat toimineet keväästä 1995 lähtien ohjelmistotekniikan lehtori Jukka-Pekka Santanen ja keväästä 2005 lähtien suunnittelija Ville Isomöttönen. Kari Kärkkäinen toimi ohjaajana syksystä 2000 kevääseen 2004, Markus Inkeroinen keväästä 2003 kevääseen 2005, Lari Kannisto keväästä 2003 syksyyn 2005, Hilkka Heikkilä syksystä 2004 kevääseen 2005 sekä Vesa Korhonen syksystä 2005 syksyyn 2006.
Informaatioteknologian tiedekunta palkkaa kullekin projektiryhmälle yhden ohjelmointityökaluja tai työn aihealuetta tuntevan teknisen ohjaajan. He ovat pääsääntöisesti projektin aiemmin suorittaneita tietotekniikan opiskelijoita. Jyväskylän yliopiston ATK-tuki ylläpitää projektiryhmien käyttöön annettuja mikroja ja ohjelmistoja. Laadukkaan sovelluksen ja menestyksellisen projektityön toteutuminen vaatii kuitenkin tilaajan edustajan aktiivista sitoutumista projektiin.
Projektiryhmä saa informaatioteknologian tiedekunnalta käyttöönsä lukittavan projektihuoneen, kullekin projektin jäsenelle PC-tietokoneen sekä osan tarvittavista ohjelmistoista. Yleensä tilaaja toimittaa projektin ajaksi ryhmän käyttöön tarvittavien kaupallisten ohjelmistokehitystyökalujen lisenssit (katso luku 9).
Sovelluksen lähdekoodin toteutusratkaisuihin, nimeämiseen ja kommentointiin kiinnitetään huomiota vähintään katselmoinneissa. Sovelluksen käyttöliittymän eri versiot ovat tilaajan edustajien ja ohjaajien koekäytettävissä testausympäristössä, jonka lisäksi niitä katselmoidaan useammassa palaverissa. Projektiryhmä testaa toteuttamansa sovellusosiot ohjelmoinnin yhteydessä, sekä se ajan salliessa testaa toteutetun prototyypin kokonaisuutena.
Projektiryhmä kokoontuu ohjaajineen vähintään joka toinen viikko projektipalaveriin, jossa käsitellään mm. projektin tilaa ja läpivientiä, resurssien käyttöä ja tarpeita, sovelluksen toteutusvaihtoehtoja ja -ratkaisuja, tulosten sisältöä sekä kohdattuja ongelmia. Palaverissa käsitellyt asiat, tehdyt päätökset ja sovitut tehtävät ryhmä kirjaa pöytäkirjaksi. Tilaajan edustajan osallistuminen suurimpaan osaan projektipalavereista on välttämätöntä käyttäjien tarpeita vastaavan ohjelmiston aikaansaamiseksi.
Kukin projektiryhmän jäsen pitää kirjaa projektissa tekemästään työstä. Projektiin liittyvät luennot, ryhmätyöt, esittelytilaisuudet ja dokumenttien kirjoitusasun muokkaamisen jäsenet kirjaavat erilliselle opintojaksolle Sovellusprojektin hallintaa, viestintää ja työkaluja. Tällä ratkaisulla voidaan osittain erottaa toisistaan projektin tulosten aikaansaamiseen ja oppimiseen käytettyjä työtunteja.
Tietotekniikan opiskelijaprojekteja on viimeisen 14 vuoden aikana läpiviety reilut 150. Niistä on toteutettu vajaa puolet yrityksille, reilu kymmenesosa valtion ja kuntien organisaatioille, viidesosa Jyväskylän yliopiston informaatioteknologian tiedekunnalle sekä neljäsosa Jyväskylän yliopiston muille yksiköille. Samanaikaisia projektiryhmiä on lukukausittain ollut kahdesta kymmeneen. Jyväskylän yliopistossa kehitettyyn ja käytössä olevaan Korppi-opintotietojärjestelmään on toteutettu sovelluksia parissakymmenessä projektissa, joiden lisäksi puolta tusinaa muutakin tietojärjestelmää on kehitetty useamman projektiryhmän voimin.
Opiskelijaprojekteissa on toteutettu sovelluksia mm. Windows-, Unix- ja Linux-käyttöjärjestelmiin. WWW-ympäristöön on kehitetty kymmenissä projekteissa sovelluksia. Reilussa kymmenessä sovellusprojektissa on toteutettu kämmenmikroon, kännykkään tai pienlaitteeseen liittyviä sovelluksia. Myös pari sulautettuihin ja hajautettuihin järjestelmiin liittyvää sovellusta on kehitetty opiskelijaprojekteina. Tietokanta on liittynyt joka toiseen projekteissa toteutetuista ohjelmistoista ja XML-tekniikat pariinkymmeneen, sekä grafiikkaa on toteutettu pariinkymmeneen sovellukseen.Ohjelmointikielinä on eniten käytetty C:tä, C++:aa ja Javaa sekä sovelluskehitysympäristöinä mm. Visual C++:aa, Delphiä, JBuilderiä ja Eclipseä. Projekteissa on käytetty myös useita muita ohjelmointikieliä ja -tekniikoita, kuten JavaScriptiä, JSP:tä, Perliä, Pythonia, PHP:tä ja Tcl/Tk:ta. Tietokannanhallintajärjestelmistä on käytetty PostgreSQL:ää, MySQL:ää ja Microsoft SQL Serveriä. WWW-palvelinohjelmistoista on eniten käytetty Apachea ja Tomcatia sekä sovelluskehyksistä ja sovelluspalvelimista mm. Strutsia, Djangoa ja Zopea.
Sovellusprojektien aiheita valittaessa ei kuitenkaan rajoituta em. ohjelmointikieliin, tekniikoihin tai palvelinohjelmistoihin. Monessa toteutettavaksi valitussa aiheessa on nimenomaan katsottu niiden etuna olleen uuden ohjelmointikielen tai ohjelmistokehitystyökalun oppimisen sekä kokemusten kartuttamisen uusista palvelinohjelmistoista, tekniikoista tai aihealueista. Jos projektissa käytettävä ohjelmistokehitystyökalu tai tekniikka ei ole tuttu tietotekniikan opettajille tai opiskelijoille, projektin nopea liikkeellelähtö ja sujuva eteneminen vaativat tilaajan osallistumista aihealueen tietämyksen ohjaamisen ohella myös tekniikan tai työkalun käytön ohjaamiseen.
Yliopistojen toimintatapoihin katsotaan kuuluvan tuotetun tiedon julkisuuden, jolloin hankittu tietämys hyödyttää mahdollisimman laajasti yhteiskuntaa. Lisäksi ohjelmistotuotannossa ja siten myös tietotekniikan opetuksessa on siirrytty olio- ja komponenttipohjaiseen ohjelmointiin, jonka yhtenä tärkeänä tavoitteena on uudelleenkäytettävän ohjelmakoodin kehittäminen. Kyseisistä syistä johtuen Sovellusprojektin tilaajan tulee projektin kuluessa valita projektimaksu kahdesta hintaluokasta, jotka poikkeavat kehitetylle sovellukselle vaaditun salauksen sekä ryhmän ja tiedekunnan käyttöoikeuksien osalta.
Alemmassa hintaluokassa tilaajaa laskutetaan 1000 euroa (+alv) projektin jäsentä (eli opiskelijaa) kohti. Tällöin projektin tuloksena syntyneet lähdekoodit, ohjelmat ja dokumentit ovat julkisia. Julkisten tulosten pysyvät rinnakkaiset käyttöoikeudet ovat tilaajan ohella myös ryhmän jäsenillä ja tiedekunnalla. Tilaajan liiketoimintansa kannalta salassapidettäviksi katsomansa tiedot (kuten käytännön tapausten todelliset datat) voidaan kuitenkin jättää tarvittaessa pois ryhmän jäsenille ja informaatioteknologian tiedekunnalle jäävistä julkisiksi sovituista lähdekoodeista, dokumenteista ja muista materiaaleista.
Korkeammassa hintaluokassa tilaajaa laskutetaan 2000 euroa (+alv) projektin jäsentä kohti. Tällöin kaikki projektiryhmän toteuttamat lähdekoodit ja ajokelpoiset ohjelmat sekä niitä käsittelevät dokumentit ovat salassapidettäviä. Niitä ei siten sisällytetä informaatioteknologian tiedekunnalle julkisiin tiloihin sijoitettavaan projektidokumentaatioon, eivätkä ne jää projektin päätyttyä jäsenten tai ohjaajien haltuun.
Esimerkiksi neljästä opiskelijasta koostuvan projektiryhmän kulut tilaajalle ovat siten alemmassa hintaluokassa 4000 euroa (+alv) ja ylemmässä hintaluokassa 8000 euroa (+alv). Jos projekti ei toteudu projektiosapuolten sopimalla tavalla, on myös mahdollista alentaa projektimaksua.
Molempien hintaluokkien tapauksessa projektiryhmän toteuttamat ohjelmat, dokumentit ja muut materiaalit tarkastetaan tilaajalla, jolloin mahdolliset liiketoiminnan kannalta salattavat tiedot poistetaan informaatioteknologian tiedekunnan projektiryhmän jäsenten haltuun jäävistä dokumenteista. Tilaajan projektin käyttöön toimittamat ohjelmat, dokumentit ja materiaalit palautetaan projektin päättyessä tilaajalle, eikä niitä liitetä tiedekunnalle ja ryhmän jäsenille jäävään dokumentaatioon ilman tilaajan lupaa.
Korkeamman hintaluokan projektien yhteydessäkin tiedekunnalle jää julkisiin tiloihin sijoitettava projektikansio. Tähän projektin jäsenten opinnäytekansioon sijoitetaan vähintään projektin suunnitelma ja raportti (joissa kuvataan yleisesti projektin läpivientiä ja vähintään tiivistäen yleisellä tasolla itse sovellusta), projektipalaverien pöytäkirjat, jäsenten ajankäyttöraportit sekä ainakin osa ohjaajien antamista kirjallisista palautteista koskien sovellusta ja projektia. Täysin salaisia opiskelijaprojekteja ei siis toteuteta, ja tiedekunnalle jää aina yleisiin tiloihin kaikkien nähtäville vähintään karsittu dokumentaatio projektista.
Projektimaksuina kertyneet varat käytetään kokonaisuudessaan Sovellusprojektien kuluihin. Näitä aiheuttavat mm. teknisten ohjaajien palkkiot, projektien yhteydessä hankittavat tietokoneet, kirjat ja ohjelmistot sekä projekteihin liittyvien matkojen ja kestitysten kustannukset. Projektivaroista informaatioteknologian tiedekunta ei maksa ryhmän jäsenille palkkaa, mutta projektin tilaaja voi halutessaan maksaa tekijöille erillisen palkkion.
Julkisiksi sovittuihin tuloksiin jää pysyvä rinnakkainen käyttöoikeus tilaajan ohella sekä Jyväskylän yliopistolle että projektin jäsenille. Yliopiston henkilökunta ja opiskelijat voivat siten tutustua julkisiin sovellusosioihin ajamalla niitä sekä käyttämällä niiden lähdekoodin komponentteja jonkun toisen ohjelman osana. Ohjelmaa kokonaisuutena ei käytetä sellaisenaan tai jonkin toisen ohjelmiston osana ilman tilaajan lupaa. Julkisiksi sovittuja lähdekoodin komponentteja, dokumentteja ja muita projektiryhmän toteuttamia materiaaleja voidaan hyödyntää tutkimuksessa, opetuksessa ja esittelytarkoituksissa.
Maksullisten Sovellusprojektien yhteydessä solmitaan yleensä sekä projekti- että vaitiolosopimus. Projektisopimuksessa sovitaan ryhmän jäsenten siirtävän toteuttamiensa ohjelmiston, dokumenttien ja muiden tulosten oikeudet tilaajalle. Oikeudet kuitenkin siirtyvät tekijöiltä tilaajalle vasta, kun projektimaksu on suoritettu ja mahdolliset sopimuksessa mainitut ohjelmistokehitysympäristöjen lisenssit on toimitettu tai hankittu (katso luku 9). Projektisopimuksen laatimisessa käytettävä malli löytyy WWW-sivulta http://www.mit.jyu.fi/palvelut/sovellusprojektit/sopimus.html ja vaitiolosopimuksen malli sivulta http://www.mit.jyu.fi/palvelut/sovellusprojektit/vaitiolo.html.
Jyväskylän yliopiston laitoksille ilmaiseksi toteutettavissa Sovellusprojekteissa oikeudet toteutettuihin ohjelmiin säilyvät projektiryhmän jäsenillä eli opiskelijoilla. Kyseisten projektien tulokset yleensä sijoitetaan avoimen lähdekoodin ja avointen dokumenttien lisenssien alaisuuteen, jonka kautta tilaajana toimivalla laitoksella on oikeus käyttää, levittää ja jatkokehittää sovellusta. Tarvittaessa laadittavaan projektisopimukseen voidaan kirjata ehtoja liittyen tekijöiden oikeuksiin ja etuihin mm. kaupallisten versioiden ja sovelluksen jatkokehityksen osalta.
Jos sovellus toteutetaan PC-mikrosta poikkeavaan ympäristöön tai sovellus vaatii erikoislaitteita tai mikrolta erityisresursseja, tilaajan tulee toimittaa tarvittavat laitteet projektiryhmän käyttöön. Ne palautetaan projektin päättyessä tilaajalle.
Opiskelijat voivat jatkokehittää sovellusta myös muiden opintojaksojen (kuten tietotekniikan erikoistyön ja pro gradu -tutkielman) puitteissa. Tällöin kuitenkaan informaatioteknologian tiedekunnan tilat ja laitteet eivät yleensä ole enää tekijöiden käytettävissä.
Mahdollisesta jatkosta ja siihen liittyvistä palkkioista sopivat opiskelijat ja tilaaja keskenään. Opiskelijoiden tulee lisäksi sopia etukäteen tiedekunnan kanssa jatkon soveltuvuudesta joksikin muuksi opintojaksoksi.
Opiskelijat ilmoittautuvat Sovellusprojektiin Korppi-järjestelmän kautta vastaavasti kuin mille tahansa kurssille. Ilmoittauduttaessa tulee täyttää Korppi-järjestelmän kyseisestä opintojaksosta löytyvä ilmoittautumislomake. Sille kirjattuja tietoja käytetään valittaessa projektien aiheita ja muodostettaessa projektiryhmiä, joten lomake kannattaa täyttää kattavasti ja harkiten.
Korppi-opintotietojärjestelmä vaatii rekisteröitymisen sen käyttäjäksi. Järjestelmän etusivulta osoitteesta https://korppi.jyu.fi/ löytyy linkki sivulle, jossa syötetään rekisteröitymisen vaatimat tiedot. Rekisteröitymistiedot syötettyään käyttäjä onkin jo oikeutettu käyttämään järjestelmää vierailijan oikeuksin. Opiskelijan oikeudet järjestelmään saa kirjautumalla siihen tietohallintokeskuksen käyttäjätunnuksella ja salasanalla.
Ilmoittautumislomakkeessa kysytään opiskelijan suorittamia opintoja, työkokemuksen ja harrastusten kautta kertynyttä tietotaitoa sekä harrastuksia. Lisäksi ilmoittautuja voi esittää toiveita itseään kiinnostavista aihealueista, kehitystyökaluista ja tekniikoista sekä ryhmään kaipaamistaan muista opiskelijoista. Opiskelijoiden toiveet pyritään pääsääntöisesti huomioimaan aiheita valittaessa ja projektiryhmiä muodostettaessa.
Projektiin ilmoittautuvalla tulee olla suoritettuina tietotekniikan aineopinnoista vähintään puolet ja kurssi Ohjelmointi 2 (TIE120, TIEP111). Kurssit Algoritmit 1 (ITK140, ITKA201 tai TIE210 Tietorakenteet ja algoritmit 1) ja Graafisten käyttöliittymien ohjelmointi (TIE240, TIEA212) antavat hyvän lähtökohdan projektin menestykselliselle suorittamiselle, joten niitä suositellaan suoritetuiksi.
Opiskelijoiden tulee ilmoittautua Sovellusprojekteihin sekä syys- että kevätlukukauden osalta opinto-oppaassa ja ilmoittautumislomakkeessa mainittuun elokuun puolen välin määräpäivään mennessä. Kyseisellä koko lukukautta koskevalla ilmoittautumiskäytännöllä pyritään pitämään syksyn ja kevään projektien opiskelijoiden määrä tasaisena. Sovellusprojekteihin on suositeltua ilmoittautua jo ennen kesää, jolloin vastaavat ohjaajat pystyvät hankkimaan riittävästi hyviä ja mielenkiintoisia projektien aiheita.
Vuodesta 1995 lähtien toteutetut ohjelmistot sekä ne toteuttaneet projektiryhmät, tilaajat ja ohjaajat esitellään erillisessä dokumentissa sivulla http://www.mit.jyu.fi/palvelut/sovellusprojektit/toteutetut.html. Sovellusprojektien esittelykalvot löytyvät URL-osoitteista http://www.mit.jyu.fi/palvelut/sovellusprojektit/esittelykalvot.pdf ja http://www.mit.jyu.fi/palvelut/sovellusprojektit/esittelykalvot.ps. Projektien kehitysvaiheiden kuvaus on nähtävissä URL-osoitteissa http://www.mit.jyu.fi/palvelut/sovellusprojektit/tilaisuudet/projektikehitys.html, http://www.mit.jyu.fi/palvelut/sovellusprojektit/tilaisuudet/projektikehitys.pdf ja http://www.mit.jyu.fi/palvelut/sovellusprojektit/tilaisuudet/projektikehitys.ps.
Sovellusprojektien projekti- ja vaitiolosopimusten laadinnassa käytettävät sopimusmallit löytyvät WWW-sivuilta http://www.mit.jyu.fi/palvelut/sovellusprojektit/sopimus.html ja http://www.mit.jyu.fi/palvelut/sovellusprojektit/vaitiolo.html.
Opiskelijoille suunnatut Sovellusprojektien ohjeet löytyvät WWW-sivulta http://www.mit.jyu.fi/palvelut/sovellusprojektit/projohje.html. Lisäksi dokumenttien ja opinnäytetöiden kirjoittamisohjeet löytyvät sivulta http://www.mit.jyu.fi/santanen/info/kirjoittamisesta.html.
Em. materiaalia on saatavissa myös paperimuodossa luvussa 13 mainituilta vastaavilta ohjaajilta.
13. Yhteystiedot
Sovellusprojekteista antaa mielellään lisätietoa vastaavana
ohjaajana toimiva ohjelmistotekniikan lehtori
Jukka-Pekka Santanen.
Hänen sähköpostiosoite on
santanen@mit.jyu.fi
ja puhelinnumero 014-2602756. Hänen työhuoneensa AgC418.2 löytyy
Jyväskylän Mattilanniemen Agora-rakennuksen neljännestä kerroksesta
likimain pääsisäänkäynnin yläpuolelta.