Kurssikuvaukset : kandidaattitaso (A-C) Tietotekniikan laitos T313

Samankaltaiset tiedostot
Page 1 of 9. Ryhmä/group: L = luento, lecture H = harjoitus, exercises A, ATK = atk-harjoitukset, computer exercises

Kurssin koodi ja nimi Ryhmä Päivä Aika Sali Viikot Henkilöt Course code and name Group Day Time Lecture Weeks Course staff

Constructive Alignment in Specialisation Studies in Industrial Pharmacy in Finland

Information on Finnish Language Courses Spring Semester 2017 Jenni Laine

7. Product-line architectures

Information on Finnish Language Courses Spring Semester 2018 Päivi Paukku & Jenni Laine Centre for Language and Communication Studies

Windows Phone. Module Descriptions. Opiframe Oy puh Espoo

Additions, deletions and changes to courses for the academic year Mitä vanhoja kursseja uusi korvaa / kommentit

Information on Finnish Courses Autumn Semester 2017 Jenni Laine & Päivi Paukku Centre for Language and Communication Studies

Lyhyesti uusista DI-ohjelmista Isohenkilökoulutus to Opintoasianpäällikkö Mari Knuuttila

Kysymys 5 Compared to the workload, the number of credits awarded was (1 credits equals 27 working hours): (4)

Kurssin koodi ja nimi Ryhmä Päivä Aika Sali Viikot Henkilöt Course code and name Group Day Time Lecture room Weeks Course staff

Tietotekniikan opetus lukuvuonna Computer science course schedule in academic year Updated

Visualisointi informaatioverkostojen Opintoneuvoja Pekka Siika-aho (päivitys mm. Janne Käen visualisoinnin pohjalta)

7.4 Variability management

Opetussuunnitelma : kurssien lisäykset, poistot ja muutokset (LPM)

Efficiency change over time

Computing Curricula raportin vertailu kolmeen suomalaiseen koulutusohjelmaan

General studies: Art and theory studies and language studies

Ohjelmien kehittämisstudiot varmistavat laadukkaat ja linjakkaat maisteriohjelmat Maire Syrjäkari ja Riikka Rissanen

Kurssijärjestelyt. ME-C2300 Verkkojulkaisemisen perusteet (5 op) Mari Hirvi Informaatioverkostot / Mediatekniikan laitos

Master's Programme in Life Science Technologies (LifeTech) Prof. Juho Rousu Director of the Life Science Technologies programme 3.1.

Kurssijärjestelyt. CS-1180 Verkkojulkaisemisen perusteet (5 op) Hanna Hämäläinen Informaatioverkostot / Mediatekniikan laitos

ECVETin soveltuvuus suomalaisiin tutkinnon perusteisiin. Case:Yrittäjyyskurssi matkailualan opiskelijoille englantilaisen opettajan toteuttamana

OP1. PreDP StudyPlan

ELEC-C5230 Digitaalisen signaalinkäsittelyn perusteet

Recommended background: Structural Engineering I and II

Tuotantotalouden aineopinnot. Ville Tuomi

Tietotekniikan kandidaatin tutkinto

Tietojenkäsittelytieteiden koulutusohjelma. Tietojenkäsittelytieteiden laitos Department of Information Processing Science

TU-C2030 Operations Management Project. Introduction lecture November 2nd, 2016 Lotta Lundell, Rinna Toikka, Timo Seppälä

Network to Get Work. Tehtäviä opiskelijoille Assignments for students.

KOMPETENSSIT. Koulutus Opiskelija Tuuttori. Business Information Technologies. NQF, Taso 6 - edellyttävä osaaminen

Tietotekniikan kandidaatin tutkinto

Konetekniikan koulutusohjelman opintojaksomuutokset

TIEKE Verkottaja Service Tools for electronic data interchange utilizers. Heikki Laaksamo

OPETUSSUUNNITELMALOMAKE v0.90

Korvaava/korvattava kurssi/ muutos / Substitute for course/a course to be substituted for/change

Other approaches to restrict multipliers

Welcome to study! Master s Programme in Chemical, Biochemical and Materials Engineering. Chemistry major Kari Laasonen and Heli Järvelä

Matematiikka ja tilastotiede. Orientoivat opinnot /

Network Management Systems, 3 ECTS, daytime course

Pe :00-16:00 CS-A1111 Ohjelmoinnin peruskurssi Y1 R037/TU2 2005, T0 48 Vast.op Kerttu Pollari-Malmi

Ma :00-16:00 CS-A1111 Ohjelmoinnin peruskurssi Y1 R030/T1 C202 T Vast.op Kerttu Pollari-Malmi

Suomeksi På svenska In English... 21

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Osaavat ohjelmoijat: Ohjelmistotuotanto alkeista lähtien, 40 opintopistettä sekä 15 op harjoitustyö yrityksiin

Siirtymä maisteriohjelmiin tekniikan korkeakoulujen välillä Transfer to MSc programmes between engineering schools

OHJE KURSSIKUVAUKSEN TEKEMISEEN ( )

Tärkeää huomioitavaa:

Information on preparing Presentation

Tietokonearkkitehtuuri 2 TKT-3201 (5 op)

Skene. Games Refueled. Muokkaa perustyyl. for Health, Kuopio

Läsnäolotiedot Syksy 2017 Kevät 2018 OPINTOJAKSO OP ARV PVM OPETTAJA

Tilanne sekä MS-A0003/4* Matriisilaskenta 5 op

Master s Programme in Building Technology Rakennustekniikka Byggteknik

Vertaispalaute. Vertaispalaute, /9

Bachelor level exams by date in Otaniemi

Hakkerin henkilökuva. [Avaa linkki valmiiksi ja poista presentaatiosta]

ISEB/ISTQB FOUNDATION CERTIFICATE IN SOFTWARE TESTING III

Bachelor level exams by subject in Otaniemi

Tietojärjestelmätieteen ohjelmat

(Core) & (Test Manager). Sertifikaattikoe klo

16. Allocation Models

Tutkinnonuudistus ja uudet DI-ohjelmat Master s Programme in Information Networks

LAMK tekniikan ala Mekatroniikka (Konetekniikka) Teijo Lahtinen, Senior Lecturer, Mechatronics

Basic Flute Technique

Arkkitehtuuritietoisku. eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä

Opiskelijat valtaan! TOPIC MASTER menetelmä lukion englannin opetuksessa. Tuija Kae, englannin kielen lehtori Sotungin lukio ja etälukio

A new model of regional development work in habilitation of children - Good habilitation in functional networks

Tietorakenteet ja algoritmit

Kurssin aloitus. AS XML-kuvauskielten perusteet Janne Kalliola

DIPLOMITYÖ ARI KORHONEN

Opetusperiodi:I, suunnattu hakukohteille:

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

RUOTSI LC-5411 H02. PHYS-A3121 Termodynamiikka CS-A1111 PHYS-A3121 H02 H12 MS-A0105 H02. CS-A1111 *** Ohjelmoinnin peruskurssi. Luento H13 CS-A1111

ELEC-A5140 Matematiikkaohjelmistot (2 op) Vastuuopettaja: Antti Ojapelto; Risto Wichman Opetusperiodi: V (kl 2014)

Capacity Utilization

Sähkötekniikan tutkintoohjelma. DI-tutkinto ja uranäkymät

Tutkinnonuudistus ja uudet DI-ohjelmat / Teknillinen fysiikka ja matematiikka. Infotilaisuus

Visualisointi informaatioverkostojen Opintoneuvoja Teemu Meronen (päivitys Janne Käen visualisoinnin pohjalta)

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Kurssin käytännön järjestelyt. Tuotantotalous 1 Tuomo Tanila

OHJE KURSSIKUVAUKSEN TEKEMISEEN

Opetussuunnitelma : kurssien LPM-listat

BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET.

Bioinformatics in Laboratory of Computer and Information Science

Results on the new polydrug use questions in the Finnish TDI data

NAO- ja ENO-osaamisohjelmien loppuunsaattaminen ajatuksia ja visioita

Tärkeää huomioitavaa:

Enterprise Architecture TJTSE Yrityksen kokonaisarkkitehtuuri

Opetusperiodi:I, suunnattu hakukohteille: Teknillinen fysiikka ja matematiikka

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

toukokuu 2011: Lukion kokeiden kehittämistyöryhmien suunnittelukokous

Tehostettu kisällioppiminen tietojenkäsittelytieteen ja matematiikan opetuksessa yliopistossa Thomas Vikberg

