Ohjelmistotekniikan laitos

81001 Tietotekniikan perusteet, 2 ov
Computer Literacy, 2 cu

Tuntiopettaja MIIKA-MARKUS JÄRVELÄ ja tuntiopettaja PETER KARJALAINEN
Luentoja 31 h, demostraatioita ja harjoituksia 14 h.
LUENTOPAIKKA JA -AIKA: Maanantaisin 12-15 saleissa Iso sali, K1705, S1.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): 3 - - - -
Harjoitukset (h) 2 - - - -
TAVOITTEET JA SISÄLTÖ: Opintojaksolla on kaksi erityyppistä tavoiteryhmää. Käytännön taidoissa tavoitteet ovat, että opiskelija tuntee TTKK:n opiskelijoiden käytössa olevat tärkeimmät ohjelmistot ja tietokonejärjestelmät sekä pystyy itsenäisesti omaksumaan järjsetelmien sujuvan käytön. Tiedollinen tavoite on, että opiskelija kurssin jälkeen osaa tietotekniikan perustermistöä ja ymmärtää pääpiirteissään, mihin tietotekniikkaa voidaan soveltaa.
Harjoituksissa käydään läpi TTKK:n tietojärjestelmät (opintorekisteri, kirjaston tietokannat, käytössä olevat laitteet, Unix), verkon palvelut (sähköposti, seitti, uutisryhmät), tärkeimmät sovellusohjelmat (mm. tekstinkäsittely ja taulukkolaskenta) ja laitteiston rakenne. Luennoilla käsittävät yleistiedot tietotekniikan perusteista ja tietotekniikan osuudesta tuotteissa. Käsiteltäviä asioita ovat mm. tietokoneen toimintaperiaate (algoritmin käsite, ohjelma) ja rakenne (muisti, suoritin, oheislaitteet), varusohjelmistot (käyttöjärjestelmä, kääntäjät, tietokannat), keskeisimmät sovellusalueet (ATK, prosessiautomaatio, sulautetut järjestelmät), tiedon esitysmuodot ja tiedon pakkaus, käyttöjärjestelmien ominaisuuksia (mm. virtuaalimuisti, moniajo), tiedonsiirron perusteet (verkot, OSI-malli) sekä tietoturvan perusteet (allekirjoitukset, virukset, oikeudet).
TUTKINTOVAATIMUKSET: Kirjallinen tentti, osallistuminen kaikkiin harjoituksiin.
KIRJALLISUUS: Luentomoniste.
HUOMAUTUKSIA: Voidaan suorittaa vain lukuvuosittain. Korvaa kurssin 81000 Tietotekniikan peruskurssi.

81011 Ohjelmointi I, 3 ov
Programming I, 3 cu

tuntiopettaja ARI SUNTIOINEN
Luentoja 42 h. Harjoituksia 28 h.
LUENTOPAIKKA JA -AIKA:
Teekkarit: maanantaisin 12-14 ja keskiviikkoisin 14-16 salissa S1, toisella periodilla vain maanantaisin.
Avoin korkeakoulu: maanantaisin 17-19 ja keskiviikkoisin 16-18 salissa HB116, toisella periodilla vain maanantaisin.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): - - 4+ 2 -
Harjoitukset (h) - - 2+ 2 -
TAVOITTEET JA SISÄLTÖ: Opiskelija osaa tehdä pieniä ohjelmia lausekielellä. Ohjelmoinnin peruskäsitteet. Ohjelman teon vaiheet ja ohjelman ajo tietokoneella. Yksinkertaiset tietorakenteet.
TUTKINTOVAATIMUKSET: Kirjallinen tentti, johon voi osallistua, kun opintojaksoon liittyvät harjoitustyöt on hyväksytty.
KIRJALLISUUS: Ari Suntioinen: 81011 Ohjelmointi I (luentomoniste). Saatavuudesta jutellaan ensimmäisellä luennolla.
VAADITAVAT ESITIEDOT: 81001 Tietotekniikan perusteet.
HUOMAUTUKSIA: Voidaan suorittaa vain lukuvuosittain. Rinnakkainen opintojakson 81021 Laaja ohjelmointi kanssa siten, että suorittamalla myös kurssin 81020 Ohjelmointi II, vastaavat nämä kurssit yhdessä Laajaa ohjelmointia.

8101905 Tekoäly, 4 ov
Artificial Intelligence, 4 cu

ILKKA KOKKARINEN
Luentoja 56 tuntia.
LUENTOPAIKKA JA -AIKA: Tiistai ja keskiviikko 10-12 sali HB115
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): 4 4 - - -
Harjoitukset (h) - - - - -
TAVOITTEET JA SISÄLTÖ: Opiskelija saa käsityksen tekoälyn filosofisesta pohjasta, historiasta ja nykytilanteesta, sekä ymmärtää tekoälyn keskeisimmät lähestymistavat ja toteutustekniikat.
Tekoälyn määritelmä ja filosofia. Ongelmanratkaisu hakumenetelmillä yhden ja kahden pelaajan peleissä. Täsmällisen ja epätäsmällisen tietämyksen kuvaaminen, käsittely ja tallentaminen. Logiikat ja päättelyjärjestelmät. Rationaalisesti toimivat agentit, agenttien toiminnan suunnittelu ja toteutus. Geneettiset algoritmit ja geneettinen ohjelmointi, keinoelämä.
TUTKINTOVAATIMUKSET: Henkilökohtainen harjoitustyö ja tentti.
KIRJALLISUUS: S. Russell & P. Norvig: Artificial Intelligence: A Modern Approach. Tukena voi myös käyttää teoksia C. Adami: Artificial Life sekä M. Mitchell: An Introduction to Genetic Algorithms.
VAADITAVAT ESITIEDOT: 81125 Tietorakenteet ja algoritmit
HUOMAUTUKSIA: Kurssi luennoidaan ensimmäisen kerran syksyllä 1999. Korvaa vanhan kurssin 81190 Tekoäly, 2,5 ov.

81020 Ohjelmointi II, 3 ov
Programming II, 3 cu

tuntiopettaja ARI SUNTIOINEN
Luentoja 42h, harjoituksia 28h.
LUENTOPAIKKA JA -AIKA: Maanantai 14-17 HB116.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): 3+ 3 - - -
Harjoitukset (h) 2+ 2 - - -
TAVOITTEET JA SISÄLTÖ: Opiskelija pystyy tekemään pienehköjä ohjelmia itsenäisesti ja saa valmiuden suorittaa muita ohjelmistotekniikan kursseja.
Tiedon eri esitystavat, ohjausrakenteet, aliohjelmat ja aliohjelmakirjastojen käyttö, rakenteisten tietotyyppien perusteet, modulaarisuus (abstraktiot) sekä syöttö- ja tulostustoiminta.
TUTKINTOVAATIMUKSET: Hyväksytysti suoritetut viikkopalautukset (10 kpl), harjoitustyö (1 kpl) ja tentti.
KIRJALLISUUS: Ari Suntioinen: 81020 Ohjelmointi II (luentomoniste). Monisteen saatavuudesta jutellaan ensimmäisellä luennolla.
VAADITAVAT ESITIEDOT: 81011 Ohjelmointi I (jatkuu suoraan siitä, mihin Ohjelmointi I loppui)
HUOMAUTUKSIA: Rinnakkainen kurssin 81021 Laaja ohjelmointi kanssa siten, että yhdessä kurssin 81011 Ohjelmointi I kanssa vastaa Laajaa ohjelmointia.

81021 Laaja ohjelmointi, 5 ov
Introductory Course on Programming, 5 cu

N.N.
Luentoja 70 h. Ohjelmointiharjoituksia 42 h
LUENTOPAIKKA JA -AIKA:
Syksyllä maanantaisin 12-14 ja keskiviikkoisin 14-16 salissa Iso sali.
Keväällä I periodi maanantaisin klo 12-14 ja keskiviikkoisin 14-16 salissa Iso sali. II periodi maanantaisin 12-14 salissa Iso sali.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): - 4+ 3+ 3 -
Harjoitukset (h) - 2+ 2+ 2 -
TAVOITTEET JA SISÄLTÖ: Opiskelija pystyy tekemään pienehköjä ohjelmia itsenäisesti ja saa valmiuden suorittaa muita ohjelmistotekniikan laitoksen opintojaksoja. Ohjelmoinnin peruskäsitteet. Ohjelmanteon vaiheet ja ohjelman ajo tietokoneella. Ongelman ratkaiseminen ohjelmallisesti. Tiedon eri esitystavat, ohjausrakenteet, aliohjelmat ja aliohjelmakirjastojen käyttö, rakenteisten tietotyyppien perusteet, modulaarisuus (abstraktiot) sekä syöttö- ja tulostustoiminta.
TUTKINTOVAATIMUKSET: Hyväksytysti suoritetut harjoitustyöt sekä välikokeet tai tentti, johon voi osallistua, kun harjoitustyöt on hyväksytty.
KIRJALLISUUS: Ilmoitetaan luentojen alussa.
VAADITAVAT ESITIEDOT: 81001 Tietotekniikan perusteet.
HUOMAUTUKSIA: Voidaan suorittaa vain lukuvuosittain. Korvaa opintojaksot 81011 Ohjelmointi I ja 81020 Ohjelmointi II.

