Creative Commons -lisenssi

Kurssi on jo ohjelmointia hallitseville tarkoitettu johdanto ohjelmistotuotantoon, eli systemaattiseen tapaan tehdä hieman laajempia ohjelmistoja useamman hengen tiimissä ulkoiselle asiakkaalle. Erityinen paino kurssilla on niin sanotuissa ketterissä ohjelmistotuotantomenetelmissä.

Kurssin suoritettuaan opiskelijalla pitäisi olla riittävät tiedolliset ja tekniset valmiudet toimia juniorikehittäjän roolissa pienessä ohjelmistotiimissä, esimerkiksi Tietojenkäsittelytieteen osaston opintojaksolla ohjelmistotuotantoprojekti.

Hieman tarkemmin eriteltynä, suoritettuaan kurssin opiskelija:

  • Tuntee ohjelmistoprosessin vaiheet (vaatimusmäärittely, suunnittelu, toteutus ja laadunhallinta).
  • Tietää miten vaatimuksia hallitaan ketterässä ohjelmistotuotantoprosessissa.
  • Ymmärtää suunnittelun, toteutuksen ja testauksen vastuut sekä luonteen ketterässä ohjelmistotuotannossa.
  • Ymmärtää ohjelmiston laadunhallinnan perusteet.
  • Osaa toimia ympäristössä, jossa ohjelmistokehitys tapahtuu hallitusti ja toistettavalla tavalla.

Ilmoittautuminen

Kurssille ilmoittaudutaan avoimen yliopiston sivuilla. Kurssi on kaikille maksuton.

Kurssin kokeen sekä tehtävien tekemiseen/palauttamiseen tarvitset Helsingin yliopiston käyttäjätunnuksen. Ohje tunnuksen aktivoimiseen täällä. Huomaa aktivoimisen onnistuvan vasta ilmoittautumista seuraavana päivänä.

Kurssin suorittaminen ja arvostelu

Kurssi alkaa 15.1. ja päättyy 30.4. Kurssin suoritusnopeus on vapaa, mutta kurssi on suunniteltu suoritettavaksi seitsemässä viikossa, jolloin viikoittain edellytettävä työmäärä on noin 10-15 tuntia.

Kurssi koostuu neljästä komponentista:

  • ohjelmistotuotannon teoriaa käsittelevästä kirjallinen materiaali sekä videot
  • harjoitustehtävät
  • miniprojekti
  • kurssikoe

Teoria

Kurssin kirjallisessa materiaalissa sekä niihin liittyvissä syksyllä 2021 nauhoitetulla kymmenellä luennolla käydään läpi ohjelmistotuotantoon liittyvää käsitteistöä ja teoriaa. Teoriamateriaalia täydentää neljä videoitua ohjelmistoalan asiantuntijaluentoa.

Harjoitustehtävät

Kurssi sisältää seitsemän harjoitustehtäviikkoa. Etenemisnopeus kurssilla on siis vapaa, joten voit suorittaa tehtävät haluamassasi tahdissa.

Tehtäviä harjoituksissa on kahden tyyppisiä:

  • teoriaa kertaavat monivalintatehtävät
  • ohjelmistotuotantoon liittyviä teknisempiä asioita, kuten versionhallintaa, testaamista ja ohjelmistojen konfigurointia käsittelevät tekniset tehtävät

Harjoitustehtävien oletettu kuormittavuus on noin 8 tuntia “viikkojen” 1-3 aikana ja sen jälkeen 4 tuntia “viikossa”. Monivalintatehtäviin vastaaminen on suhteellisen nopeaa, mutta järkevästi vastaaminen edellyttää materiaalin huolellista lukemista.

Harjoitustehtävistä on olemassa versiot Javalla ja Pythonilla, voit valita itse kumpaa kieltä käytät.

Miniprojekti

Kurssin suorittaminen edellyttää miniprojektiin osallistumista.