Konetekniikan kandidaatin tutkinto

SOA SIG SOA Tuotetoimittajan näkökulma

ProAgria. Opportunities For Success

Työelämäkysymykset osaksi tohtoriopintojen opetussuunnitelmia kehitteillä valtakunnallinen digitaalinen koulutuspaketti

Teacher's Professional Role in the Finnish Education System Katriina Maaranen Ph.D. Faculty of Educational Sciences University of Helsinki, Finland

Transkriptio:

Kurssikuvaukset 2017-2018: kandidaattitaso (A-C) Tietotekniikan laitos T313 Suomeksi... 1 På svenska... 13 In English... 25 Suomeksi CS-A1110 Ohjelmointi 1 (5 op) Vastuuopettaja: Riku Linna; Juha Sorva; Otto Seppälä Kurssin asema: Perusopintojen pakollinen kurssi; informaatioverkostot, matematiikka ja systeemitieteet, teknillinen fysiikka, tietotekniikka ja tuotantotalous. Kurssin taso: Kandidaattitaso Opetusperiodi: I-II Työmäärä toteutustavoittain: Luennot/palautteenkäsittelytilaisuudet: 6 h. Harjoitustehtävien tekeminen ja materiaaliin perehtyminen osin itsenäisesti ja osin lähiopetuksessa: 130 h. Osaamistavoitteet: Kurssin suoritettuasi ohjelmointi on sinusta hyödyllistä ja hauskaa, ja olet motivoitunut oppimaan lisää. Tunnet ohjelmoinnin ja olio-ohjelmointiparadigman keskeisimmät käsitteet ja osaat keskustella niistä. Osaat soveltaa tuntemiasi käsitteitä lukiessasi ja kirjoittaessasi tietokoneohjelmia ainakin tapauksissa, joissa ohjelmointitehtävä on tarkkaan rajattu. Ymmärrät ainakin auttavasti, miten tietokone toimii suorittaessaan ohjelman. Tunnet ohjelmakoodin tuottamiseen liittyviä työvaiheita ja osaat käyttää ohjelmoijan työkaluja näiden vaiheiden aikana. Osaat lukea toisten kirjoittamia ohjelmia ja ohjelmadokumentaatiota sekä hyödyntää valmiita osaratkaisuja omien ohjelmiesi osina. Ymmärrät, että ohjelmia ei kirjoiteta vain tietokoneita varten vaan ihmisten avuksi ja myös ihmisen luettaviksi. Osaat muotoilla kirjoittamasi koodin hyvällä ohjelmointityylillä. Sisältö: Keskeisin sisältö: Ohjelmointi, imperatiivinen ohjelmointi, olio-ohjelmointi; ohjelmien lukeminen; ohjelmien muokkaaminen ja kirjottaminen spesifikaation mukaisiksi; lauseet ja lausekkeet; muuttujat, tietotyypit, funktiot, parametrit, palautusarvot, oliot, luokat, metodit, taulukot ja puskurit, valinta- ja toistokäskyt; ohjelmointityyli; luokkakirjastot ja ohjelmien dokumentaatio; sovelluskehitin. Erittäin suositeltu sisältö: Ohjelmakoodin vaiheet (lähdekoodi, kääntäjä, välikieli, virtuaalikone); ohjelman suoritusmalli (esim. kutsupino, roskienkeruu); tekstitiedostojen käsittely; hakemistorakenteet; periytyminen ja piirreluokat; muuttumattomat vs. muuttuvatilaiset oliot; funktio-oliot, korkeamman asteen funktiot, nimettömät funktiot; ohjelmatoteutuksen laadun arvioinnin alkeita. Lisäksi tarjolla mm.: Graafisten käyttöliittymien alkeita; rekursio; oman ohjelman suunnittelun alkeita. Toteutus, työmuodot ja arvosteluperusteet: Opiskelijat käyvät läpi kurssimateriaalia, jossa käytännön harjoituksilla on merkittävä osuus, joko yksin tai parin kanssa. Tueksi tarjotaan runsaasti assistenttipäivystyksiä, joihin voi tulla työskentelemään ja kysymään neuvoa. Kurssin pakolliset osasuoritukset ovat harjoitustehtävät ja kurssipalautekyselyyn vastaaminen. Lisätietoja kurssin sivuilla. Oppimateriaali: Opettajan laatima materiaali verkossa. Korvaavuudet: Tällä kurssilla SCIn opiskelijat voi korvata jonkin seuraavista vanhoista kursseista: CSE- A1110 Ohjelmointi 1, T-106.1200 Ohjelmoinnin perusteet T (Java); T-106.1203 Ohjelmoinnin perusteet L (Java); T-106.1207 Grunderna i programmering (Java); T-106.1210 Ohjelmoinnin peruskurssi, osa 1; T- 106.1212 Grundkurs i programmering. Muille suositellaan kurssia CS-A1111 Ohjelmoinnin peruskurssi Y1. Esitiedot: Tietokoneen ja yleisimpien sovellusten (esim. sähköposti) peruskäyttötaito. Ei esitietovaatimuksia ohjelmoinnista. Osa annetusta materiaalista on englanninkielistä. 1

Arvosteluasteikko: 0-5 Opetuskieli: Suomi, harjoitusryhmiä ruotsiksi. Lisätietoja: Kurssi on tarkoitettu ensisijaisesti SCI-koulun opiskelijoille. Muille opiskelijoille suositellaan kurssia CSE-A1111 Ohjelmoinnin peruskurssi Y1, mutta myös tälle haastavammalle kurssille saa osallistua. Kurssi on työläs mutta palkitseva. Tervetuloa kurssille! CS-A1111 Ohjelmoinnin peruskurssi Y1 (5 op) Vastuuopettaja: Kerttu Pollari-Malmi Kurssin taso: Kandidaattitaso Opetusperiodi: I-II Työmäärä toteutustavoittain: Luennot 20 h, itsenäinen opiskelu ja harjoitustehtävien tekeminen 93 h, tenttiin valmistautuminen ja osallistuminen 20 h. Osaamistavoitteet: Kurssin suoritettuasi osaat kirjoittaa pieniä tietokoneohjelmia esimerkiksi insinööritehtävissä tarvittaviin laskentasovelluksiin ja pienten tietomäärien muokkaamiseen. Ymmärrät myös muiden kirjoittamia vastaavia ohjelmia. Sisältö: Lausekielinen ohjelmointi Python-kielen avulla, rakenteinen ohjelmointi, ohjelmistosuunnittelun alkeet, perustietorakenteet. Hyvä ohjelmointityyli. Toteutus, työmuodot ja arvosteluperusteet: Luennot, pakolliset harjoitustehtävät ja tentti. Oppimateriaali: Opetusmoniste. Korvaavuudet: Kurssi korvaa kurssit CSE-A1111, T-106.1206 ja T-106.1208. Esitiedot: Tietokoneen ja yleisimpien sovellusten (esim. sähköposti) peruskäyttötaito. Ei esitietovaatimuksia ohjelmoinnista. Arvosteluasteikko: 0-5 Opetuskieli: Suomi CS-A1120 Ohjelmointi 2 (5 op) Vastuuopettaja: Petteri Kaski Kurssin asema: Perusopintojen pakollinen kurssi; informaatioverkostot, matematiikka ja systeemitieteet, teknillinen fysiikka ja tietotekniikka. Kurssin taso: Kandidaattitaso Opetusperiodi: IV-V Työmäärä toteutustavoittain: Luennot: 24 (4) [3*2 viikkoa, 2*2h luentotuntia/viikko] Pienryhmäopetus: 36 (4) [3*3 viikkoa, 2*2h Maarintalossa työskentelyä/viikko] Itsenäinen työ: 72 Tentti: 3. YHTEENSÄ: 135 [5 opintopistettä] Osaamistavoitteet: Kurssin suoritettuaan opiskelija (i) ymmärtää periaatteellisella tasolla ohjelmoitavan tietokoneen keskeisen toiminnallisen rakenteen, sekä sen miten rakenne toimii ohjelmaa suoritettaessa, (ii) ymmärtää tietokoneen fysikaaliset rajoitteet ja mahdollisuudet, sekä tuntee ja osaa hyödyntää keskeisiä laskentaresursseja (aika, tila, rinnakkaisuus, jne), (iii) osaa määrittää/mitata ohjelman suorituskyvyn käytännössä, sekä yksinkertaisissa tapauksissa vain ohjelmakoodin rakenteen perusteella, (iv) ymmärtää abstraktin määritelmän/rajapinnan ja toteutuksen käsitteet, sekä tehokkuudeltaan vaihtelevien erilaisten toteutusten mahdollisuuden, (v) ymmärtää rekursion käsitteen sekä osaa laatia rekursiota hyödyntäviä ohjelmia ja tietorakenteita, sekä (vi) osaa algoritmisuunnittelun ja analyysin alkeet, sekä tuntee eräitä kombinatorisia perustehtäviä (haku, lajittelu, jne) ja näiden toteutustekniikoita. Sisältö: Johdatus tietokoneen toimintaan porttitasolta korkean tason ohjelmointikieliin. Ohjelmoinnin abstraktiot ja suorituskykyanalyysi. Funktionaalinen ohjelmointi, mm. rekursiiviset määritelmät ja rekursio. Johdatus algoritmiseen ongelmanratkaisuun, tietojenkäsittelytieteen ajattelutapa. Toteutus, työmuodot ja arvosteluperusteet: Ohjelmointitehtävät ja tentti Oppimateriaali: Luentomuistiinpanot, artikkeleita ja ohjelmointitehtävät Korvaavuudet: ICS-A1120 Ohjelmointi 2, T-106.1150 Tietokone ja käyttöjärjestelmä Esitiedot: CS-A1110 Ohjelmointi 1 / CSE-A1110 Ohjelmointi 1 Arvosteluasteikko: 0-5 2