8103080 Olio-ohjelmointi, 4 ov
Object-oriented Programming, 4 cu

tutkija MATTI RINTALA
Luentoja 56h, harjoituksia 14h.
LUENTOPAIKKA JA -AIKA: Ma klo 14-16 K1704 To klo 14-16 K1704
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): 4+ 4 - - -
Harjoitukset (h) - 2 - - -
TAVOITTEET JA SISÄLTÖ: Opiskelija osaa suunnitella ja toteuttaa oliopohjaisia ohjelmia käyttäen olio-ohjelmointikieltä. Oliosuunnittelu. Datan ja toiminnan kapselointi luokiksi, oliot, periytyminen ja polymorfismi. C++-kielen oliopiirteet, erityisominaisuudet ja ongelmat.
TUTKINTOVAATIMUKSET: Hyväksytysti suoritetut harjoitustyöt ja tentti.
KIRJALLISUUS: Luentomonisteet. Kurssin laajuudessa olio-ohjelmoinnista löytyy tietoa kirjasta "An Introduction to Object-Oriented Programming 2nd Ed.", Timothy Budd. C++-oppikirjaksi kelpaa teos, jossa on käsitelty kielen standardin uusimmatkin piirteet [nimiavaruudet (namespace), poikkeukset (exception), aihiot (template) ja standardin aihiokirjasto (Standard Template Library, STL)]
VAADITAVAT ESITIEDOT: 81021 Laaja ohjelmointi
SUOSITELTAVAT ESITIEDOT: Tietorakenteet ja algoritmit / Tietorakenteiden käyttö, Ohjelmistotuotannon peruskurssi. Ohjelmoinnin perusideat on osattava ennen kurssin aloittamista. C++:n osaaminen edellytetään kurssin esitietona siinä laajudessa, kuin mitä Laajassa ohjelmoinnissa opetetaan.
HUOMAUTUKSIA: Kurssi voidaan suorittaa vain lukuvuosittain.

8104001 Ohjelmistoarkkitehtuurit, 3 ov
Software architectures, 3 cu

Professori KAI KOSKIMIES
Luentoja 28 h
LUENTOPAIKKA JA -AIKA: Tiistai 14-16 HB115
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): 2+ 2 - - -
Harjoitukset (h) - - - - -
TAVOITTEET JA SISÄLTÖ: Opiskelija hallitsee perusarkkitehtuurimallit ja pystyy soveltamaan niitä modulaaristen, joustavien ja uudelleenkäytettävien ohjelmistojen kehittämisessä.
Ohjelmistoarkkitehtuurit ja ohjelmistojen uudelleenkäyttö. Arkkitehtuurimallit. Arkkitehtuurien kuvaus. Oliosuunnittelumallit. Sovelluskehysarkkitehtuurit.
TUTKINTOVAATIMUKSET: Hyväksytysti suoritettu harjoitustyö ja tentti.
KIRJALLISUUS: Ilmoitetaan luennolla.
VAADITAVAT ESITIEDOT: 81130 Ohjelmistotuotannon menetelmät.
SUOSITELTAVAT ESITIEDOT: 8103080 Olio-ohjelmointi.

8109101 Ohjelmistotekniikan jatko-opintoseminaari, 1 ov
Postgraduate seminar, 1 cu

Professori REINO KURKI-SUONIO
Luentoja 14 h
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): - - 2 - -
Harjoitukset (h) - - - - -
TAVOITTEET JA SISÄLTÖ: Täydentää perusopintoja tietojenkäsittelyn teorian ja soveltamisen osalta keskeisillä alueilla.
Yksityiskohtainen sisältö vaihtuu suorituskerroittain.
TUTKINTOVAATIMUKSET: Aktiivinen osallistuminen seminaariin ja harjoituksiin.
KIRJALLISUUS: Vaihtuu aiheen mukaan. Joko aihepiiriä käsitteleviä kirjoja tai lehtiartikkeleita.
SUOSITELTAVAT ESITIEDOT: Ohjelmistotieteen tai -tuotannon pitkä ammattiaine tai vastaavat tiedot.
HUOMAUTUKSIA: Kurssilla on rinnakkaiskurssit 8109102, 8109103, 8109104 ja 8109105, jotka ovat muuten samanlaisia, mutta niiden opintoviikkomäärä on 2, 3, 4, ja 5 opintoviikkoa ja seminaarin kokonaistuntimäärä vastaavasti 28, 42, 56 ja 70
tuntia. Tuntimäärää voi vähentää harjoitustyö tai vastaava.

81125 Tietorakenteet ja algoritmit, 5 ov
Data Structures and Algorithms, 5 cu

Professori ANTTI VALMARI
Luentoja 70 h. Harjoituksia 28 h.
LUENTOPAIKKA JA -AIKA: Tiistai 10-13 HB116, torstai 11-13 HB116.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): - - 5+ 5 -
Harjoitukset (h) - - 2+ 2 -
TAVOITTEET JA SISÄLTÖ: Kyky hyödyntää tehokkaasti yleisesti tunnettuja algoritmeja: peruskäsitteiden tuntemus, taito arvioida algoritmin tehoa ja soveltuvuutta sekä perusalgoritmien tuntemus. Kyky suunnitella tehtävään sopiva algoritmi yhdistelemällä ja soveltamalla tunnettuja tietorakenteita ja algoritmeja. Käsitys algoritmien osoittamisesta oikein toimiviksi.
Algoritmien suorituskyky ja valinta, järjestämisalgoritmit, lista-, taulukko- ja puurakenteet, graafialgoritmeja, muistin hallinnan algoritmeja sekä algoritmien suunnitteluperiaatteita.
TUTKINTOVAATIMUKSET: Hyväksytysti suoritetut harjoitustyöt ja tentti.
KIRJALLISUUS: Luentomonisteet. Lisäksi suositellaan Cormen, Leiserson, Rivest: Introduction to Algorithms. The MIT Press, 1990.
VAADITAVAT ESITIEDOT: 81021 Laaja ohjelmointi ja 73116 Algoritmimatematiikka. Laajan ohjelmoinnin voi korvata kurssilla 81020 Ohjelmointi II.
HUOMAUTUKSIA: Voidaan suorittaa vain lukuvuosittain. Molempiin suuntiin vaihtokelpoinen vanhan kurssin 81120 Tietorakenteet ja algoritmit kanssa.

81130 Ohjelmistotuotannon menetelmät, 4 ov
Software Engineering Methodology, 4 cu

Professori ILKKA HAIKALA
Luentoja 56 h. Harjoituksia 28 h.
LUENTOPAIKKA JA -AIKA:
1. periodi: Maanantai 15-17 HB116, tiistai 15-17 HB116.
2. periodi: Maanantai 16-18 HB116, tiistai 15-17 HB116.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): - - 4+ 4 -
Harjoitukset (h) - - 2+ 2 -
TAVOITTEET JA SISÄLTÖ: Kyky toimia ohjelmistoprojektissa toteuttajana. Ohjelmistoprojektin hallinta. Ohjelmistojen oliokeskeinen määrittely ja suunnittelu UML-kielellä. Toimintaprosessit, laatujärjestelmä ja toimintatapojen kehittäminen. Tuotteenhallinta. Testaus ja laadunvarmistus.
TUTKINTOVAATIMUKSET: Harjoitustyö ja tentti.
KIRJALLISUUS: Haikala, Märijärvi: Ohjelmistotuontanto. Suomen ATK-kustannus Oy, 1998.
VAADITAVAT ESITIEDOT: 81210 Ohjelmistotuotannon peruskurssi.
SUOSITELTAVAT ESITIEDOT: 81370 Tietorakenteiden käyttö tai 81125 Tietorakenteet ja algoritmit.
HUOMAUTUKSIA: Voidaan suorittaa vain lukuvuosittain.

81141 Ohjelmointikielten periaatteet, 3 ov
Principles of Programming Languages, 3 cu