Miniprojekti on ryhmässä tehtävä pieni harjoitustyö, jonka pääasiallisena tarkoituksena on projektinhallinnan sekä eräiden laadunhallintatekniikkoiden harjoittelu.

Kukin miniprojektiryhmä koostuu 4-6 opiskelijasta, ryhmillä on myös asiakas, jota ryhmä tapaa viikoittain neljän viikon ajan. Ensimmäisellä viikolla asiakastapaamiseen tulee varata 90 minuuttia, jälkimmäisillä 30 minuuttia.

Miniprojektien asiakastapaamiset järjestetään virtuaalisesti zoom-järjestelmän avulla.

Miniprojekteissa työskentelyyn tulee varata yhteensä noin 6 tuntia aikaa viikossa. Miniprojektin kesto on kolme viikkoa.

Miniprojekti järjestetään kahtena eri ajankohtana 21.2.-14.3. ja 28.3.-25.4.

Voit osallistua miniprojektiin siinä vaiheessa kun olet tehnyt vähintään kurssin neljän ensimmäisen viikon tehtävät.

Lisää tietoa miniprojekteihin osallistumisesta on tulossa lähempänä miniprojektien alkua.

Kurssikoe

Kurssilla on kolme koeajankohtaa

  • perjantai 25.3.2022
  • torstai 28.4.2022
  • perjantai: 3.6.2022

Kokeen voi aloittaa mihin aikaan tahansa koepäivänä. Kokeessa on vastausaikaa 4 tuntia. Kokeen voi tehdä mistä tahansa riittävän hyvän internetyhteyden omaavasta paikasta.

Koe keskittyy kurssin teoriamateriaalissa käsiteltäviin asioihin. Kokeessa ei kysytä vierailuluentojen sisällöistä eikä niistä teknisistä aihepiireistä (mm. versionhallinta), joita kurssimateriaalin osat 0-5 eivät käsittele.

Koe tehdään avoimen yliopiston moodlessa. Päästäkseen kirjautumaan järjestelmään avoimen yliopiston opiskelijoiden on ilmoittauduttava kurssille viimeistään vuorokautta aiemmin tänne ja aktivoitava käyttäjätunnuksensa.

Koetta tehtäessä internet on käytössä, mutta kaikenlainen yhteistyö on kielletty. Vastaukset on kirjoitettava omin sanoin, tekstin kopioiminen kurssimateriaalista tai muualta internetistä johtaa heti HY:n plagiointikäytäntöjen soveltamiseen.

Jokainen osallistuja voi osallistua kolmeen koetilaisuuteen. Korkein pistemäärä jää voimaan. Kurssin arvostelu suoritetaan vasta kurssin päättyessä eli 30.4.2022 klo 23:59, joten voit jatkaa kurssin tehtävien tekemistä kokeessa käymisen jälkeenkin.

Miniprojektin hyväksilukeminen

Miniprojektiin osallistuminen ei ole välttämätöntä, jos täytät työkokemuksen perusteella tapahtuvan ohjelmistotuotantoprojektin hyväksiluvun edellyttävät kriteerit.

Kriteerit selviävät täältä, kohdasta “Laaja suoritus: Ohjelmistotuotantoprojekti”.

Toisin kuin Ohjelmistotuotantoprojektin hyväksilukuun, miniprojektin hyväksilukuun vaaditaan ainoastaan neljän kuukauden työkokemus.

Jos hyväksiluet miniprojektin työkokemuksella, kerro asiasta sähköpostitse (matti.luukkainen@helsinki.fi) tehtyäsi ensimmäisen viikon tehtävät.

Kurssin arvostelu

Kurssilla on jaossa yhteensä 40 pistettä, jotka jakautuvat eri komponenttien kesken seuraavasti:

  • harjoitukset 11 pistettä
    • monivalintatehtävät 3 pistettä
    • ohjelmointi/versionhallinta/konfigurointitehtävät 8 pistettä
  • miniprojekti 9 pistettä
  • koe 20 pistettä