Opetuskieli: Suomi. CS-A1121 Ohjelmoinnin peruskurssi Y2 (5 op) Vastuuopettaja: Vesa Hirvisalo Kurssin taso: Kandidaattitaso Opetusperiodi: III - V Työmäärä toteutustavoittain: Luennot 12 t, harjoitustehtävät ja itseopiskeltava materiaali 42 t, projekti 80 t Osaamistavoitteet: Tämän kurssin jälkeen osaat suunnitella ja toteuttaa lukuisista luokista koostuvan itsenäisen olio-ohjelman. Ymmärrät ja osaat hyödyntää olio-ohjelmoinnin kehittyneempiä ominaisuuksia kuten perintää monipuolisesti. Ymmärrät suunnittelussa ja toteutuksessa tekemiesi valintojen vaikutuksen sekä ohjelman toimintaan että ohjelmointiprosessiin, erityisesti ohjelman jatkokehitykseen. Osaat perustella ja dokumentoida ohjelmointiprosessissa tekemäsi keskeiset valintasi. Osaat hyödyntää yksikkötestausta ohjelmoinnissa ja käyttää integroitua kehitysympäristöä. Tunnet rinnakkaisohjelmoinnin perusideat ja osaat soveltaa näitä yksinkertaisissa tapauksissa. Sisältö: Oliopohjaisen ohjelmistosuunnittelun perusteet, tekniikat ja menetelmät; ohjelmoinnin työkalut. Edistyneempiä ohjelmoinnin abstraktioita. Projekti sisältää ohjelmointityön lisäksi työn suunnittelun ja dokumentoinnin. Toteutus, työmuodot ja arvosteluperusteet: Kotitehtävät ja harjoitustyö Oppimateriaali: Ilmoitetaan kurssin kotisivulla. Korvaavuudet: Korvaa kurssit CSE-A1121, T-106.1243 ja T-106.1215. Esitiedot: CS(E)-A1111 Ohjelmoinnin peruskurssi Y1 Arvosteluasteikko: 0-5 Opetuskieli: Suomi. Lisätietoja: Ensisijaisesti TIK-sivuaineopiskelijoille tarkoitettu kurssi, jolla ohjelmointikokemus saadaan sivuaineopetuksessa vaaditulle tasolle. CS-A1130 Tietotekniikka sovelluksissa (5 op) Vastuuopettaja: Ari Korhonen Kurssin taso: Kandidaattitaso Opetusperiodi: III-V Työmäärä toteutustavoittain: Essee 4 tuntia. Luennot 10 tuntia, valmistautuminen luennoille 10 tuntia. Tentti 3 tuntia, valmistautuminen tenttiin 40 tuntia. Harjoitukset 26 tuntia, valmistautuminen harjoituksiin 42 tuntia. Osaamistavoitteet: Kurssin käytyään opiskelija osaa analysoida ja visualisoida tietoaineistoa erilaisilla ohjelmistoilla. Opiskelija tuntee tietoteknisen sovelluksen hankintaprosessin. Opiskelija ymmärtää algoritmien kompleksisuutta ja omaa näkemystä laskennan rajoitteista. Sisältö: Kurssilla tutustutaan käytännön harjoitustöiden kautta tutkimusdatan käsittelyyn ja visualisointiin erilaisilla ohjelmistoilla. Tämän lisäksi kurssilla käydään läpi IT-palveluiden hankintaprosessia ja hankinnan perusteita. Lopuksi tarkastellaan algoritmista ajattelua ja suurten datamäärien käsittelyn laskennallisia rajoitteita. Toteutus, työmuodot ja arvosteluperusteet: Tentti, luennot, essee ja pakollisia harjoituksia. Oppimateriaali: Jaetaan MyCoursesissa. Korvaavuudet: Korvaa kurssit CSE-A1130 Tietotekniikka sovelluksissa, T-106.1041/T-106.1043 Tietotekniikan peruskurssi ja T-106.1061 Tietotekniikan työkurssi. Esitiedot: CS-A1111 Ohjelmoinnin peruskurssi Y1 / CSE-A1111 Ohjelmoinnin peruskurssi Y1 Arvosteluasteikko: 0-5 Opetuskieli: Suomi CS-A1140 Tietorakenteet ja algoritmit (5 op) Vastuuopettaja: Tommi Junttila Kurssin asema: Perusopintojen pakollinen kurssi; tietotekniikka Kurssin taso: Kandidaattitaso Opetusperiodi: I-II Työmäärä toteutustavoittain: Luennot 20h, itsenäinen työskentely ja pienryhmäopetus 112h ja tentti 3h. 3

Osaamistavoitteet: Kurssin suoritettuasi osaat määritellä, vertailla ja toteuttaa perustietorakenteita ja algoritmeja sekä nimetä ja valita niitä esim. hakurakenteiksi, järjestämisongelmaan ja verkon läpikäyntiin. Lisäksi kykenet tunnistamaan ja esittelemään tarkemmin annetun tietorakenteen tai algoritmin sekä osaat antaa esimerkkejä niiden toiminnasta. Pystyt myös keskustelemaan muista keskeisistä tietorakenteista ja algoritmeista käyttäen alan tyypillistä terminologiaa. Sisältö: Mm. lineaariset tietorakenteet, puurakenteet ja verkot. Haku- ja järjestämismenetelmiä. Algoritmianalyysiä. Toteutus, työmuodot ja arvosteluperusteet: Kotitehtäviä ja tentti. Oppimateriaali: Ilmoitetaan kurssin MyCourses-sivulla. Korvaavuudet: Korvaa kurssit CSE-A1140, T-106.1220, T-106.1223 ja T-106.1227. Esitiedot: CS-A1120 Ohjelmointi 2 / ICS-A1120 Ohjelmointi 2 Arvosteluasteikko: 0-5 Opetuskieli: Suomi. CS-A1141 Tietorakenteet ja algoritmit Y (5 op) Vastuuopettaja: Ari Korhonen Kurssin taso: Kandidaattitaso Opetusperiodi: I-II Työmäärä toteutustavoittain: Luento-opetus 14 h, itsenäinen työskentely ja pienryhmäopetus 76 h, ryhmätyöskentely 40 h ja tentti 3 h. Osaamistavoitteet: Kurssin suoritettuasi osaat määritellä, vertailla ja toteuttaa perustietorakenteita ja algoritmeja sekä nimetä ja valita niitä esim. hakurakenteiksi, järjestämisongelmaan ja verkon läpikäyntiin. Lisäksi kykenet tunnistamaan ja esittelemään tarkemmin annetun tietorakenteen tai algoritmin sekä osaat antaa esimerkkejä niiden toiminnasta. Pystyt myös keskustelemaan muista keskeisistä tietorakenteista ja algoritmeista käyttäen alan tyypillistä terminologiaa. Sisältö: Lineaariset tietorakenteet, puurakenteet ja verkot. Haku- ja järjestämismenetelmiä. Algoritmianalyysin perusteet. Toteutus, työmuodot ja arvosteluperusteet: Kotitehtävät, harjoitustyö ja tentti. Oppimateriaali: Ilmoitetaan kurssin MyCourses-sivulla. Korvaavuudet: Korvaa kurssit CSE-A1141, T-106.1223 ja T-106.1227. Esitiedot: CS-A1111 Ohjelmoinnin peruskurssi Y1 / CSE-A1111 Ohjelmoinnin peruskurssi Y1 Arvosteluasteikko: 0-5 Opetuskieli: Suomi. CS-A1150 Tietokannat (5 op) Vastuuopettaja: Kerttu Pollari-Malmi Kurssin asema: Tietotekniikan pääaineen pakollinen kurssi. Informaatioverkostojen pääaineen vaihtoehtoinen kurssi. Perusopintojen pakollinen kurssi; tuotantotalous. Kurssin taso: Kandidaattitaso Opetusperiodi: III-V Työmäärä toteutustavoittain: Luento-opetus 26 h, pienryhmäopetus 12 h, harjoitustyö 45 h, itsenäinen opiskelu 47 h. Osaamistavoitteet: Kurssin suoritettuasi ymmärrät käsitemallinnuksen merkityksen tiedonhallinnassa ja tunnet yleisimmin käytetyt tietokantojen mallinnus- ja kyselykielet. Osaat suunnitella yksinkertaisia tietokantoja ja tehdä niihin kyselyitä. Sisältö: Kurssilla käsitellään tiedonhallinnan peruskäsitteitä ja -menetelmiä. Relaatioalgebra, relaatiotietokannat, SQL-kielen käyttö tietokannan määrittelyssä ja käsittelyssä, ER-suunnittelumenetelmä, taulujen normalisointi, XML:n perusteet. Toteutus, työmuodot ja arvosteluperusteet: Tentti ja harjoitustyö. Mahdollisuus saada lisäpisteitä harjoitustehtävistä. Oppimateriaali: Ullman, Widom: A First Course in Database Systems, Third Edition. Pearson. Korvaavuudet: Korvaa kurssit CSE-A1200 Tietokannat ja T-76.1143 Tiedonhallintajärjestelmät. Esitiedot: CS-A1110 / CSE-A1110 Ohjelmointi 1 tai CS-A1111 / CSE-A1111 Ohjelmoinnin peruskurssi Y1. Arvosteluasteikko: 0-5 4