Professori REINO KURKI-SUONIO.
Luentoja 42 h. Harjoituksia 28 h.
LUENTOPAIKKA JA -AIKA: Perjantai 9-12 HB116.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): 3+ 3 - - -
Harjoitukset (h) 2+ 2 - - -
TAVOITTEET JA SISÄLTÖ: Oppia tuntemaan ohjelmointikielten yleiset periaatteet ja peruskäsitteet yksittäisiä ohjelmointikieliä yleisemmällä tasolla sekä ymmärtämään näiden vaikutus kielten toteutukseen ja käyttöön.
Ohjelmointikielten syntaktiset periaatteet ja syntaksin täsmällinen määrittely. Lausekkeet ja funktionaalisen ohjelmoinnin perusteet. Rakenteinen ohjelmointi: muuttujat ja sijoitusoperaatio, tietotyypit ja vahvat tyyppitarkistukset, parametrinvälitysmekanismit, poikkeusmekanismi, pinomainen muistin allokointi, osoittimet ja dynaaminen muistin allokointi. Modulaarinen ohjelmointi: pakkaukset, kapselointi, abstraktit tietotyypit. Olio-ohjelmointi: luokat, perintä, dynaaminen sidonta. Moduulien erikseen kääntämisen vaikutus kieleen. Rinnakkaisohjelmointi: yhteisen muistin hallinta (opastimet ja monitorit), synkroninen kommunikointi (rendezvous-mekanismi).
TUTKINTOVAATIMUKSET: Aktiivinen osallistuminen luentoihin ja harjoituksiin, viikottaisiin kirjallisiin tehtäviin vastaaminen sekä hyväksytysti suoritettu tentti.
KIRJALLISUUS: Rovert W. Sebesta, Concepts of Programming Languages, Fourth Edition, Addison-Wesley 1999.
VAADITAVAT ESITIEDOT: 81021 Laaja ohjelmointi.
SUOSITELTAVAT ESITIEDOT: 81370 Tietorakenteiden käyttö tai 81125 Tietorakenteet ja algoritmit.
HUOMAUTUKSIA: Voidaan suorittaa vain lukuvuosittain.

81151 Sulautetut järjestelmät, 3 ov
Embedded Systems, 3 cu

Professori HANNU-MATTI JÄRVINEN
Luentoja 42 h.
LUENTOPAIKKA JA -AIKA: Tiistai 9-12 HB115.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): - - 3+ 3 -
Harjoitukset (h) - - - - -
TAVOITTEET JA SISÄLTÖ: Opintojakson suoritettuaan opiskelijalla on yleiskuva sulautettujen järjestelmien tekemisessä tarvittavista asioista ja hän osaa toteuttaa ohjelmia järjestelmiin, joissa ohjataan ulkoista elektroniikkaa tai mekaniikkaa suhteellisen pienillä suorittimilla. Lisäksi hänellä on yleisnäkemys turvallisuuskriittisten järjestelmien erityisongelmista sekä reaaliaikajärjestelmistä.
Sulautettujen järjestelmien määrittely ja rakenne ohjelmoijan kannalta. Tiedon esitysmuodot. Tietokoneen arkkitehtuurit laitteistonläheisen ohjelmoinnin kannalta, parametrien välitys ja pienen koneen ohjelmointi. Eri tyyppiset ytimet. Elektroniikan ja mekaniikan ohjaus tietokoneella. Rinnakkaisuuden aiheuttamia ongelma-alueita ja niiden perusratkaisut monisuoritinympäristössa, reaaliaikaskedulointi. Muistinhallinta sulautetuissa järjestelmissä ja vikasietoisuuden perusteet.
TUTKINTOVAATIMUKSET: Hyväksytysti suoritetut harjoitustyöt ja tentti.
KIRJALLISUUS: Luentomoniste.
VAADITAVAT ESITIEDOT: 81180 Käyttöjärjestelmät ja 80100 Mikroprosessorit
SUOSITELTAVAT ESITIEDOT: 80105 Mikrokontrollerijärjestelmät
HUOMAUTUKSIA: Voidaan suorittaa vain lukuvuosittain.

81163 Tietokonegrafiikka, 4 ov
Computer Graphics, 4 cu

ILKKA KOKKARINEN
Luentoja 56h.
LUENTOPAIKKA JA -AIKA: Maanantai 12-14 HB115, torstai 15-17 HB115.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): - - 4+ 4 -
Harjoitukset (h) - - - - -
TAVOITTEET JA SISÄLTÖ: Opiskelija osaa tehdä tietokoneen näytön grafiikkaa ohjaavia ohjelmia. Näyttö- ja syöttölaitteet. Tietorakenteet ja algoritmit. Grafiikkakielet, grafiikkapaketit ja standardit. Grafiikkaprosessorit ja laitteisto, ikkunointijärjestelmät ja käyttöliittymät sekä sovelluksia.
TUTKINTOVAATIMUKSET: Harjoitustyöt ja tentti.
KIRJALLISUUS:
J.D. Foley and A. Van Dam: Introduction to Computer Graphics. Addison-Wesley 1994.
VAADITAVAT ESITIEDOT: 81021 Laajaohjelmointi tai 81020 Ohjelmointi II.
SUOSITELTAVAT ESITIEDOT: 81125 Tietorakenteet ja algoritmit tai 81370 Tietorakenteiden käyttö.
HUOMAUTUKSIA: Voidaan suorittaa vain lukuvuosittain.

81171 Lausekielten toteutustekniikka, 5 ov
Compiler Construction, 5 cu

Lehtori PERTTI LEHTINEN
Luentoja 56 h.
LUENTOPAIKKA JA -AIKA: Keskiviikko 12-14 HC215, torstai 10-12 HC215.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): - - 4+ 4 -
Harjoitukset (h) - - - - -
TAVOITTEET JA SISÄLTÖ: Luoda perustiedot ohjelmointikielten kääntämisen ja ajoaikaisen toteutuksen periaatteista sekä perusvalmiudet näiden tekniikoiden soveltamiseen. Lisäksi tavoitteena on saada kokemusta suurehkon , tiukalla aikataululla tehdyn ohjelmiston toteuttamisesta ja joistakin ohjelmistotyökaluista. Kurssin yhteydessä toteutetaan yksinkertaisen esimerkkikielen kääntäjä.
TUTKINTOVAATIMUKSET: Pareina tehty harjoitustyö, joka tehdään luentojen yhteydessä.
KIRJALLISUUS: Aho, Sethi, Ullman: Compilers: Principles, Tools and Techniques, Addison-Wesley 1985. tai Fisher, LeBlanc: Crafting a Compiler with C. Benjamin Cummings Publishing Co, Inc., 1991.
VAADITAVAT ESITIEDOT: 81125 Tietorakenteet ja algoritmit tai 81370 Tietorakenteiden käyttö, 81141 Ohjelmointikielten perusteet, 81180 Käyttöjärjestelmät.
SUOSITELTAVAT ESITIEDOT: 81151 Sulautetut järjestelmät.

81180 Käyttöjärjestelmät, 4 ov
Operating Systems, 4 cu

Professori HANNU-MATTI JÄRVINEN
Luentoja 56 h. Harjoituksia 28 h.
LUENTOPAIKKA JA -AIKA: Tiistai 11-13 HB116, torstai 12-14 HB116.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): 4+ 4 - - -
Harjoitukset (h) 2+ 2 - - -
TAVOITTEET JA SISÄLTÖ: Opiskelija tuntee opintojakson käytyään käyttöjärjestelmien tehtävät ja pääongelmat sekä niiden tavanmukaiset tekniset ratkaisut, osaa ratkaista rinnakkaisuuteen liittyviä pienimuotoisia ongelmia sekä pystyy itse hankkimaan tietoja käsikirjoista ja kirjallisuudesta.
Käyttöjärjestelmien rakenne, prosessien hallinta, muistinhallinta, tiedostojärjestelmä, samanaikaisuuden hallinta, verkkokäyttöjärjestelmät ja käyttöjärjestelmien reaaliaikaisuus.
TUTKINTOVAATIMUKSET: Tentti ja harjoitustyö. Tenttiin saavat osallistua vain harjoitustyön hyväksytysti palauttaneet.
KIRJALLISUUS: Ilkka Haikala, Hannu-Matti Järvinen: Käyttöjärjestelmät. Modeemi Ry:n teos C3, 1994 (tai kirjan uudempi painos) tai Silberschatz, Galvin: Operating Systems Concepts, 5. edition. Addison-Wesley, 1993.
VAADITAVAT ESITIEDOT: 81021 Laaja ohjelmointi tai 81020 Ohjelmointi II sekä 81370 Tietorakenteiden käyttö tai 81125 Tietorakenteet ja algoritmit.
HUOMAUTUKSIA: Kurssi voidaan suorittaa vain lukuvuosittain.

