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ä.

Opintojakso käytyäsi ymmärtät ohjelmiston elinkaareen liittyvän käsitteistön ja osaat soveltaa ohjelmistotuotannon menetelmällisiä periaatteita ja käytänteitä (esim. Scrum) työskentelyssäsi. Tarkemmin ottaen

  • tunnet ohjelmistotuotannon, erityisesti ketterän ohjelmistotuotannon vaiheet,
  • tiedät miten vaatimuksia hallitaan ketterässä ohjelmistotuotannossa,
  • ymmärrät suunnittelun, toteutuksen ja testauksen vastuut ja luonteen ketterässä ohjelmistotuotannossa,
  • ymmärrät ohjelmiston laadunhallinnan perusteet,
  • tunnistat ohjelmistokehityksen taloudelliset reunaehdot, sekä
  • osaat toimia ympäristössä, jossa ohjelmistokehitys tapahtuu hallitusti ja toistettavalla tavalla.

Kurssin suorittaminen ja arvostelu

Kurssi koostuu kolmesta komponentista, luennoista, laskuharjoituksista ja miniprojektista.

Luennot

Kurssilla on 11 luentoa sekä useampi vierailuluento. Luennoilla käydään pääasiassa läpi ohjelmistotuotantoon liittyvää käsitteistöä ja teoriaa, samaa asiaa mihin tämä materiaali keskittyy.

Laskuharjoitukset

Kurssiin liittyy viikoittaiset laskuharjoitukset. Tehtäviä harjoituksissa on kahden tyyppisiä.

Luennoilla ja tässä materiaalissa käytävää teoriaa kertaavat viikoittaiset tehtävien (monivalintoja tai lyhyitä pohdintatehtäviä) deadline on sunnuntaina klo 23.59. Toinen osa tehtävistä käsittelee ohjelmistotuotantoon liittyviä teknisempiä asioita, kuten versionhallintaa, testaamista ja ohjelmistojen konfigurointia, näiden deadline on maanantaina klo 23:59. Tehtävien ohjelmointikieli on Python.

Laskuharjoitusten oletettu kuormittavuus on ensimmäisen kolmen viikon aikana enemmän ja tämän jälkeen vähemmän. Teoriatehtäviin vastaaminen on suhteellisen nopeaa, mutta järkevästi vastaaminen edellyttää osallistumista luennoille ja/tai viikon materiaalin lukemista.

Apua laskuharjoituksiin

Kurssin discord kanava sijaitsee muutaman muun kurssin kanssa samalla palvelimella: https://discord.gg/Fd5Bq36V6U

Kurssin harjoitukset ovat 29.10-26.11 ajanjaksolla torstaisin klo 12:00-14:00 Agoran Latin tietokoneluokka (Ag B112.2) ja tiistaisin 14:15-16:00 luokassa Agora B211.1 Sovjet. Lisäksi apua tehtävien tekoon saa Koodaamosta

Ryhmiin osallistuminen on kannustettavaa, mutta vapaaehtoista. Niihin voi tulla tekemään tehtäviä ja kysymään apua opettajilta. Tehtävien tekemiseen ei tarjota sähköpostineuvontaa.

Miniprojekti

Kurssin loppupuolella järjestetään miniprojekti, eli ryhmässä tehtävä pieni harjoitustyö, jonka pääasiallisena tarkoituksena on projektinhallinnan sekä eräiden laadunhallintatekniikoiden harjoittelu.

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

Kurssin lopussa on miniprojektien yhteinen demotilaisuus.

Miniprojekteissa työskentelyyn tulee varata yhteensä noin 6 tuntia aikaa viikossa.

Kurssin läpäisyn edellytyksenä on hyväksytysti suoritettu tai hyväksiluettu miniprojekti.

Miniprojektit tapaavat asiakasta kampuksella. Tarvittaessa tehdään yksi tai kaksi etäryhmää.

Miniprojektin hyväksilukeminen

Miniprojektiin osallistuminen ei ole välttämätöntä, jos sinulla on vähintään kolmen kuukauden työkokemus ohjelmistokehitystiimissä toimimisesta. Jos hyväksiluet miniprojektin työkokemuksella, kerro asiasta emailitse (petri.j.ihantola@jyu.fi) siinä vaiheessa kun olet tehnyt ensimmäiset tehtävät (viikolla 2). Hyväksiluetuista projekteista järjestetään yhdelle (ajankohta sovitaan yhdessä opiskelijoiden kanssa) luentokerralle paneelikeskustelu, jossa työkokemusta saaneet opiskelijat pääsevät jakamaan kokemuksiaan. Kurssin opettaja juontaa paneelikeskustelun.

Kurssin arvostelu

Kurssin eri osa-alueista saa pisteitä. Osa-alueiden painoarvot lopullisessa arvostelussa ovat:

  • Monivalintatehtävät 10%
  • konfigurointitehtävät 15%
  • miniprojekti 25%
  • koe 45%
  • osallistuminen vierailulunennoille 5%

Läpipääsy edellyttää miniprojektin hyväksyttyä suoritusta (tai hyväksilukua) ja kokeen hyväksyttyä suorittamista.

Luennot - laskuharjoitukset - miniprojekti

Kurssi siis sisältää kolme pääkomponenttia, luennot, viikoittaiset laskuharjoitukset sekä miniprojektin. Komponentit ovat luonteeltaan melko erilaisia, ja se 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, näistä yksikään ei ole muita tärkeämpi, 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.

Aikataulu

Viikko 1

Viikko 2

Viikko 3

Viikko 4

Viikko 5

Viikko 6

Viikko 7

  • Paneelikeskustelu/Vierailuluento: tiistai 8.12. klo 10:15 - 12:00 Ag B103 Auditorio 3
    • Työkokemusta jo hankkineiden opiskelijoiden paneelikeskustelu
  • Vierailuluennot: keskiviikko 9.12. klo 10:15 - 12:00 Ag B103 Auditorio 3
    • Ohjelma:
      • 10:15-10:45 Vlad Strirbu: AI native software engineering
      • 10:45-11:15, Tomi Suomi: TBD
      • 11:15-11:20 Tauko
      • 11:20-11:50 Jussi Koskinen, Solita: Konsultointi ja asiakkaan kanssa eläminen
  • Miniprojekti
    • Ei asiakastapaamista, ryhmät tekevät itsenäisesti sprintin 3 ja siihen liittyvät jälkityöt ja valmistautuvat seuraavan viikon loppudemoon

Viikko 8

  • Koe 15.12.2026 tiistai 15.12. klo 12:00 – 16.00 salissa Ag Aud3
  • Miniprojektien loppudemot keskiviikko 16.12. klo 8:15-12 salissa Ag Aud3

Typoja materiaalissa

Kun huomaat kurssimateriaalissa kirjoitusvirheitä, tee korjausehdotus. Kurssimateriaali on repositoriossa https://github.com/ohjelmistotuotanto-jyu/ohjelmistotuotanto-jyu.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.