Arvosana muodostuu seuraavasti:

pisteitä arvosana
36 5
32 4
28 3
24 2
20 1

Läpipääsy edellyttää vähintään puolia kokeen pisteistä.

Jos hyväksiluet miniprojektin, kokeen ja laskarien pistemääräsi skaalataan kertomalla 40/31:llä ja arvosana määritellään skaalatun pistemäärän perusteella.

Harjoitustehtävien pisteytysperusteet

Viikoittaisista monivalintatehtävistä on siis tarjolla 3 kurssipistettä. Täysiin kurssipisteisiin riittää 90% monivalintakysymyspisteistä (mvp).

Pisteet tulevat seuraavan kaavan mukaan:

monivalintapisteitä kurssipisteitä
6.3 3
6.05 2.75
5.8 2.5
5.55 2.25
5.3 2
5.05 1.75
4.8 1.5
4.55 1.25
4.3 1
4.05 0.75
3.8 0.5
3.55 0.25
3.3 0

Kaikki monivalintatehtävät ovat joukkoja väittämiä, joista jokainen voi olla oikein tai väärin. Jokaisen viikon monivalintakysymyksistä on tarjolla yksi mvp, joka lasketaan seuraavan kaavan mukaan:

  • jos oikeatVastaukset/vaittamaLukumaara on pienempi tai yhtäsuuri kuin 0.45, on tuloksena 0 mvp:tä.
  • jos oikeatVastaukset/vaittamaLukumaara on enemmän kuin 0.45, kasvaa mvp-määrä lineaarisesti siten, että kaikki kohdat oikein tuo yhden mvp:n.

Normaaleista laskareista on tarjolla 8 kurssipistettä. Täysiin kurssipisteisiin edellytetään 90 % normaalien laskareiden tekemistä.

Pisteet tulevat seuraavan kaavan mukaan:

tehtäviä kurssipisteitä
57 8
54 7.5
50 7
47 6.5
43 6
8 1
5 0.5

Luennot - laskuharjoitukset - miniprojekti

Kurssi siis sisältää kolme pääkomponenttia, luennot, viikoittaiset laskuharjoitukset sekä miniprojektin. Komponentit ovat luonteeltaan melko erilaisia, mikä on joskus aiheuttanut hämmennystä opiskelijoiden keskuudessa.

Kurssin luennoilla keskitytään pääosin ohjelmistokehityksen teoriaan ja käsitteistöön. Laskareista monivalintatehtävät liittyvät kunkin viikon luentoihin.

Versionhallintaa, ohjelmistojen konfigurointia, testausta ja ohjelmointia käsittelevien teknisempien tehtävien aihepiirejä ei taas luennoilla käsitellä oikeastaan ollenkaan (poislukien testaukseen liittyvä teoria).

Miniprojektin ideana taas on yhdistää luentojen teoria ja laskareissa käsitellyt teknisemmät asiat, ja soveltaa niitä käytännössä pienessä ohjelmistoprojektissa.

Kokeessa suurin paino tulee olemaan teoriassa ja sen soveltamisessa käytäntöön. Laskareiden teknisimpiä asioita, kuten versionhallintaa ei kokeessa tulla kysymään. Tarkemmin kokeesta ja siihen valmistautumisesta kurssin viimeisellä luennolla.

Kuten kohta tulemme näkemään, ohjelmistotuotanto kattaa suuren kirjon erilaisia asioita alkaen ihmisten johtamisesta aina teknisimpiin komentoriviltä suoritettaviin operaatioihin asti. Sama heijastuu myös kurssin rakenteessa: Kurssilla on erihenkisiä komponentteja, eikä näistä yksikään ole muita tärkeämpi, vaan kullakin on oma painoarvonsa kurssin arvostelussa. Teoria-asioita arvioidaan koemenestyksen perusteella, käytännöllisimpiä asioita taas “jatkuvana arviona” laskareista kertyvien pisteiden ja miniprojektissa suoriutumisen perusteella.