81201 Reaktiiviset järjestelmät, 4 ov
Reactive Systems, 4 cu

Professori REINO KURKI-SUONIO
Luentoja 56 h Harjoituksia 28 h.
LUENTOPAIKKA JA -AIKA: Tiistai 14-17 HC215, perjantai 9-12 HC215.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): - - 4+ 4 -
Harjoitukset (h) - - 2+ 2 -
TAVOITTEET JA SISÄLTÖ: Oppia tunteman sulautettujen, hajautettujen ja reaaliaikaisten järjestelmien määrittelyssä ja suunnittelussa tarpeellinen formaali pohja. Ymmärtää ohjelmiston dynaamisen käyttäytymisen loogiset ominaisuudet. Perehtyminen täsmälliseen logiikkaan, jolla näitä ominaisuuksia voidaan kuvata, sekä siihen perustuvaan oliokeskeiseen määrittely- ja suunnittelumetodiikkaan.
Aktiopohjainen suoritusmalli, systeemin ja sen ympäristön kuvaaminen suljettuna mallina, käyttäytymiset päättymättöminä tilajonoina, käyttäytymisten loogiset ominaisuudet (turvallisuus- ja elävyysominaisuudet), aktioiden aikalogiikka ja sen suhde aktiopohjaiseen suoritusmalliin, oliokeskeinen määrittely yhteisaktioita käyttäen, superpositio ja siihen perustuva inkrementaalinen suunnittelumetodiikka, hajautettujen ja reaaliaikasten järjestelmien kuvaaminen.
TUTKINTOVAATIMUKSET: Hyväksytysti suoritettu tentti.
KIRJALLISUUS: Opetusmoniste jaetaan luentojen yhteydessä.
VAADITAVAT ESITIEDOT: 81125 Tietorakenteet ja algoritmit.
SUOSITELTAVAT ESITIEDOT: 81141 Ohjelmointikielten periaatteet, 81180 Käyttöjärjestelmät.
HUOMAUTUKSIA: Sopii myös lisensiaattikurssiksi.

81210 Ohjelmistotuotannon peruskurssi, 2 ov
Introduction to Software Engineering, 2 cu

Professori ILKKA HAIKALA
Luentoja 28 h. Harjoituksia 28 h.
LUENTOPAIKKA JA -AIKA: Tiistaisin 16-18 salissa K1705.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): 2+ 2 - - -
Harjoitukset (h) 2+ 2 - - -
TAVOITTEET JA SISÄLTÖ: Luoda yleiskuva ohjelmistotyöstä ja perusvalmiudet määrittelymenetelmien soveltamiseen. Kyky osallistua ohjelmistoprojektiin asiakkaan edustajana.
Ohjelmiston määrittelyprosessi. Tietovuokaaviot, tietohakemistot, tilakaaviot, ER-kaaviot, SA-määrittelymenetelmä sekä oliokeskeinen määrittely UML-kielellä.
TUTKINTOVAATIMUKSET: Vierailuluentoihin osallistuminen, sekä ryhmätyönä tehty harjoitustyö ja tentti.
KIRJALLISUUS: Haikala, Märijärvi: Ohjelmistotuotanto. 5. painos. Suomen ATK-kustannus Oy. 1998.
VAADITAVAT ESITIEDOT: 81011 Ohjelmointi I tai 81021 Laaja ohjelmointi.

81220 Suorituskykyanalyysi, 3 ov
Performance Analysis, 3 cu

Professori LEO SINTONEN
Luentoja 42 h. Harjoituksia 28 h.
LUENTOPAIKKA JA -AIKA: Keskiviikko 14-17 HC215.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): 3+ 3 - - -
Harjoitukset (h) 2+ 2 - - -
TAVOITTEET JA SISÄLTÖ: Opintojakson suorittanut opiskelija pystyy laatimaan tietokonejärjestelmien ja ohjelmistojen suorituskykymalleja sekä arvioimaan mallien rajoituksia ja niiden antamien tulosten merkitystä.
Jonomallinnus, jonoverkot, Markov-mallinnus, analyysialgoritmeja. Simulointi. Esimerkkejä.
TUTKINTOVAATIMUKSET: Hyväksytty tentti.
KIRJALLISUUS: Harrison P.G, Patel, N.M., Performance Modelling of Communication Networks and Computer Architectures, AddisonWesley 1992.
SUOSITELTAVAT ESITIEDOT: 81180 Käyttöjärjestelmät 81521 Hajautettujen järjestelmien suunnittelu.

81234 Tietokantojen perusteet, 3 ov
Introduction to Databases, 3 cu

JARI PELTONEN
Luentoja 42 h. Harjoituksia 28 h.
LUENTOPAIKKA JA -AIKA: 11.1-29.3 Tiistai 13-15 + Torstai 13-15 HB116.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): - - 3+ 3 -
Harjoitukset (h) - - 2+ 2 -
TAVOITTEET JA SISÄLTÖ: Perehdyttää tietokantojen perusajatuksiin. SQL, tietokannan suunnittelu, tietokantajärjestelmät ja tietokantaohjelmiston käyttö.
TUTKINTOVAATIMUKSET: Tentti ja kaksi harjoitustyötä.
KIRJALLISUUS: Ilmoitetaan luennoilla.
VAADITAVAT ESITIEDOT: 81210 Ohjelmistotuotannon peruskurssi.

81240 Ohjelmien todistaminen, 3 ov
Program Verification, 3 cu

Professori ANTTI VALMARI
Luentoja 42 h. Harjoituksia 28 h.
LUENTOPAIKKA JA -AIKA: Maanantai 14-17 salissa HB101.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): 3+ 3 - - -
Harjoitukset (h) 2+ 2 - - -
TAVOITTEET JA SISÄLTÖ: Luoda opiskelijalle valmiuksia ymmärtää ja käyttää matemaattisia menetelmiä ohjelmointityön, erityisesti algoritmien määrittelyn ja suunnittelun sekä vaikeiden ohjelman osien ja vaikeiden algoritmien toteuttamisen apuna.
Algoritmien ja pienten ohjelmien spesifiointi ja oikeaksi osoittaminen logiikan ja joukko-opin avulla. Formaalien menetelmien periaatteelliset ja käytännölliset rajoitukset.
TUTKINTOVAATIMUKSET: Pakolliset laskuharjoitukset ja tentti.
KIRJALLISUUS: Luentomonisteet. Tukena voi käyttää kirjaa Backhouse, R.: Program Construction and Verification.
VAADITAVAT ESITIEDOT: 73116 Algoritmimatematiikka.
SUOSITELTAVAT ESITIEDOT: 81260 Johdatus tietojenkäsittelyteoriaan.
HUOMAUTUKSIA: Sopii myös jatko-opintokurssiksi. Luennoidaan joka toinen lukuvuosi. Entinen nimi "Formaalit menetelmät".

81250 Ohjelmistoprojektin johtaminen, 5 ov
Software Project Management, 5 cu

Professori ILKKA HAIKALA
Opetusta 16 kurssipäivää.
TAVOITTEET JA SISÄLTÖ: Käsiteltäviä aiheita ovat mm. puheviestintä, luovuus, ryhmätyöskentely, yrityksen talous projektinvetäjän kannalta, tuotekehitysprojektin käynnistäminen, suunnittelu, strategia, projektipäällikön vastuualueet, ohjelmistoprojektin vetäjän tehtävät, ohjelmistotuotantoprosessin vaiheet ja menetelmät eri vaiheissa, dokumentointi ja sen standardit, tuotteenhallinta, laatu ja laadunvarmistus, ISO 9000 sekä ohjelmistotuotantoon liittyvä juridiikka.
TUTKINTOVAATIMUKSET: Aktiivinen osallistuminen kurssille.
KIRJALLISUUS: Kukin kouluttaja toimittaa materiaalin omasta osuudestaan.
VAADITAVAT ESITIEDOT: 81130 Ohjelmistotuotannon menetelmät sekä käytännön kokemus ohjelmistotyöstä.
HUOMAUTUKSIA: Kurssi on täydennyskoulutuskurssi ja se pidetään vain tilauksesta.

81260 Johdatus tietojenkäsittelyteoriaan, 4 ov
Introduction to Theoretical Computer Science, 4 cu