Opetuskieli: Suomi Lisätietoja: Kurssi on mahdollista suorittaa englanniksi. Luennot ovat suomeksi, mutta niiden sijaan voi itseopiskella vastaavat asiat lukemalla englanninkielistä oppikirjaa. CS-C1180 Verkkojulkaisemisen perusteet (5 op) Vastuuopettaja: Miia Jaatinen Kurssin asema: Informaatioverkostojen pääaineen pakollinen kurssi. Kurssin taso: Kandidaattitasoinen Opetusperiodi: III - V Työmäärä toteutustavoittain: Luennot 28 h (1 x 4 h/viikko, 7 kertaa), ohjatut harjoitukset 28 h (1 x 4 h/viikko, 7 kertaa), itsenäistä työskentelyä 79 h (= yhteensä 135 h). Osaamistavoitteet: Kurssin jälkeen osaat hahmottaa, miten mediasisältöjä (esim. teksti, kuva, ääni ja video) voidaan julkaista ja tuottaa verkkoon web-teknologioiden ja digitaalisen median työkalujen avulla. Osaat suunnitella ja rakentaa yksinkertaisia sisällöllisiä kokonaisuuksia ja ymmärrät vuorovaikutuksen merkityksen osana kokonaisuutta. Sisältö: Kurssi keskittyy asiakaspään web-teknologioiden (esim. HTML, CSS ja JavaScript) sekä verkkojulkaisemista tukevien digitaalisen median työkalujen (esim. kuvankäsittely- ja videoeditointiohjelmistot) hallintaan. Kurssin aihealueisiin perehdytään sekä teoriassa (luennot) että käytännössä (luennot, harjoitustyöt ja projektityö). Kurssilla sivutaan teknisten aiheiden lisäksi vuorovaikutus- ja pelisuunnittelua. Toteutus, työmuodot ja arvosteluperusteet: Kurssilla annettava opetus koostuu luennoista ja ohjatuista harjoituksista. Kurssi arvostellaan harjoitustöiden ja lopputyönä toteutettavan vuorovaikutteisen multimediaesityksen (peli) perusteella. Kiitettävä suoritus edellyttää itsenäistä työskentelyä luentojen ja ohjattujen harjoitusten ulkopuolella. Harjoitustöiden ja projektityön pisteytyksessä huomioidaan idea sekä sen tekninen ja visuaalinen toteutus. Oppimateriaali: Luentokalvot ja harjoitustyöohjeet sekä kurssin www-sivuilla listattu materiaali (katso Muu materiaali). Korvaavuudet: Korvaa kurssit ME-C2300 Verkkojulkaisemisen perusteet sekä AS-75.2300 Informaatioverkostot: studio 2 (2 op) ja T-111.1100 Digitaalisen median työvälineet (3 op) yhdessä. Esitiedot: CS-C2110/ME-C2110 Ohjelmointistudio 1: Mediaohjelmointi / CS(E)-A1111/1121 Ohjelmoinnin peruskurssi Y1/2 (Python) tai vastaavat tiedot ohjelmoinnista. Arvosteluasteikko: 0-5 Ilmoittautuminen: WebOodi. Kurssille otetaan enintään 50 opiskelijaa. Kurssille valitaan opiskelijat seuraavassa järjestyksessä: 1) informaatioverkostojen pääaineopiskelijat, 2) informaatioverkostojen sivuaineopiskelijat, 3) Aallon muut opiskelijat. Opetuskieli: Suomi Lisätietoja: Opiskelijan on vahvistettava osallistumisensa ensimmäisellä luennolla. Ohjeet DIMEpalvelimen käyttöön: http://dime.tml.hut.fi. CS-C2000 Ihminen havaitsijana (5 op) Vastuuopettaja: Tapio Lokki Kurssin asema: Informaatioverkostojen pääaineen pakollinen kurssi. Kurssin taso: Kandidaattitaso Opetusperiodi: III-IV Osaamistavoitteet: Opintojakson jälkeen opiskelija ymmärtää ihmisen havaintomekanismien toimintaperiaatteet ja tämän tiedon sovellusmahdollisuudet tekniikan alalla. Sisältö: Opintojakson tarkoituksena on tutustua ihmisen aistijärjestelmien toimintaan ja havaintokokemuksen muodostumiseen. Opintojakso kattaa aistijärjestelmien toiminnan perusteet neuraalisella tasolla ja havainnon muodostumiseen liittyvät kognitiiviset prosessit. Luennoilla käsiteltäviä teemoja ovat muun muassa: värinäkö, kontrastiherkkyys, kuvioiden hahmottaminen, visuaalinen tarkkaavaisuus, kolmiulotteinen stereonäkö, liikkeen havaitseminen, kuuloaisti ja tuntoaisti. Toteutus, työmuodot ja arvosteluperusteet: Luennot, tentti. Oppimateriaali: Luentokalvot sekä muu materiaali määritellään kurssin alussa. Korvaavuudet: Korvaa kurssit ME-C2600 / T-75.4900 Havaitseminen. Arvosteluasteikko: 0-5 5

