Kurssin nimi on muuttunut syksyllä 2023, tätä aiemmin kurssi tunnettiin nimellä Ohjelmistotekniikka

Kurssilla tutustutaan ohjelmistokehityksen periaatteisiin sekä menetelmiin ja sovelletaan niitä toteuttamalla pienehkö harjoitustyö Python-kielellä.

Kurssin kolmella ensimmäisellä viikolla on muutama ohjauksessa tai omatoimisesti tehtävä harjoitustehtävä. Kurssin pääpainon muodostaa viikolla 2 aloitettava, itsenäisesti tehtävä harjoitustyö. Työtä on tarkoitus edistää pala palalta viikoittaisten tavoitteiden ohjaamana.

Kurssin arvostelu perustuu pääasiassa harjoitustyöstä saataviin pisteisiin. Osa pisteistä kertyy aikatauluun määriteltyjen viikoittaisten välitavoitteiden kautta, osa taas perustuu työn lopulliseen palautukseen. Jos olet jo toteuttanut isohkoja ohjelmistoja, on kurssi tietyissä tapauksissa myös mahdollista hyväksilukea.

Kurssilla ei ole koetta. Harjoitustyö tulee tehdä kurssin aikataulujen puitteissa. Kesken jäänyttä harjoitustyötä ei voi jatkaa seuraavalla kurssilla (syksyllä 2024), joten muista varata riittävästi aikaa (10-15h viikossa) koko periodin ajaksi!

Tarkemmat ohjeet harjoitustyöhön löytyvät täällä. Kurssimateriaali löytyy täältä.

(Sergey Ichtchenko has kindly translated the course material in English for students in the English-language BSc program. However, please note that officially this course is given only in Finnish and if the translation conflicts with the Finnish material, the latter takes precedence.)

Kirjoitusvirheitä

Jos huomaat tehtävissä tai muussa materiaalissa kirjoitusvirheitä, kirjaudu GitHubiin ja toimi tämän ohjeen mukaisesti.

Ajankohtaista

  • Kurssilla on pääsiäistauko 28.3. - 3.4. joten kolmannen viikon deadline ei ole tiistaina 2.4. vaan vasta 9.4.
  • Kurssin aloitustilaisuus maanantaina 11.3. klo 10.15 - 11.45
    • Aloitustilaisuudessa käytettävät kalvot löytyvät täältä
    • Aloitusluennon tallenne on täällä
  • Kurssilla on Discord-kanava, jossa on tarjolla ohjausta ja keskustelua kurssiin liittyen
    • Jos kysyt jotain, joka koskee koodiasi tai siinä esiintyviä virhetilanteita, lisää kysymyksen yhteyteen linkki omaan repositorioosi. Ilman koodin näkemistä ongelman selvittäminen on hankalaa tai jopa mahdotonta.
    • HUOM: kaikki epäasialliset, halventavat ja jotain ihmisryhmää syrjivät kommentit kanavalla ovat kiellettyjä ja tälläisten kommenttien esittäjät poistetaan kanavalta
  • Jos tarvitset kurssiin liittyvää ohjausta, tule pajaohjaukseen:
    • Maanantaisin klo 14-16 kampuksella BK107-luokassa
    • Tiistaisin klo 10-12 kampuksella BK107-luokassa
    • Tiistaisin klo 16-18 kampuksella BK107-luokassa
    • Perjantaisin klo 10-12 kampuksella BK107-luokassa
    • pajaohjausta on välillä 11.3. - 9.5., mutta ei kuitenkaan pääsiäisen takia 28.3. - 2.4.
    • Tarjolla on myös online-ohjausta. Voit varata siihen ajan Moodlessa. Huomaathan kuitenkin, että pajassa saat paljon paremmin apua!

Harjoitustyön toimivuus

  • Kurssilla käytettävän Python version tulee olla vähintään 3.8.
  • Koneiden konfiguraatioissa on eroja, ja tällä kurssilla ei riitä että hajoitustyössä tekemäsi sovellus toimii vain omalla koneellasi
  • Harjoitustyösi pitää pystyä joka viikko suorittamaan, kääntämään ja testaamaan komentoriviltä käsin laitoksen Linux-koneilla (tai uusimmat päivitykset sisältävällä cubbli-linuxilla), muussa tapauksessa työtä ei tarkasteta ja menetät viikon/loppupalautuksen pisteet.
  • Pääset testaamaan ohjelmaasi laitoksen koneella myös kotoa käsin käyttämällä etätyöpöytää, valitse valitse Cubbli Linux

Aikataulu

Viikko 1

Palautuksen deadline tiistai 19.3. klo 23:59

  • Kurssin aloitustilaisuus. Aloitustilaisuudessa käytettävät kalvot löytyvät täältä. Aloitustilaisuudesta julkaistaan myöhemmin tallenne, joka on katsottavissa täältä
  • Tehtävät: Komentorivi- ja Git-harjoittelu (1p)
  • Tehtävien palautus tapahtuu tekemällä repositorio GitHubiin ja rekisteröitymällä Labtooliin

Viikko 2

Palautuksen deadline tiistai 26.3. klo 23:59

Viikko 3

Palautuksen deadline tiistai 9.4. klo 23:59

Viikko 4

Palautuksen deadline tiistai 16.4. klo 23:59

  • Harjoitustyö (3p)
    • Ohjelman perustoiminnallisuus
    • Testien aloitus
    • Alustava rakenne luokkakaaviona
    • Pylint otettu käyttöön

Viikko 5

Palautuksen deadline tiistai 23.4. klo 23:59

  • Harjoitustyö (3p)
    • Release 1
    • Testikattavuus nousee
    • Jotain päätoiminnallisuutta kuvaava sekvenssikaavio

Viikko 6

Palautuksen deadline tiistai 30.4. klo 23:59

  • Harjoitustyö (3p)
    • Release 2
    • Testikattavuus nousee
    • Docstring-dokumentaatio aloitettu
    • Alustava versio arkkitehtuuridokumentista
  • Koodikatselmointi (2p)

Viikko 7

Lopullisen palautuksen deadline sunnuntai 12.5. klo 23:59