Professori ANTTI VALMARI
Luentoja 56 h. Harjoituksia 28 h.
LUENTOPAIKKA JA -AIKA: Tiistai 12-14 HB115, torstai 14-16 HB115.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): 4+ 4 - - -
Harjoitukset (h) 2+ 2 - - -
TAVOITTEET JA SISÄLTÖ: Tutustua ohjelmoinnissa keskeisiin tietojenkäsittelyteorian osiin. Painopiste on tuloksissa, jotka ovat joko käytännössä tärkeitä (esim. koneellisesti käsiteltävän kielen suunnittelussa) tai maailmankuvallisesti merkittäviä (kuten ratkeavuustulokset). Tavoitteena on myös oppia täsmällistä päättelyä ja tietojenkäsittelytieteen ajattelutapaa.
Automaattien ja kielten teoriaa ohjelmoinnin näkökulmasta, äärettömät joukot, laskettavuus- eli ratkeavuusteoriaa, epädeterminismi, Turingin koneet, laskennallisen vaativuuden teoriaa, NP-kovien tehtävien käsittely.
TUTKINTOVAATIMUKSET: Pakolliset laskuharjoitukset ja tentti.
KIRJALLISUUS: Luentomonisteet. Tukena voi käyttää mm. kirjoja Lewis & Papadimitriou: Elements of the Theory of Computation; Hopcroft & Ullman: Introduction to Automata Theory, Languages, and Computation; Garey & Johnson: Computers and Intractability.
VAADITAVAT ESITIEDOT: 73116 Algoritmimatematiikka ja 81125 Tietorakenteet ja algoritmit.
HUOMAUTUKSIA: Pakollinen ohjelmistotieteen pitkässä ammattiaineessa sekä ohjelmistotekniikkaan keskittyvissä jatko-opinnoissa.

81261 Tietojenkäsittelyteorian harjoitustyö, 1 ov
Theoretical Computer Science Mini-Project, 1 cu

Professori ANTTI VALMARI
Omatoimista opiskelua 40 h.
TAVOITTEET JA SISÄLTÖ: Kyky kirjoittaa tieteellistä tekstiä ohjelmistotekniikan alalla.
Noin 10-sivuisen, ohjelmistotekniikan alan tieteellisen artikkelin rakennetta, tyyliä ja esitystapaa noudattavan suomen- tai englanninkielisen tekstin laadinta opettajan kanssa sovittavasta aiheesta. Tekstin aiheena voi olla esimerkiksi jonkin kohteen täsmällinen määritelmä, tuloksen todistaminen tai teorian esittely.
TUTKINTOVAATIMUKSET: Ym. tekstin hyväksyntä.
KIRJALLISUUS: Sovitaan tapauskohtaisesti.
VAADITAVAT ESITIEDOT: 81260 Johdatus tietojenkäsittelyteoriaan.
HUOMAUTUKSIA: Tämä kurssi yhdessä kurssin 81260 Johdatus tietojenkäsittelyteoriaan kanssa on yksi tutkijakoulu TISEn viidestä ydinkurssista.

81270 Rinnakkaisten järjestelmien ulkoinen
käyttäytyminen, 3 ov
Externally Observable Behaviour of
Concurrent Systems, 3 cu

Professori ANTTI VALMARI
Luentoja 42 h. Harjoituksia 28 h.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): 3+ 3 - - -
Harjoitukset (h) 2+ 2 - - -
TAVOITTEET JA SISÄLTÖ: Reaktiivisen ja / tai rinnakkaisen tietoteknisen järjestelmän ulkoisella käyttäytymisellä tarkoitetaan järjestelmän käyttäytymisen niitä piirteitä, jotka ovat havaittavissa järjestelmän ja sen ympäristön välistä rajapintaa tarkastelemalla. Kurssin tavoitteena on oppia ymmärtämään ulkoiseen käyttäytymiseen liittyviä ilmiöitä sekä niiden merkitystä järjestelmän määrittelemisen, testaamisen ja oikeaksi osoittamisen kannalta. Kurssi antaa myös mahdollisuuden tutustua tutkimuksen tekoon ohjelmistotekniikan alalla.
Järjestelmien määrittely rinnakkaisina siirtymäsysteemeinä. Ulkoinen käyttäytyminen tamperelais-helsinkiläisen CFFD-teorian (tunnetun CSP-teorian muunnos) valossa. Teorian sovelluksia järjestelmien määrittelyyn, testaukseen ja oikeaksi osoittamiseen.
TUTKINTOVAATIMUKSET: Pakolliset laskuharjoitukset ja tentti.
KIRJALLISUUS: Luentomonisteet.
VAADITAVAT ESITIEDOT: 73116 Algoritmimatematiikka ja 81125 Tietorakenteet ja algoritmit.
SUOSITELTAVAT ESITIEDOT: 81260 Johdatus tietojenkäsittelyteoriaan.
HUOMAUTUKSIA: Tarkoitettu lähinnä lisensiaattikurssiksi, mutta suositellaan myös teoriasta tai tutkimustyöstä kiinnostuneille perusopiskelijoille. Luennoidaan joka toinen lukuvuosi, ei luennoida syksyllä 2000.

81280 Ohjelmistojen testaus, 3 ov
Software testing, 3 cu

PABLO VIROLAINEN
Luentoja 8 h.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): 2 2 2 2 -
Harjoitukset (h) - - - - -
TAVOITTEET JA SISÄLTÖ: Opiskelija tuntee testaamisen perusajatukset, osaa niitä soveltaa ohjelmistotyössä ja ottaa ne huomioon ohjelmiston elinkaaren muissa vaiheissa.
Tutustuminen testaamista helpottaviin ja tukeviin työkaluihin ja metodeihin sekä niiden tarvitsemien lähtötietojen tuottaminen elinkaaren eri vaiheissa. Aiheeseen tutustutaan lähinnä harjoitustöiden avulla.
TUTKINTOVAATIMUKSET: Hyväksytysti suoritetut harjoitustyöt ja tarvittaessa niihin liittyvä kuulustelu.
VAADITAVAT ESITIEDOT: 81021 Laaja ohjelmointi ja 81210 Ohjelmistotuotannon perusteet
SUOSITELTAVAT ESITIEDOT: 81140 Ohjelmistotuotannon menetelmät
HUOMAUTUKSIA: Kurssin voi suorittaa vain lukuvuosittain. Korvaa kurssin 81950 Ohjelmistotekniikan työkurssi.

81340 Ohjelmistotekniikan pienoisseminaari, 1 ov
Miniseminar on Software Systems, 1 cu

Professori HANNU-MATTI JÄRVINEN
Seminaareja 16h
TAVOITTEET JA SISÄLTÖ: Määräytyy kulloisenkin aihepiirin mukaan. Kurssilla perehdytään johonkin ohjelmistotekniikan aihepiirin ja siihen liittyvän tietouden käytännölliseen soveltamiseen.
TUTKINTOVAATIMUKSET: Aktiivinen osallistuminen seminaariin.
KIRJALLISUUS: Määräytyy aihepiirin mukaan.
SUOSITELTAVAT ESITIEDOT: Ohjelmistotekniikan tai -tuotannon lyhyt ammattiaine tai vastaavat tiedot.
HUOMAUTUKSIA: Luennoidaan vain tarvittaessa.

81360 Seittiohjelmointi, 2 ov
Web Programming, 2 cu

VESA-PEKKA SAVIKKO
Luentoja 28 h.
LUENTOPAIKKA JA -AIKA: Keskiviikko 11-13 HB116.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): - - 2 2 -
Harjoitukset (h) - - - - -
TAVOITTEET JA SISÄLTÖ: Suoritettuaan kurssin opiskelija osaa tehdä ei-triviaaleja sovelluksia seittiin (World Wide Web).
WWW-arkkitehtuuri (asiakas/palvelin, CGI, HTTP). Java-kieli ja siihen liittyvät rajapinnat (mm. appletit, AWT, RMI, servletit). Rinnakkaisuuteen ja hajautukseen liittyvät ongelmat. Olioarkkitehtuurit ja komponenttiratkaisut (mm. CORBA, Beans).
TUTKINTOVAATIMUKSET: Hyväksytysti suoritetut harjoitustyöt sekä välikokeet tai tentti.
KIRJALLISUUS: Ilmoitetaan luentojen alussa.
VAADITAVAT ESITIEDOT: 8103080 Olio-ohjelmointi.

81370 Tietorakenteiden käyttö, 3 ov
Utilization of data structures, 3 cu