Ilmoittautuminen: WebOodi-ilmoittautuminen. Katso ilmoittautumisaika WebOodista. Opetuskieli: Suomi CS-C2110 Ohjelmointistudio 1: mediaohjelmointi (5 op) Vastuuopettaja: Otto Seppälä Kurssin asema: Tietotekniikan ja informaatioverkostojen pääaineiden pakollinen kurssi. Kurssin taso: Kandidaattitaso Opetusperiodi: I-II Työmäärä toteutustavoittain: 5 op (133 h) lähiopetus OLO-tapaamisissa ja tapaamisiin valmistautuminen sekä demonstraatiot 36 h, kirjalliset- ja ohjelmointiharjoitustehtävät 50h, projektityö ryhmässä 47h, kurssipalaute. Ohjelmointitehtävien avuksi tarjolla harjoitusryhmiä. Osaamistavoitteet: Kurssin jälkeen opiskelija ymmärtää digitaalisen median peruskäsitteet ja niihin liittyvät ohjelmoinnin periaatteet. Kurssin jälkeen opiskelija osaa kirjoittaa tietokoneohjelmia, joissa käsitellään eri tavoilla digitaalista mediaa. Erityisesti keskitytään luonnollisten signaalien, kuten kuvan ja äänen, esittämiseen, pakkaukseen ja suodatukseen. Opiskelija osaa käyttää ongelmalähtöisen opetuksen menetelmää ja toimia ryhmässä erilaisissa rooleissa. Sisältö: Opiskelijat ratkaisevat annettuja ongelmia olio-ohjelmoinnin keinoin. Kurssin pääpaino on tiedon digitaalisessa esittämisessä ja manipuloinnissa. Harjoituksissa tutustutaan erityisesti kuvan ja äänen ohjelmalliseen käsittelyyn. Toteutus, työmuodot ja arvosteluperusteet: OLO-tapaamiset, kirjalliset tehtävät, ohjelmointiharjoitukset ja projektityö. Oppimateriaali: Suositeltu kirjallisuus esitellään www-sivuilla kurssin alkaessa. Korvaavuudet: Korvaa kurssit ME-C2110 Ohjelmointistudio 1: Mediaohjelmointi tai T-106.2001 Informaatioverkostot: Studio 1 (4 op). Arvosteluasteikko: 0-5 Opetuskieli: Suomi Lisätietoja: Kurssi suoritetaan samaan aikaan kurssin CS-A1110 Ohjelmointi 1 kanssa. Vain Teknistieteellisen kandidaattiohjelman tietotekniikan ja informaatioverkostojen pääaineiden opiskelijoille. Opiskelijat, jotka eivät ole läsnä keväällä, voivat suorittaa kurssin kokonaan syyslukukaudella. CS-C2120 Ohjelmointistudio 2: projekti (5 op) Vastuuopettaja: Juha Sorva; Otto Seppälä Kurssin asema: Tietotekniikan pääaineen pakollinen kurssi. Kurssin taso: Kandidaattitaso Opetusperiodi: III-V Työmäärä toteutustavoittain: Luennot 12 t, harjoitustehtävät ja itseopiskeltava materiaali 42 t, projekti 80 t. Osaamistavoitteet: Osaat suunnitella ja toteuttaa itsenäisesti lukuisista luokista koostuvan itsenäisen olio-ohjelman, sekä dokumentoida ja perustella suunnittelussa ja toteutuksessa tekemiäsi valintoja. Ymmärrät kuinka jotkin toteutusvalinnat voivat vaikuttaa sekä ohjelman toimintaan että ohjelmointiprosessiin, erityisesti ohjelman jatkokehitykseen. Ymmärrät ja osaat hyödyntää olioohjelmoinnin kehittyneempiä ominaisuuksia kuten perintää monipuolisesti. Osaat käyttää sovelluskehitintä ja yksikkötestausta apuna ohjelmoinnissa. Tunnet rinnakkaisohjelmoinnin perusidean ja osaat soveltaa ohjelmointikielten tarjoamia rinnakkaisuusominaisuuksia yksinkertaisessa tapauksessa. Sisältö: Ohjelmistosuunnittelun alkeet, ohjelmoinnin työkaluja, toimintatapoja ja metodiikkaa. Edistyneempiä ohjelmoinnin abstraktioita ja katsaus toiseen ohjelmointikieleen. Projekti sisältää ohjelmointityön lisäksi työn suunnittelun ja dokumentoinnin. Toteutus, työmuodot ja arvosteluperusteet: Kurssin pakollisia osasuorituksia ovat harjoitustehtävät sekä yksilöllinen ohjelmointiprojekti, jotka molemmat vaikuttavat kokonaisarvosanaan. Tarkempi kuvaus arvosteluperusteista ilmoitetaan kurssin kotisivulla. Oppimateriaali: Ilmoitetaan kurssin kotisivulla. Korvaavuudet: CSE-C2120 Ohjelmointistudio 2: Projekti Esitiedot: CS-A1110 / CSE-A1110 Ohjelmointi 1 Arvosteluasteikko: 0-5 Opetuskieli: Suomi 6

Lisätietoja: Kurssi on tarkoitettu vain TIK- ja INF-pääaineiden opiskelijoille. CS-C2130 Software Project 1 (5 cr) Responsible teacher: Jari Vanhanen; Casper Lassenius Status of the Course: Compulsory course of the Computer Science major. Level of the Course: Bachelor s level. Teaching period: I-II (Autumn 2017) Workload: Lectures 15h (period I only), project work 100h. Learning Outcomes: After the course, you can work as a software developer in a large team. You understand the structure and technical and non-technical challenges of software development projects, and you can apply Scrum framework in a software project. Furthermore you learn to apply the development tools and implementation technologies used in the chosen project. Content: The course consists of a software development project which will be done for a real client from industry or academia. The projects use the Scrum framework which is presented in the lectures before the project. The activities include project management, requirements specification, design, coding, quality assurance, and system delivery. Students from the CS-E4910 Software Project 3 course work as Scrum Masters in the project teams. Assessment Methods and Criteria: Project work Substitutes for Courses: Substitutes the course CSE-C2610 Software Project 1. Substitutes with CS-C2140 / CSE-C2620 Software Project 2 the course T-76.4115 Software Development Project I. Does not substitute course T-76.3601 Introduction to Software Engineering, which can be substituted with CS-C3150 / CSE-C3610 Software Engineering. Prerequisites: CS-A1110 / CSE-A1110 Programming 1, CS-A1120 / ICS-A1120 Programming 2, CS- C2110 / ME-C2110 Programming Studio 1: Media Programming, CS-C2120 / CSE-C2120 Programming Studio 2: Project. Evaluation: 0-5 or pass/fail Registration for Courses: Registration via WebOodi. Please see WebOodi for registration dates. Language of Instruction: English Further Information: Both software project courses CS-C2130 & CS-C2140 must be taken during the same academic year and the assessment is only given after the CS-C2140 course (period V). CS-C2140 Software Project 2 (5 cr) Responsible teacher: Jari Vanhanen; Casper Lassenius Status of the Course: Compulsory course of the Computer Science major. Level of the Course: Bachelor s level. Teaching period: III-V (Spring 2018) Workload: Project work 25h * credits Learning Outcomes: See CS-C2130 Software Project 1. Content: See CS-C2130 Software Project 1. Assessment Methods and Criteria: Project work. Substitutes for Courses: Substitutes CSE-C2620 Software Project 2. Substitutes with CS-C2130 / CSE- C2610 Software Project 1 the course T-76.4115 Software Development Project I. Prerequisites: See CS-C2130 Software Project 1. Evaluation: 0-5 Registration for Courses: See CS-C2130 Software Project 1. Language of Instruction: English Further Information: Both software project courses CS-C2130 & CS-C2140 must be taken during the same academic year and the assessment is only given after the Software Project 2 (period V). CS-C2150 Theoretical Computer Science (5 cr) Responsible teacher: Stavros Tripakis Status of the Course: Compulsory course of the Computer Science major. Level of the Course: Bachelor s level Teaching period: III - IV (Spring 2018) 7

Workload: Lectures: 24 (2) Teaching in small groups: 24 (2) Independent work: 82 Exam: 3 TOTAL: 133 Learning Outcomes: After the course you know the most important models of computation and you can examine them with mathematical precision. You can model computation using finite automata, and characterize simple languages with regular expressions and context-free grammars. You understand how the Turing machine models everything that can be computed using a real computer, and that there are well-defined problems that cannot be solved with any algorithm. You know the relationship between the expressiveness of the models of computation studied during the course. You have been exposed to some basic concepts of computational complexity theory such as reductions between problems. Content: Finite automata and regular languages. Context-free grammars and pushdown automata. Turing machines and computability. Basics of computational complexity. Assessment Methods and Criteria: Exam and home assignments Study Material: Michael Sipser: Introduction to the Theory of Computation, lecture notes and slides, and other separately announced study material Substitutes for Courses: ICS-C2000 Theoretical Computer Science, T-79.1001 Introduction to Theoretical Computer Science T (4 cr), T-79.1002 Introduction to Theoretical Computer Science Y (2 cr) Prerequisites: CS-A1110 / CSE-A1110 Programming 1 and CS-A1120 / ICS-A1120 Programming 2 or CS-A1111 / CSE-A1111 Basic Course in Programming Y1 and CS-A1121 / CSE-A1121 Basic Course in Programming Y2, MS-A0401/A0402/A0409 Foundations of discrete mathematics. Evaluation: 0-5 Language of Instruction: English CS-C3100 Computer Graphics (5 cr) Responsible teacher: Jaakko Lehtinen Status of the Course: Optional course of the Computer Science major (Bachelor s level). Core course of the Computer Science major (Master s level). Compulsory course of the Game Design and Production major (Master s level). Teaching period: I-II (Autumn 2017) Workload: 40 + 20 (4 + 2). Learning Outcomes: Basic understanding of modern computer graphics as a whole (modeling, animation, rendering) and ability to implement a number of practical algorithms in C++. Understanding of how the graphics processor (GPU) works. Hands-on connection to significant applications through guest lectures. Concrete uses for mathematics learned in earlier classes. Content: Content: Geometric modelling, visual simulation, shading and lighting, ray tracing, the real-time graphics pipeline, mathematical foundations of computer graphics. Assessment Methods and Criteria: Programming assignments (70%), exam (25%), participation (5%). Study Material: Lecture slides, online material. Substitutes for Courses: Replaces courses ME-C3100 Computer Graphics, T-111.301, T-111.4300 and T-111.4310. Prerequisites: CS-A1140 / CSE-A1140 Data Structures and Algorithms T or CS-A1141 / CSE-A1141 Data Structures and Algorithms Y. Basic courses in Mathematics. Good programming skills, preferably programming in C/C++. Evaluation: 0-5 Language of Instruction: English CS-C3120 Human-Computer Interaction (5 cr) Responsible teacher: Mikko Kytö; David McGookin Status of the Course: Compulsory course of the information networks major (Bachelor s level). Optional course of the Computer Science major (Bachelor s level). Compulsory course of the Software and Service Engineering (CCIS) and Information networks majors (Master s level). Teaching period: I-II (Autumn 2017) 8