Versionhallinta 1 op

Saat bonuksena suoritusmerkinnän opintojaksolta Versionhallinta 1 op tekemällä kaikki tämän kurssin versiohallintatehtävät (merkattu tehtävän yhteyteen) ja suorittamalla hyväksytysti miniprojektin (tai hyväksilukemalla sen).

Ohjelmistotuotantoprojekti 10 op

Kurssin suoritettuasi voit osallistua normaalisti ainoastaan Tietojenkäsittelytieteen pääaineopiskelijoille tarkoitettuun opintojaksoon Ohjelmistotuotantoprojekti, joka järjestetään myös avoimen yliopiston toteutuksena.

Projektissa 5-6 hengen opiskelijatiimit toteuttavat ketterien menetelmien parhaita käytänteitä soveltaen ohjelmiston ulkoiselle asiakkaalle. Projekti pyrkii simuloimaan mahdollisimman realistisesti oikeassa työelämässä tapahtuvaa sovelluskehitystä.

Opintojakso järjestetään 16.5.-1.7. Osallistuminen edellyttää päivittäistä noin 6 tunnin työskentelyä.

Projektiin osallistujilla tulee olla ennen projektin alkua suoritettuna tämän kurssin lisäksi joko kaksi aineopintojen harjoitustyötä tai kurssi Full stack -websovelluskehitys vähintään viiden opintopisteen laajuisena.

Projektiin otetaan enintään 30 avoimen yliopiston opiskelijaa. Jos pääsyvaatimukset täyttäviä halukkaita on enemmän, käytetään valinnan kriteerinä kaikkien avoimen yliopiston kautta suoritettujen tietojenkäsittelytieteen opintojen määrää.

Jos olet kiinnostunut projektiin osallistumisesta (etkä ole tietojenkäsittelytieteen pääaineopiskelija), lähetä sähköpostia osoitteeseen matti.luukkainen@helsinki.fi. Kerro sähköpostissa lyhyesti tietojenkäsittelyn opinnoistasi sekä mahdollisestasi alan työkokemuksesta. Kerro myös miksi haluaisit osallistua projektiin.

Aikataulu

Kurssin suoritusnopeus on siis vapaa, ja ainoa deadline harjoitustehtäville on 30.4. Kurssin “ohjeellinen” suoritusaika on 7 viikkoa. Tällöin läpikäytävä teoria ja tehtävät jakautuvat seuraavasti:

Viikko 1

Viikko 2

Viikko 3

Viikko 4

Viikko 5

Viikko 6

Viikko 7

Viikko 8

  • Kurssikoe (Avoimen yliopiston Moodle-järjestelmässä)

Miniprojekti

Voit osallistua miniprojektiin siinä vaiheessa kun olet tehnyt vähintään kurssin neljän ensimmäisen viikon tehtävät. Miniprojekti järjestetään kahtena eri ajankohtana 21.2.-14.3. ja 28.3.-25.4.

Typoja materiaalissa

Kun huomaat kurssimateriaalissa kirjoitusvirheitä, tee korjausehdotus. Kurssimateriaali on repositoriossa https://github.com/ohjelmistotuotanto-hy-avoin/ohjelmistotuotanto-hy-avoin.github.io tiedostoissa osa0.md jne.

Muutosehdotuksen tekeminen aloitetaan painamalla tiedoston kynä-symbolia:

Kun teksti on editoitu halutunkaltaiseksi, luodaan muutosehdotus sivun alalaidasta:

Tämän jälkeen vielä luodaan muutosehdotuksesta pull request

Kun kaikki klikkailu on tehty, syntyy materiaalirepositorioon pull request

Ja kun kurssihenkilökunta mergeää pull requestin, typo korjautuu materiaalista.