lehtori PERTTI LEHTINEN
Luentoja 42h. Harjoituksia 14 h.
LUENTOPAIKKA JA -AIKA: Perjantai 9-12 HB115.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): 3+ 3 - - -
Harjoitukset (h) 1+ 1 - - -
TAVOITTEET JA SISÄLTÖ: Opintojakson suoritettuaan opiskelija tuntee yleiset lajittelumenelmät ja perustietorakenteet (listat, puut) ja osaa käyttää niihin liittyviä algoritmeja.
Lajittelumenetelmiä, listat, puut (binääripuu, puna-musta puu).
TUTKINTOVAATIMUKSET: Aktiivisesti suoritetut harjoitukset, harjoitustyöt ja tentti.
KIRJALLISUUS: Luentomoniste.
VAADITAVAT ESITIEDOT: 81021 Laaja ohjelmointi tai 81020 Ohjelmointi II.
HUOMAUTUKSIA: Voidaan laajentaa kurssiksi 81125 Tietorakenteet ja algorimit. Kurssit ovat toisensa poissulkevia, eli vain toinen hyväksytään mukaan tutkinnon tai ammattiaineen kokonaisopintoviikkomäärään.

81380 Fortran-kieli, 1 ov
The Fortran Programming Language, 1 cu

N.N.
Harjoituksia 14 h.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): - - - - -
Harjoitukset (h) - - 2 - -
TAVOITTEET JA SISÄLTÖ: Opiskelija pystyy kirjoittamaan pieniä sovelluksia Fortran-kielellä sekä käyttämään Fortran-kielisiä aliohjelmakirjastoja.
Fortran 90/95: muuttujat, tyypit ja rakenteet sekä tulostus. Numeerisen matematiikan aliohjelmakirjastot ja niiden käyttö.
TUTKINTOVAATIMUKSET: Harjoitustyöt.
KIRJALLISUUS: Juha Haataja, Jussi Rahola ja Juha Ruokolainen: Fortran 90/95, CSC - Tieteellinen laskenta Oy 1998. 348 sivua, ISBN 952-9821-49-2. Hinta: 129,60
VAADITAVAT ESITIEDOT: 81011 Ohjelmointi I.
HUOMAUTUKSIA: Harjoitustyöt tulee suorittaa kurssin aikana. Suositellaan tieteellisesta ja teknisesta laskennasta kiinnostuneille opiskelijoille.

81391 Seittiviestintä, 2 ov
Web Communication, 2 cu

Tutkija MIKA RÖYKKEE
Luentoja 28h, harjoituksia 14h
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): 4 - - - -
Harjoitukset (h) 2 - - - -
TAVOITTEET JA SISÄLTÖ: Opintojaksolla on tavoitteena tutustua internet-verkon käyttöön yritysviestinnässä. Viestinnässä käytettävät internet, intranet ja ekstranet -tekniikoiden pääperiaatteet sekä näihin liittyvät turvallisuustekijät.
Luennoilla käsitellään verkon turvallisuutta, eri palvelinalustoja, HTML-standardia, validaattoreita, eri selaimia sekä Normanin suunnitteluperiaatteita. Tietokantoihin, tulostettaviin dokumentteihin ja plug-in:eihin sekä muuhun kurssiin oleellisesti liittyviin asioihin perehdytään ajan salliessa. Harjoituksissa käydään läpi HTML-kieli, HTTP-protokolla sekä internet-tekniikoihin liittyvää terminologiaa, tutustutaan erilaisiin seittisivuihin ja arvioidaan niitä, tutustutaan eri selaimiin ja HTML-editoreihin. Seittiin littyviin ohjelmointitekniikoihin sekä palvelinalustoihin ja näiden keskinäiseen vaikutukseen perehdytään myös.
TUTKINTOVAATIMUKSET: Kirjallinen tentti, osallistuminen harjoituksiin ja vierailuluentoihin sekä harjoitustyöt.
KIRJALLISUUS: Kirjallisuus ilmoitetaan luennoilla.
VAADITAVAT ESITIEDOT: 81001 Tietotekniikan peruskurssi.
SUOSITELTAVAT ESITIEDOT: 81011 Ohjelmointi I.
HUOMAUTUKSIA: Toteutetaan osana yritysviestinnän ammattiainetta. Kurssia ei voi sisällyttää ohjelmistotekniikan ammattiaineisiin.

81521 Hajautettujen järjestelmien suunnittelu, 3 ov
Design of Distributed Systems, 3 cu

Professori LEO SINTONEN
Luentoja 42 h. Harjoituksia 28 h.
LUENTOPAIKKA JA -AIKA: To. 12-15 HB115.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): - - 3+ 3 -
Harjoitukset (h) - - 2+ 2 -
TAVOITTEET JA SISÄLTÖ: Luoda perustiedot hajautettujen järjestelmien rakenteesta ja niiden suunnitteluongelmista.
Hajautettu vs. keskitetty järjestelmä. Palvelumallit. Spesifiointi. Prosessien keskeinen kommunikaatio, prosessiryhmät. ja hajautetut tiedostojärjestelmät. Vikasietoisuusnäkökohtia, reaaliaikaisuus ja suojaus.
TUTKINTOVAATIMUKSET: Hyväksytysti suoritettu tentti. Hyväksytyt harjoitukset.
KIRJALLISUUS: Colouris,Dollimore,Kindberg: Distributed Systems. 2nd ed. Addison-Wesley 1994.
VAADITAVAT ESITIEDOT: 81180 Käyttöjärjestelmät.

81530 Hajautettujen järjestelmien ohjelmistotekniikka, 3 ov
Distributed Systems Software, 3 cu

Professori LEO SINTONEN
Luentoja 42 h. Harjoituksia 28 h.
LUENTOPAIKKA JA -AIKA: Torstai 11-14 HC215.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): 3+ 3 - - -
Harjoitukset (h) 2+ 2 - - -
TAVOITTEET JA SISÄLTÖ: Tutustua hajautetun järjestelmän luotettavan toiminnan kannalta keskeisiin algoritmeihin ja samalla oppia vastaavanlaiseten algoritmien suunnittelua.
Looginen aika, kausaalisuus. Synkronointi. Hajautetut pääsyalgoritmit. Prosessiryhmät. Kausaaliset ja atomiset protokollat. Globaalin tilan ilmaisu, konsensus ja vikasietoiset algoritmit.
TUTKINTOVAATIMUKSET: Hyväksytysti suoritettu tentti.
KIRJALLISUUS: L.Sintonen, Luentomoniste hajautetuista järjestelmistä.
M.Singhal, N.G.Shivaratri: Advanced Concepts in Operating Systems,
McGraw-Hill 1994. Luvuissa 5 -8, 13 on kurssiin liittyvää materiaalia.
S.Mullender: Distributed Systems, Addison-Wesley, 1995.
Luvuissa 4,5,16,17 on kurssiaineistoa.
VAADITAVAT ESITIEDOT: 81521 Hajautettujen järjestelmien suunnittelu.

81822 Käytettävyys, 2 ov
Usability, 2 cu

Koulutuspäällikkö MANU SETÄLÄ
Luentoja 28h. Harjoituksia 14h.
LUENTOPAIKKA JA -AIKA: Perjantai 12-14 HB116
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): 2+ 2 - - -
Harjoitukset (h) 1+ 1 - - -
TAVOITTEET JA SISÄLTÖ: Käytettävyyden perustietojen ja arvioinnin oppiminen. Käyttäjäkeskeisen suunnittelun perusteet. Käyttöliittymien ja käytettävyyden perustermistön tunteminen.
Ihmisen ominaisuuksista johdetut suunnitteluperiaatteet. Käyttöliittymätyypit. Näytön ja tulostuksen suunnittelu ja arviointi. Käyttöliittymien arviointimenetelmiä.
TUTKINTOVAATIMUKSET: Aktiivinen osallistuminen opetukseen, harjoitustyö ja kuulustelu.
KIRJALLISUUS: Luentopruju.
HUOMAUTUKSIA: Korvaa kurssin 81820 Käyttöliittymät.

81830 Graafisen käyttöliittymän ohjelmointi, 4 ov
Programming of Graphical User Interface, 4 cu