Workload: Lectures 30 h, exercises 60 h, peer review 10 h, examination 33 h. Learning Outcomes: At the end of this course the student should: Understand key aspects of human perception and cognition, and how these impact on the design of Human-Computer Interfaces. Understand the importance of Human-Computer Interaction in the design of products and services Understand how and where usability and user interaction specialists fit into the software and product development lifecycle Be able to define and describe the key stages of a User Centered Design process Understand the key techniques used at each stage of the User Centered Design Process and have practical experience in their application through exercises. Be able to compare and contrast qualitative and quantitative evaluation techniques. Be able to propose and justify an appropriate evaluation technique to a given problem Have awareness of existing interaction paradigms, their advantages and disadvantages Have awareness of cutting edge interaction research and developments in user interaction paradigms, design and evaluation. Have awareness of practical issues in the application of Human-Computer Interaction in an industrial context. Content: As computational systems have moved to become pervasive parts of our lives, it becomes even more important to consider how they can be be best designed to be useful and useable by people (or users ). But what is a user, how do we understand what they want, and how can we design user interfaces that are effective and efficient for them. This course covers the foundations of Human- Computer Interaction - the study of how computer systems can be designed to support the needs of the people who we intend to use them. The course provides an introduction to UI and UX design, focusing on the user-centered design process as a way of understanding user needs and requirements and testing designs. At a basic level we will cover Usability, User-centered design, prototyping, how this process fits into existing software product development, as well as looking to how the relationship between computers and humans is evolving, and how we might interact with computer systems in the future. Assessment Methods and Criteria: Lectures, exercises, peer reviews and examination. Study Material: To be announced in the course web pages. Substitutes for Courses: Replaces the courses CSE-C3800 User Interfaces and Usability, T-121.2100 Introduction to user-centred product development and T-121.3110 Exercise on User-Centred Product Development. Evaluation: 0-5, may be graded with pass/fail Registration for Courses: Enrollment in WebOodi. Language of Instruction: English. Further Information: The number of participants will be limited (200). Registrations will be prioritized in the following order: 1) The students that have the course as a mandatory part in SSE, Information Networks, ICT Innovation, and uschool majors, 2) The students that have the course as a mandatory part in SSE, Information Networks, ICT Innovation, and uschool minors, 3) The students that have the course as an elective part of their major, 4) The students that have the course as an elective part of their minor, and 5) All other students based on registration order. CS-C3130 Information Security (5 cr) Responsible teacher: Tuomas Aura Status of the Course: Optional course of the Computer Science major (Bachelor s level). Level of the Course: Suitable for both Bachelor s and Master s levels. Teaching period: I (Autumn 2017) Workload: 5 cr (133 h). Lectures 24 h, exercises 60 h, independent study 49 h. Learning Outcomes: After taking the course, students are familiar with the key concepts and abstractions of information security and understand the purpose, function and weaknesses of several security technologies. They are able to model threats and analyze the security of a system critically, from the viewpoint of an attacker. Moreover, they can identify common security flaws in software and apply 9

principles of secure programming. Content: Security models and terminology, authentication, access control, software security, cryptography, network security, threat analysis, examples of advanced security technologies, privacy, security policies and regulation. Assessment Methods and Criteria: Hands-on exercises and written assignments, examination. Course feedback. Study Material: Textbooks will be recommended at the beginning of the course. Substitutes for Courses: Replaces CSE-C3400 Information Security and T-110.4206. Prerequisites: Programming skills, broad knowledge computer-science concepts. Evaluation: 0-5 Language of Instruction: English CS-C3140 Operating Systems (5 cr) Responsible teacher: Vesa Hirvisalo Status of the Course: Optional course of the Computer Science major (Bachelor s level). Core course of the Computer Science major (Master s level). Teaching period: I (Autumn 2017) Workload: Lectures 24 h, exercises 12 h Learning Outcomes: You understand the principles of operating system implementation. Content: Operating system structure, processes, memory management, file system, concurrency and parallelism. Assessment Methods and Criteria: Examination and exercises Study Material: William Stallings: Operating Systems: Internals and Design Principles, 7th edition, 2011. Corbet, Rubini, Kroah-Hartman. Linux Device Drivers, O Reilly 3 ed., 2005. Substitutes for Courses: Replaces the courses CSE-C3200 Operating Systems, T-106.4155. Prerequisites: CS-A1120 / ICS-A1120 Programming 2 and CS-C2120 / CSE-C2120 Programming Studio 2: Project or equivalent knowledge. Evaluation: 0-5 Language of Instruction: English CS-C3150 Software Engineering (5 cr) Responsible teacher: Casper Lassenius Status of the Course: Optional course of the Computer Science major (Bachelor s level). Common course of the Software and Service Engineering major (Master s level). Teaching period: I-II, III-IV (Autumn 2017 & Spring 2018) Workload: Lectures 30 h Exercises 60 h Independent study 45 h Learning Outcomes: You can present and motivate the phases of software engineering (Requirements Engineering, Software Architecture, Software Design and Implementation, Software Testing, Software Evolution) and the main cross-cutting activities of software engineering (Software Processes, Agile Software Development, Configuration Management). You are able to read and understand software engineering literature, and motivate the importance of software engineering. Content: The course provides a broad but practical view of industrial software development. Students learn the main problems, models and methods of software engineering, including traditional and agile/lean software development. The main software engineering activities, including software requirements engineering, design, implementation, testing and deployment are covered. Supporting workflows, e.g. configuration management and project management are also discussed. The course is delivered using moodle. Students pass the course by doing one moodle module each week, according to a fixed schedule. Each weekly module consists of a video lecture, a set of readings, a quiz, and a written assignment. After the course, students have a working understanding of software development in industry, and the necessary knowledge and skills to pursue further studies in software engineering. Assessment Methods and Criteria: Exercises and possibly examination. Study Material: To be announced later. Substitutes for Courses: Replaces former courses CSE-C3610 Software Engineering and T-76.3601 Introduction to Software Engineering. Prerequisites: Basics in programming. 10

Evaluation: 0-5 Language of Instruction: English CS-C3160 Data Science (5 cr) Responsible teacher: Jaakko Hollmén Status of the Course: Optional course of the Computer Science major (Bachelor s level). Teaching period: II (Autumn 2017) Workload: Lectures 20h, exercise sessions 20h, independent work 90h, examination 3h. Learning Outcomes: After the course, you can describe how natural data such as images, natural language, speech and time series measurements can be represented as data in digital form. You can apply elementary statistical and algorithmic methods to process the digital data to yield insights to the data generating phenomenon. You will understand what processes constitute the data science pipeline in the analysis, starting from natural data and ending with actionable results. Content: The course serves as an introduction to the topic of data science and related topics such as machine learning. You will be introduced to data science methods and tools to find interesting information from data. Specific topics on the course include processing of digital signals such as speech and images, statistical estimation of parametric distributions, classification, prediction, clustering, pattern mining, and network analysis for developing search engines for hypertext collections such as the Web. Assessment Methods and Criteria: Overall grade is determined by the exam grade. Attendance in the exercise sessions will earn the student extra exam points. Study Material: Material will be announced on the course pages. Substitutes for Courses: CS-C3110 Datasta tietoon (From Data to Knowledge). Prerequisites: Skills needed on the course are taught on introductory courses in mathematics and statistics and programming. Specifically, matrix algebra, derivatives of functions, and statistical distributions will be needed on the course. Evaluation: 0-5. Language of Instruction: English. CS-C3170 Web Software Development (5 cr) Responsible teacher: Otto Seppälä Status of the Course: Optional course of the Computer Science major (Bachelor s level). Core course of the Computer Science major (Master s level). Teaching period: II - III (course extends over the Christmas break). (Autumn 2017 and Spring 2018) Workload: 2x2h lectures per week, Period III : 2h lectures per week. The course includes both personal exercises and a course project which is developed in small teams. Lectures 36 h, personal exercises 36 h, project work 60 h. Learning Outcomes: Student understands the distributed nature of a web application, session management and how the different parts of the application can communicate with each other. Student is able to design, implement, and deploy a small web application using a modern web application framework. Student knows how to test and debug a web application and has basic understanding of technologies and issues such as object relational mapping, security, efficiency, and scalability. Content: The main focus of this course is to view the web as a programming platform. Special emphasis is placed on the distributed nature of a web application, session management and the communication between a web-client and the HTTP-server (HTTP-protocol, REST, XMLHttpRequest). How applications and services are developed using modern web frameworks and technologies (e.g. XHTML, DOM, CSS, JavaScript, AJAX, Python, templates) and what are the opportunities and restrictions imposed by both client and server platforms. Additional topics include security issues, object relational mapping, efficiency, scalability, testing, debugging, and mashups. Assessment Methods and Criteria: Personal exercises, an exam and a project work developed in teams. Study Material: Announced later in MyCourses. Substitutes for Courses: Replaces the courses CSE-C3210 Web Software Development and T- 106.4300 Web Software Development. Prerequisites: CS-A1150 Databases and either CS-A1120 Programming 2 or CS-A1121 Basic Course in Programming Y2. 11

Evaluation: 0-5 Language of Instruction: English CS-C3180 Software Design and Modelling (5 cr) Responsible teacher: Varvana Myllärniemi; Marjo Kauppinen Status of the Course: Common course of the Software and Service Engineering major (Master s level). Level of the Course: Master s level Teaching period: I-II (Autumn 2017) Workload: Study sessions (lectures): 30h, Workshops and individual work: 40h, Group assignments: 60h Learning Outcomes: This course aims to help you learn how to analyze the problem the customer has and how to design a solution that satisfies customer and user needs. You learn to describe the essence of the key software engineering activities and how these activities relate to each other. You are also able to compare modeling methods, assess their applicability for different software engineering activities and select appropriate design practices for the development team. Furthermore, you are able to apply a set of design and modeling methods in practice. Content: After the course, the student will have a broad understanding of software engineering activities and methods as a whole and have basic skills to participate in software development projects. The software engineering activities covered in this course are: a) requirements engineering, b) domain modeling, c) software architecture design, d) testing, and e) teamwork. Assessment Methods and Criteria: Group assignments and examination. Study Material: Material of the study sessions. Articles related to the study sessions and assignments. Substitutes for Courses: Replaces former courses CSE-C3600 Software Design and Modelling and T- 76.4602 Software Development Methods (6 cr) Evaluation: 0-5 Registration for Courses: Registration via WebOodi. Language of Instruction: English SCI3027.kand Kandidaatintyö ja seminaari (Tietotekniikka) (10 op) Vastuuopettaja: Juho Kannala; Viivi Uurtio Opetusperiodi: I - II, III - IV Työmäärä toteutustavoittain: 24 + 8 (2 + 0). Luennot, ohjaajatapaamiset sekä esitystilaisuus. Muu itsenäistä työskentelyä. Osaamistavoitteet: Kandidaattiseminaarin suoritettuasi ymmärrät mitä on tieteellinen ajattelu, osaat etsiä tieteellisen kirjoitelman kannalta oleellista aineistoa sekä osaat soveltaa ja jäsentää kokoamaasi tietoa. Edellisten lisäksi kykenet tuottamaan selkeää tieteellistä tekstiä hyvällä suomen tai ruotsin kielellä, esittämään työsi keskeisen sisällön suullisesti sekä vastaanottamaan ja antamaan palautetta. Sisältö: Kurssilla opetetaan tieteellistä ajattelua, tiedonhakua, tiedon jäsentämistä ja käsittelyä sekä kielen ja viestinnän taitoja. Toteutus, työmuodot ja arvosteluperusteet: Luennot, harjoitustehtävät, seminaari ja kandidaatintyö. Kurssin kotisivu: https://mycourses.aalto.fi/course/search.php?search=sci3027.kand Arvosteluasteikko: hyv-kh Kandidaatintyöt Opetuskieli: Suomi tai ruotsi Lisätietoja: Edellytys seminaarin ja kandidaatintyön aloittamiselle on alemman tutkinnon vahvistettu opintosuunnitelma. Kaikkien Aalto-yliopiston tekniikan koulujen koulutusohjelmien yhteinen ruotsinkielinen kandidaattiseminaari järjestetään kerran lukukaudessa. Ruotsinkielinen seminaari toimii koulutusohjelmien suomenkielisten seminaarien alaopetustapahtumana. https://into.aalto.fi/display/ svtik/kandidatseminarium 12

På svenska CS-A1110 Programmering 1 (5 sp) Ansvarig lärare: Otto Seppälä; Juha Sorva; Riku Linna Kursens status: Obligatorisk kurs inom grundstudier; informationsnätverk, datateknik, matematik och systemvetenskaper, produktionsekonomi och teknisk fysik. Kursnivå: Kandidatnivå. Undervisningsperiod: I-II Arbetsmängd: Föreläsningar och tillfällen för behandling av feedback: 6 h. Övningsuppgifter och att bekanta sig med materialet, delvis på egen hand och delvis genom kontaktundervisning: 130 h. Lärandemål: Efter avklarad kurs ser du programmering som nyttigt och roligt och är motiverad att lära dig mera. Du känner till de centralaste begreppen inom programmering och objektorienterad programmering och kan diskutera dem. Du kan tillämpa begreppen du känner till då du läser och skriver datorprogram, åtminstone då programmeringsuppgiften är klart avgränsad. Du förstår åtminstone hjälpligt hur datorn fungerar då den utför ett program. Du känner till arbetsskedena i att producera programkod och kan använda programmerares verktyg under dessa skeden. Du kan läsa program och programdokumentation som andra skrivit och utnyttja färdiga dellösningar som delar av dina egna program. Du förstår att program inte skrivs enbart för datorer, utan också för att hjälpa människor och för människor att läsa. Du kan skriva kod med god programmeringsstil. Innehåll: Det centralaste innehållet: Programmering, imperativ programmering, objektorienterad programmering. Att läsa program. Anpassning och skapande av program enligt en specifikation. Satser och uttryck. Variabler, datatyper, funktioner, parametrar, returvärden, objekt, klasser, metoder, tabeller och buffertar, villkors- och upprepningssatser. Programmeringsstil. Klassbibliotek och programdokumentation. Utvecklingsmiljöer. Starkt rekommenderat innehåll: Programkodens faser (källkod, kompilator, mellanspråk, virtualmaskin). Programmets exekveringsmodell (t.ex. anropsstacken, skräpsamling). Behandling av textfiler. Avbildningar. Arv och egenskaper. Föränderliga och oföränderliga objekt. Funktionsobjekt, funktioner av högre grad, anonyma funktioner. Grunderna i att bedöma kvaliteten på programimplementationer. Bl.a. erbjuds också: Grunderna i grafiska användargränssnitt. Rekursion. Planering av egna program. Metoder, arbetssätt och bedömningsgrunder: Studenterna går igenom kursmaterialet, som bygger till stor del på praktiska övningar, antingen ensamma eller i par. Som stöd erbjuds rikligt med assistentmottagningar, som studenter kan komma till för att jobba och be om råd. Kursens obligatoriska delprestationer är övningsuppgifterna och besvarande av kursfeedback. Se kursens webbplats för mer information. Studiematerial: Lärarens eget material på webben. Ersättande prestationer: För studerande vid Aalto SCI kan kursen ersätta följande gamla kurser: CSE- A1110 Programmering 1, T-106.1200 Grunderna i programmering T (Java); T-106.1203 Grunderna i programmering L (Java); T-106.1207 Grunderna i programmering (Java); T-106.1210 Grundkurs i programmering, del 1; T-106.1212 Grundkurs i programmering. För andra rekommmederas CS-A1111 Grundkurs i programmering Y1. CSE-A1111 CSE-A1111 Förkunskaper: Grunderna i att använda en dator och de vanligaste tillämpningarna (t.ex. e-post). Inga förkunskaper i programmering. En del av materialet är på engelska. Undervisningsspråk: Föreläsningar på finska, övningsgrupper erbjuds på svenska. Tilläggsinformation: Kursen är primärt avsedd för studerande vid SCI, för andra studerande rekommenderas kursen CSE-A1111 Grundkurs i programmering Y1. Kursen är arbetsdryg men givande. Välkomna! CS-A1111 Grundkurs i programmering Y1 (5 sp) Ansvarig lärare: Kerttu Pollari-Malmi Kursnivå: Kandidatnivå Undervisningsperiod: I-II Arbetsmängd: Föreläsningar 20 h, övningar och material 93 h, tentamen (förberedelse och deltagande) 20 h. 13