Koulutuspäällikkö MANU SETÄLÄ
Luentoja 56h. Harjoituksia 28h.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): - - 4+ 4 -
Harjoitukset (h) - - 2+ 2 -
TAVOITTEET JA SISÄLTÖ: Graafisen käyttöliittymän ohjelmointitaito.
Tutustuminen ohjelmointiin Microsoft Windows ja X Window -ympäristöissä. Pienlaitteiden käyttöliittymät. Käyttöliittymän ohjelmointi näissä ympäristöissä.
TUTKINTOVAATIMUKSET: Pienryhmissä, eri käyttöliittymäympäristöissä, tehtävät arvosteltavat harjoitustyöt. Kurssista ei ole tenttiä (työkurssi).
KIRJALLISUUS: Kurssipruju ja seuraavat soveltuvin osin: Petzold, Programming Windows 95, Microsoft Press, 1996 O. Jones, Introduction to the Window X System. Prentice Hall, 1989. D. A. Young, The X Window System : Programming and Applications with Xt. Prentice Hall, 1990.
VAADITAVAT ESITIEDOT: 8103080 Olio-ohjelmointi ja 81822 Käytettävyys.
SUOSITELTAVAT ESITIEDOT: 81120 Tietorakenteet ja algoritmit.
HUOMAUTUKSIA: Kurssi luennoidaan joka toinen vuosi.
Ei luennoida lukuvuonna 2000-2001.

81860 Käytettävyyden jatkokurssi, 4 ov
Advanced Usability Course, 4 cu

Koulutuspäällikkö MANU SETÄLÄ
Luentoja 56h. Harjoituksia 28h.
LUENTOPAIKKA JA -AIKA: Tiistai 12-14, salissa HB115 Keskiviikko 14-16, salissa HB115
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): - - 4+ 4 -
Harjoitukset (h) - - 2+ 2 -
TAVOITTEET JA SISÄLTÖ: Kyky käyttää ihmisen havaintokyvyn ja ajattelun mahdollisuuksia ja rajoitteita käyttöliittymien tekemisessä. Käyttöliittymien termistön ja käyttöliittymän arviointimenetelmien osaaminen.
Kognition perusteet: muistimallit, havaitseminen, tietoisuus, tarkkaavaisuus, oppiminen, päätöksenteko, ajattelu ja ongelmanratkaisu. Erikoisryhmien vaatimukset. Käytettävyys ja ohjelmistoprosessi. Sommittelu, värit. Vuorovaikutusvälineet. Käyttöliittymän tehokkuus.
TUTKINTOVAATIMUKSET: Aktiivinen osallistuminen opetukseen, harjoitustyöt ja tentti.
KIRJALLISUUS: Kurssipruju. Gardiner&Christie:Applying Cognitive Psychology to User-Interface Design. Dix&Finley&Abowd&Beale:Human-Computer Interaction.
VAADITAVAT ESITIEDOT: 81822 Käytettävyys
HUOMAUTUKSIA: Kurssi luennoidaan joka toinen vuosi. Luennoidaan lukuvuonna 2000-2001.

81902 Ohjelmistotekniikan diplomityöseminaari A, 1 ov
Diploma Thesis Seminar A, 1 cu

Professori ILKKA HAIKALA
Seminaareja 14 h.
LUENTOPAIKKA JA -AIKA: Perjantai 12-14 HB115.
TAVOITTEET JA SISÄLTÖ: Yleisen käsityksen saaminen erilaisista diplomitöistä ja niiden laajuudesta oman diplomityön aiheen valinnan helpottamiseksi.
TUTKINTOVAATIMUKSET: Yhden lukukauden diplomityöseminaariesitelmien seuraaminen. Opintojakso on pakollinen kaikille, jotka tekevät diplomityön ohjelmistotekniikasta.
SUOSITELTAVAT ESITIEDOT: Peruskurssit, jatkokurssit suorituksessa.
HUOMAUTUKSIA: Suositellaan suoritettavaksi noin neljättä vuosikurssia vastaavana aikana, ennen oman diplomityön aloittamista. Kurssin voi suorittaa lukukausittain. Myös signaalinkäsittelyn ja tietokonetekniikan sekä tietoliikennetekniikan diplomityöseminaarin esitelmien seuraaminen hyväksytään.

81903 Ohjelmistotekniikan diplmomityöseminaari B
Diplmoa Thesis Seminar B

Professori ILKKA HAIKALA
Seminaareja 1h.
LUENTOPAIKKA JA -AIKA: Perjantai 12-14 HB115.
TAVOITTEET JA SISÄLTÖ: Esitellä diplomityön sisältöä sekä ohjaajalle että opiskelijoille.
Määräytyy diplomityön aiheen mukaan.
TUTKINTOVAATIMUKSET: Seminaariesitelmän pito diplomityön aiheesta. Opintojakso on pakollinen kaikille, jotka tekevät diplomityön ohjelmistotekniikasta. Tarkemmat tiedot esitelmän laajuudesta saa työn valvojalta.
SUOSITELTAVAT ESITIEDOT: 81902 Ohjelmistotekniikan diplomityöseminaari A tai jonkin muun laitoksen diplomityöseminaari.

81930 Ohjelmistotekniikan erityiskysymyksiä, 2 ov
Special Topics in Software Systems, 2 cu

Professori LEO SINTONEN
Seminaareja 32 h.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): - - 2+ 2 -
Harjoitukset (h) - - - - -
TAVOITTEET JA SISÄLTÖ: Määräytyy kulloisenkin aihepiirin mukaan. Kurssilla perehdytään johonkin ohjelmistotekniikan aihepiirin ja siihen liittyvän tietouden käytännölliseen soveltamiseen.
TUTKINTOVAATIMUKSET: Aktiivinen osallistuminen yhden lukukauden kestävään seminaariin, jossa perehdytään aihepiiriä käsittelevään kirjallisuuteen ja harjoitustyö.
KIRJALLISUUS: Määräytyy aihepiirin mukaan.
SUOSITELTAVAT ESITIEDOT: Lyhyen ammattiaineen kurssit.
HUOMAUTUKSIA: Kurssilla on rinnakkaisnumerot 81930-81933, jotta eri aiheista pidetyt kurssit voidaan ottaa mukaan tutkintoon.

81940 Ohjelmistotekniikan seminaari, 2-4 ov
Software Systems Seminar, 2-4 cu

Professori ILKKA HAIKALA
Seminaareja 28h
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): 2+ 2 - - -
Harjoitukset (h) - - - - -
TAVOITTEET JA SISÄLTÖ: Määräytyy kulloisenkin aihepiirin mukaan kuten myös opintoviikkomäärä.
TUTKINTOVAATIMUKSET: Aktiivinen osallistuminen yhden lukukauden kestävään seminaariin sekä harjoitustyö ja/tai tentti.
SUOSITELTAVAT ESITIEDOT: Ohjelmistotekniikan jatkokurssit.
HUOMAUTUKSIA: Sopii myös jatko-opintokurssiksi. Kurssilla on rinnakkaisnumerot 81940-81943, jotta eri aihepiirejä sisältäneet seminaarit voidaan ottaa mukaan tutkintoon.

81960 Ohjelmistotekniikan projektityö, 3-5 ov
Software Engineering Project, 3-5 cu

Lehtori TERO AHTEE
Seminaareja 28 h
LUENTOPAIKKA JA -AIKA: Syksyllä tiistai 08-10 HB115, keväällä tiistai 16-18 HB115.
VIIKOTTAINEN OPETUS/PERIODI S1 S2 K1 K2 KESÄ
Luennot (h): 1+ 1+ 1+ 1 -
Harjoitukset (h) - - - - -
TAVOITTEET JA SISÄLTÖ: Opettaa projektinhallintaa ja dokumentointia ja toimimista projektissa käytännössä sekä luoda valmiuksia diplomityön tekemistä varten.
Ryhmissä tehty projekti ja siihen liittyvä seminaari tai luennot. Opintoviikkomäärä määräytyy projektin laajuudesta. Projektin aiheen voi ehdottaa itse.
TUTKINTOVAATIMUKSET: Aktiivinen osallistuminen lukuvuoden kestävään seminaariin tai luentoihin sekä hyväksytysti suoritettu projektityö.
VAADITAVAT ESITIEDOT: 81210 Ohjelmistotuotannon peruskurssi sekä 81130 Ohjelmistotuotannon menetelmät, ja joko 81125 Tietorakenteet ja algoritmit tai 81370 Tietorakenteiden käyttö.
SUOSITELTAVAT ESITIEDOT: 81280 Ohjelmistojen testaus ja 81822 Käytettävyys.
HUOMAUTUKSIA: Kurssi tulee suorittaa yhden lukuvuoden aikana. Osa projektin jäsenistä voi olla kurssien "Signaalinkäsittelyn ja tietokonetekniikan projektityö" tai "Tietoliikennetekniikan projektityö" suorittajia.

8108001 Johdatus sosiaalitieteisiin, 2 ov

Professori HARRI MELIN
Luentoja 20 h.
TAVOITTEET JA SISÄLTÖ: Esitellä sosiologian keskeisiä käsit-teitä ja tutkimussuuntauksia. Johdattaa kuulijoita ajankohtai-seen sosiologiseen keskusteluun ja antaa heille välineitä tulkita arkielämää sosiologisesti.
Luennoilla käsitellään mm. sosiaalista vuorovaikutusta, arkielä-mää ja työelämän sosiologista tutkimusta.
TUTKINTOVAATIMUKSET: Luennot, essee tai luentopäiväkirja.
KIRJALLISUUS: Elina Saksala (toim.) Muutoksen sosiologia, YLE 1998, Harri Melin: Sosiologian peruskurssi. Sosiologian verkko-opetusaineisto Tampereen yliopistossa, syksy 1999.
HUOMAUTUKSIA: Opintojakso kuuluu opintokokonaisuuteen "Yksilö, yhteiskunta ja tekniikka", joka toteutetaan yhteistyössä Tampereen yliopiston kanssa. Se on tarkoitettu vain niille opiskelijoille, jotka opiskelevat tätä kokonaisuutta.

8108002 Sosiologinen käyttäjätutkimus:
Viestimet ihmisen arjessa, 2 ov

Professori PERTTI ALASUUTARI
Luentoja, vierailuluentoja, keskustelua, harjoitustehtäviä.
TAVOITTEET JA SISÄLTÖ: Perehdyttää viestintäteknologian käyttöön osana arkielämää: mihin ihmiset käyttävät eri laitteita työssä ja vapaa-aikanaan; mikä työnjako; mitä ongelmia niiden käyttöön liittyy? Antaa valmiudet käyttää alan tutkimustietoa suunnittelun ja markkinoinnin apuna sekä tehdä sosiologista käyttäjätutkimusta.
TUTKINTOVAATIMUKSET: Opintojaksoa varten laaditaan opetusmoniste, joka tentitään kurssin yhteydessä.
HUOMAUTUKSIA: Opintojakso kuuluu opintokokonaisuuteen "Yksilö, yhteiskunta ja tekniikka", joka toteutetaan yhteistyössä Tampereen yliopiston kanssa. Se on tarkoitettu vain niille opiskelijoille, jotka opiskelevat tätä kokonaisuutta.

8108003 Tekninen viestintä: tuoteviestintä käyttäjäystävällisessä tietoyhteiskunnassa, 2 ov

Tutkija TYTTI SUOJANEN
Luentoja ja työpajaharjoituksia, vierailuluentoja.
TAVOITTEET JA SISÄLTÖ: Perehdyttää teknisen viestinnän rooliin sekä käyttäjän että viestijän näkökulmasta. Harjaannuttaa selkeään ja käyttäjäystävälliseen tuoteviestintään eri kohderyhmille, joiden tietopohja sekä kieli- ja kulttuuritausta vaihtelevat. Antaa valmiudet toimia yhteistyöympäristössä muiden viestinnästä vastaavien ammattilaisten kanssa.
TUTKINTOVAATIMUKSET: Aktiivinen osallistuminen opetukseen, harjoitustöitä ja lopputehtävä.
HUOMAUTUKSIA: Opintojakso kuuluu opintokokonaisuuteen "Yksilö, yhteiskunta ja tekniikka", joka toteutetaan yhteistyössä Tampereen yliopiston kanssa. Se on tarkoitettu vain niille opiskelijoille, jotka opiskelevat tätä kokonaisuutta.

8108004 Työ- ja organisaatiopsykologia, 2ov

Professori MATTI SYVÄNEN
Luentoja, harjoituksia, ryhmätöitä.
TAVOITTEET JA SISÄLTÖ: Kurssi perehdyttää ihmisen mahdollisuuksiin ja rajoituksiin sopeutua työn ja organisaation muutokseen tietointensiivisessä yhteiskunnassa. Tavoitteena on oppia tunnistamaan psyykkisen toimintakyvyn uhkia ja toimintakykyä ylläpitäviä keinoja työelämässä. Tavoitteena on myös oppia yhteistyön tekemistä tiimeissä eri aloja edustavien henkilöiden kanssa. Sosiaalisten taitojen kehittäminen on yksi osa-alue tässä.
TUTKINTOVAATIMUKSET: Hyväksyttävästi suoritetut harjoitukset. Luentoihin ja jaettavaan kirjallisuuteen perustuva tentti.
KIRJALLISUUS: Kirjallisuusluettelo jaetaan erikseen opetuksen yhteydessä.
HUOMAUTUKSIA: Opintojakso kuuluu opintokokonaisuuteen "Yksilö, yhteiskunta ja tekniikka", joka toteutetaan yhteistyössä Tampereen yliopiston kanssa. Se on tarkoitettu vain niille opiskelijoille, jotka opiskelevat tätä kokonaisuutta.

8108005 Käytettävyys, 2ov

Koulutuspäällikkö MANU SETÄLÄ
Luentoja 28h. Harjoituksia 14h.
TAVOITTEET JA SISÄLTÖ:
TUTKINTOVAATIMUKSET:
HUOMAUTUKSIA: Opintojakso kuuluu opintokokonaisuuteen "Yksilö, yhteiskunta ja tekniikka", joka toteutetaan yhteistyössä Tampereen yliopiston kanssa. Se on tarkoitettu vain niille opiskelijoille, jotka opiskelevat tätä kokonaisuutta.

8108006 Tietotekniikan sovelluksen suunnittelu, 2 ov

TAVOITTEET JA SISÄLTÖ: Käytettävyyden perustietojen ja arvioinnin oppiminen.
Käyttäjäkeskeisen suunnittelun perusteet. Käyttöliittymien ja käytettävyyden perustermistön tunteminen. Ihmisen ominai-suuksista johdetut suunnitteluperiaatteet. Käyttöliittymätyypit. Näytön ja tulostuksen suunnittelu ja arviointi. Käyttöliittymien arviointimenetelmiä.
TUTKINTOVAATIMUKSET: Aktiivinen osallistuminen opetuk-seen, harjoitustyö ja kuulustelu.
HUOMAUTUKSIA: Opintojakso kuuluu opintokokonaisuuteen "Yksilö, yhteiskunta ja tekniikka", joka toteutetaan yhteistyössä Tampereen yliopiston kanssa. Se on tarkoitettu vain niille opiskelijoille, jotka opiskelevat tätä kokonaisuutta.

8108007 Orientoiva aloitusseminaari, 1 ov

Seminaaritunteja 20 h
TAVOITTEET JA SISÄLTÖ: Nykyisten ja lähivuosien teknolo-gioiden mahdollisuudet ja yhteiskunnalliset vaikutukset. Mitkä ovat teknologisen kehityksen näkymät lähimmän 10 vuoden aikana? Miten tekniikka muuttaa ihmisten arkea, työntekoa ja vapaa-aikaa? Tulevaisuuden käyttöliittymät ja ­liittyjät? Semi-naarin tavoitteena on aktivoida yllä mainittujen kysymysten pohdintaa opintokokonaisuuteen liittyvien aihealueiden kautta. Seminaarissa opiskelijat / opiskelijaparit valitsevat ja esittelevät aiheen tai aihepiirin, jota tulevat opintokokonaisuuden aikana kehittämään ja valmistelemaan loppuseminaaria varten. Seminaarityö voi suuntautua myös käytännön työelämään.
TUTKINTOVAATIMUKSET: Aktiivinen osallistuminen seminaa-riin ja oma (parin) esitys.
KIRJALLISUUS: Ilmoitetaan seminaarin alussa.
HUOMAUTUKSIA: Opintojakso kuuluu opintokokonaisuuteen "Yksilö, yhteiskunta ja tekniikka", joka toteutetaan yhteistyössä Tampereen yliopiston kanssa. Se on tarkoitettu vain niille opiskelijoille, jotka opiskelevat tätä kokonaisuutta.

8108008 Tekniikan kehityksen kulttuuriset
ja sosiaaliset vaikutukset, 2 ov

Seminaaritunteja 20 h
TAVOITTEET JA SISÄLTÖ: Esitellään henkilökohtaisesti / pareittain aloitusseminaarissa 8108007 valituista aiheista valmistellut esitykset ja keskustellaan esille nousevista näkökohdista.
TUTKINTOVAATIMUKSET: Aktiivinen osallistuminen seminaa-rin eri vaiheisiin, oma esitys sekä seminaarityönä toteutettu kirjallinen tutkielma.
HUOMAUTUKSIA: Opintojakso kuuluu opintokokonaisuuteen "Yksilö, yhteiskunta ja tekniikka", joka toteutetaan yhteistyössä Tampereen yliopiston kanssa. Se on tarkoitettu vain niille opiskelijoille, jotka opiskelevat tätä kokonaisuutta.

Takaisin alkuunTakaisin pääsivulle