Lärandemål: Efter avklarad kurs kan du skriva små datorprogram till exempel för att utföra beräkningar som behövs i ingenjörsvetenskaper samt för att bearbeta små mängder data. Du förstår också motsvarande program skrivna av andra. Innehåll: Grunderna i procedurorienterad programmering med Python-språket, strukturerad programmering, grunderna i programplanering, grundläggande datastrukturer. God programmeringsstil. Metoder, arbetssätt och bedömningsgrunder: Föreläsningarna, obligatoriska hemuppgifter och tentamen. Studiematerial: Kompendium. Ersättande prestationer: Ersätter kurser CSE-A1111, T-106.1206 och T-106.1208. Förkunskaper: Grunderna i att använda en dator och de vanligaste tillämpningarna (t.ex. e-post). Inga förkunskaper i programmering. Undervisningsspråk: Finska CS-A1120 Programmering 2 (5 sp) Ansvarig lärare: Petteri Kaski Kursens status: Obligatorisk kurs inom grundstudier; informationsnätverk, datateknik, matematik och systemvetenskaper och teknisk fysik. Kursnivå: Kandidatnivå Undervisningsperiod: IV-V Arbetsmängd: Föreläsningar: 24 (4) [3*2 veckor, 2*2h föreläsningar/vecka] Lärandemål: Efter att ha avlagt kursen kan studenten (i) förstå på principiell nivå en programmerbar dators centrala funktionsstruktur och hur strukturen fungerar då ett program exekveras, (ii) förstå datorns fysikaliska begränsningar och möjligheter, samt känna till och utnyttja centrala beräkningsresurser (tid, utrymme, parallellism, o.s.v.), (iii) bestämma/mäta ett programs prestanda i praktiken; i enkla fall bara på basen av programkoden, (iv) förstå vad ett abstrakt gränssnitt och dess implementation innebär och hur olika implementationer kan vara olika effektiva, (v) förstå begreppet rekursion och kan skapa program och datastrukturer som utnyttjar rekursion, och (vi) grunderna i algoritmdesign och -analys, vissa grundläggande kombinatoriska uppgifter (sökning, sortering, o.s.v.) och hur de implementeras. Innehåll: Introduktion till datorns funktion från grindnivån till högnivåprogramspråk. Programmeringsabstraktioner och analys av programs prestanda. Funktionell programmering, bl.a. rekursiva definitioner och rekursion. Introduktion till algoritmiskt problemlösande och datavetenskapligt tänkande. Metoder, arbetssätt och bedömningsgrunder: Programmeringsuppgifter och tentamen Studiematerial: Föreläsningsanteckningar, artiklar och programmeringsuppgifter Ersättande prestationer: ICS-A1120 Programmering 2, T-106.1150 Tietokone ja käyttöjärjestelmä Förkunskaper: CS-A1110 Programmering 1 / CSE-A1110 Programmering 1 Undervisningsspråk: Finska. CS-A1121 Grundkurs i programmering Y2 (5 sp) Ansvarig lärare: Vesa Hirvisalo Kursnivå: Kandidatnivå Undervisningsperiod: III - V Arbetsmängd: Föreläsningar 12 h, övningsuppgifter och material 42 h, projekt 80 h Lärandemål: Efter denna kurs kan du planera och implementera ett självständigt objekt-orienterat program som består av flera klasser. Du förstår och kan utnyttja mer avancerade egenskaper av objektorienterad programmering, t.ex. arv, på ett mångsidigt sätt. Du förstår konsekvenserna för både programmets funktion och programmeringsprocessen, särskilt vidareutvecklingen av programmet, av dina val i design och implementation. Du kan motivera och dokumentera de centrala valen du gjort i programmeringsprocessen. Du kan utnyttja enhetstestning i programmering och använda en 14

utvecklingsmiljö. Du känner till grunderna i jämlöpande programmering och kan tillämpa dem i enkla fall. Innehåll: Grunderna i objekt-orienterad programdesign, tekniker och metoder; programmeringsverktyg. Avancerade programmeringsabstraktioner. Projektet innehåller förutom programmeringsarbete också planering av arbetet och dokumentation. Metoder, arbetssätt och bedömningsgrunder: Hemuppgifter och övningsarbete Studiematerial: Meddelas på kursens webbplats. Ersättande prestationer: Ersätter kurserna CSE-A1121, T-106.1243 och T-106.1215. Förkunskaper: CS(E)-A1111 Grundkurs i programmering Y1 Undervisningsspråk: Finska. Tilläggsinformation: Kursen är primärt avsedd att ge tillräcklig programmeringserfarenhet för biämnesstudier i datateknik. CS-A1130 Datateknikens tillämpningar (5 sp) Ansvarig lärare: Ari Korhonen Kursnivå: Kandidatnivå Undervisningsperiod: III-V Arbetsmängd: Essä 4 timmar. Föreläsningar 10 timmar, förberedelser för föreläsningar 10 timmar. Tentamen 3 timmar, förberedelser för tentamen 40 timmar. Övningar 26 timmar, förberedelser för övningar 42 timmar. Lärandemål: Efter att ha gått kursen kan studenten analysera och visualisera data med olika program. Studenten känner till anskaffningsprocessen för en datateknisk tillämpning. Studenten förstår algoritmers komplexitet och har en uppfattning om beräkningens begränsningar. Innehåll: I kursen bekantar sig studenten genom praktiska övningsarbeten med behandling och visualisering av forskningsdata med olika program. Dessutom behandlas anskaffningsprocessen för ITtjänster och grunderna i anskaffning. Till slut granskas algoritmiskt tänkande och begränsningarna i beräkning i behandlingen av stora datamängder. Metoder, arbetssätt och bedömningsgrunder: Tentamen, föreläsningar, essä och obligatoriska övningsuppgifter. Studiematerial: Delas ut i MyCourses. Ersättande prestationer: Ersätter kurser CSE-A1130 Datateknikens tillämpningar, T-06.1041/T- 106.1043 Grundkurs i datateknik ja T-106.1061 Laboratoriekurs i datateknik. Förkunskaper: CS-A1111 Grundkurs i programmering Y1 / CSE-A1111 Grundkurs i programmering Y1 Undervisningsspråk: Finska CS-A1140 Datastrukturer och algoritmer (5 sp) Ansvarig lärare: Tommi Junttila Kursens status: Obligatorisk kurs inom grundstudier; datateknik Kursnivå: Kandidatnivå Undervisningsperiod: I-II Arbetsmängd: Föreläsningar 20h, självstudium och undervisning i små grupper 112h, och tentamen 3h. Lärandemål: Efter avklarad kurs klarar du av att definiera, jämföra, samt implementera grundläggande datastrukturer och algoritmer, samt namnge och välja dem t.ex. som sökstrukturer, till sorteringsproblem, och till genomgång av grafer. Dessutom kan du känna igen och närmare beskriva en given datastruktur eller algoritm och kan ge exempel på hur de fungerar. Du kan också diskutera om andra centrala datastrukturer och algoritmer med användning av branschens typiska terminologi. Innehåll: Bl.a. listor, träd och grafer. Metoder för sökning och sortering. Analys av algoritmer. Metoder, arbetssätt och bedömningsgrunder: Hemuppgifter och tentamen. Studiematerial: Meddelas på kursens MyCourses-sida. Ersättande prestationer: Ersätter kurser CSE-A1140, T-106.1220, T-106.1223 och T-106.1227. Förkunskaper: CS-A1120 Programmering 2 / ICS-A1120 Programmering 2 Undervisningsspråk: Finska. 15