
CT60A2500 C-ohjelmoinnin perusteet - Verkko-opetus 3.6.2024-30.7.2024
C-ohjelmointikielen syöttö ja tulostus sekä tietovirrat; valinta- ja toistorakenteet; teksti- ja binaaritiedostojen käsittely; tietotyypit ml. tietue, taulukko ja linkitetty lista; rakenteinen ohjelmointi, aliohjelmat, parametrit ja paluuarvot, muuttujien näkyvyys; virheenkäsittely; kirjastot; rekursio; osoittimet; dynaaminen muistinhallinta; hyvä ohjelmointityyli ja make.
- Responsible teacher: Uolevi Nikula
- Teacher: Ilpo Kainulainen
- Teacher: Roope Luukkainen
- Teacher: Roope Myller
- Teacher: Joona Nykänen
- Teacher: Rami Saarivuori
- Teacher: Elias Syyrilä
- Teacher: Demo Teacher2

CT60A2412 Olio-ohjelmointi - Verkko-opetus, suomeksi 2.6.2025-30.7.2025
Oliopohjaisuus, luokat, periytyminen, luokkamallintamisen perusteet, Javan periaatteet, lauseet ja perustietorakenteet, abstraktit tietotyypit, poikkeukset, graafinen käyttöliittymä.
- Responsible teacher: Erno Vanhala
- Teacher: Ilpo Kainulainen
- Teacher: Roope Luukkainen
- Teacher: Roope Myller

CT60A2412 Object-Oriented Programming - Online teaching, in English 2.6.2025-30.7.2025
Oliopohjaisuus, luokat, periytyminen, luokkamallintamisen perusteet, Javan periaatteet, lauseet ja perustietorakenteet, abstraktit tietotyypit, poikkeukset, graafinen käyttöliittymä.
- Responsible teacher: Janne Parkkila
- Teacher: Roope Myller
- Teacher: Quan Nguyen
- Teacher: Rares Radu

CT60A2411 Olio-ohjelmointi - Verkko-opetus, suomeksi 3.6.2024-30.7.2024
Oliopohjaisuus, luokat, periytyminen, luokkamallintamisen perusteet, Javan periaatteet, lauseet ja perustietorakenteet, abstraktit tietotyypit, poikkeukset, graafinen käyttöliittymä.
- Responsible teacher: Erno Vanhala
- Teacher: Elias Syyrilä

CT60A2411 Object-Oriented Programming - Online teaching, in English 3.6.2024-30.7.2024
Oliopohjaisuus, luokat, periytyminen, luokkamallintamisen perusteet, Javan periaatteet, lauseet ja perustietorakenteet, abstraktit tietotyypit, poikkeukset, graafinen käyttöliittymä.
- Responsible teacher: Erno Vanhala
- Teacher: Pouya Amiri
- Teacher: Pouya Amiri
- Teacher: Ram Gurung
- Teacher: Katja Karhu

CT60A0203 Ohjelmoinnin perusteet - Verkko-opetus 3.6.2024-30.7.2024
Ohjelmoinnin perusteet: Ohjelmoinnin taustaa, historiaa, käsitteitä; käyttäjän tarve ja ohjelma; kirjastot ja uudelleenkäytön hyötyjä sekä ongelmia; laadunvarmistus, testaaminen; data-analytiikka ohjelmoijan näkökulmasta; ohjelmointityylit; ohjelmien tehokkuus, algoritmi, pseudokoodi, rekursio, kääntäjä ja tulkki; tiedon esitysmuodot, ASCII ja muut merkkitaulukot, kantaluvut ja niiden muunnokset; käyttöliittymät, dokumentointi, kuvaustekniikat, graafinen ja komentorivikäyttöliittymä.
Python-ohjelmoinnin perusteet: Syöttö, tulostus ml. muotoiltu tulostus, tietotyypit, muuttujat, muuttujien roolit, tyyppimuunnokset, laskenta, merkkijonot; valintarakenne, ehdollinen koodi, haarautuminen, koodilohko, loogiset operaattorit, valikkopohjainen ohjelma; toistorakenteet, alkuehtoinen ja askeltava toisto; ohjelman rakenne, aliohjelmien määrittely ja kutsuminen, tiedonvälitys ohjelmien välillä, nimiavaruudet; tiedostonkäsittely, jäsenmuuttujat ja -funktiot; rakenteiset tietorakenteet, lista, luokka, olio, sanakirja, tuple; kirjastot; poikkeukset, virheet, debuggaus.
- Responsible teacher: Uolevi Nikula
- Teacher: Ilpo Kainulainen
- Teacher: Roope Luukkainen
- Teacher: Emma Niemenmaa
- Teacher: Joona Nykänen
- Teacher: Rami Saarivuori
- Teacher: Elias Syyrilä
- Teacher: Demo Teacher1
- Teacher: Demo Teacher5

CT60A0203 Ohjelmoinnin perusteet - Verkko-opetus 2.6.2025-30.7.2025
Ohjelmoinnin perusteet: Ohjelmoinnin taustaa, historiaa, käsitteitä; käyttäjän tarve ja ohjelma; kirjastot ja uudelleenkäytön hyötyjä sekä ongelmia; laadunvarmistus, testaaminen; data-analytiikka ohjelmoijan näkökulmasta; ohjelmointityylit; ohjelmien tehokkuus, algoritmi, pseudokoodi, rekursio, kääntäjä ja tulkki; tiedon esitysmuodot, ASCII ja muut merkkitaulukot, kantaluvut ja niiden muunnokset; käyttöliittymät, dokumentointi, kuvaustekniikat, graafinen ja komentorivikäyttöliittymä.
Python-ohjelmoinnin perusteet: Syöttö, tulostus ml. muotoiltu tulostus, tietotyypit, muuttujat, muuttujien roolit, tyyppimuunnokset, laskenta, merkkijonot; valintarakenne, ehdollinen koodi, haarautuminen, koodilohko, loogiset operaattorit, valikkopohjainen ohjelma; toistorakenteet, alkuehtoinen ja askeltava toisto; ohjelman rakenne, aliohjelmien määrittely ja kutsuminen, tiedonvälitys ohjelmien välillä, nimiavaruudet; tiedostonkäsittely, jäsenmuuttujat ja -funktiot; rakenteiset tietorakenteet, lista, luokka, olio, sanakirja, tuple; kirjastot; poikkeukset, virheet, debuggaus.
- Responsible teacher: Uolevi Nikula
- Teacher: Ilpo Kainulainen
- Teacher: Roope Luukkainen
- Teacher: Roope Myller
- Teacher: Emma Niemenmaa
- Teacher: Joona Nykänen
- Teacher: Demo Teacher1
- Teacher: Demo Teacher2

CT30A8912 Software and system architectures - Online teaching 3.6.2024-30.7.2024
The course centers around software architecture design and meeting the needs of the stakeholders of the system. The contents include basics of software and systems architecture, identifying architecturally significant requirements, designing software architecture with views, and evaluating software architectures. In addition, wider concepts of enterprise architecture and integration are introduced to put architectures in their context. The course includes a large practical design work that goes through these concepts.
- Responsible teacher: Kari Smolander

CT30A8912 Software and system architectures - Online teaching 2.6.2025-30.7.2025
The course centers around software architecture design and meeting the needs of the stakeholders of the system. The contents include basics of software and systems architecture, identifying architecturally significant requirements, designing software architecture with views, and evaluating software architectures. In addition, wider concepts of enterprise architecture and integration are introduced to put architectures in their context. The course includes a large practical design work that goes through these concepts.
- Responsible teacher: Kari Smolander
- Teacher: Faezeh Abdi

CT30A3232 Basics of Linux - Online teaching 3.6.2024-30.7.2024
Linux-käyttöjärjestelmän asennus ja virtuaalikone, graafiset työpöytäympäristöt, terminaali ja peruskäskyt, komentorivipohjaiset tekstieditorit, komentoriviohjelmat ja niiden asennus, terminaali-I/O ja tiedostonhallintatyökalut, säännölliset lausekkeet, komentoriviohjelmointi, komentorivipohjaiset verkko-ohjelmat, etäkäyttö ja tiedostojen siirto.
- Responsible teacher: Jouni Ikonen
- Teacher: Roope Myller
- Teacher: Roope Myller

CT30A3232 Basics of Linux - Blended teaching 2.6.2025-30.7.2025
Linux-käyttöjärjestelmän asennus ja virtuaalikone, graafiset työpöytäympäristöt, terminaali ja peruskäskyt, komentorivipohjaiset tekstieditorit, komentoriviohjelmat ja niiden asennus, terminaali-I/O ja tiedostonhallintatyökalut, säännölliset lausekkeet, komentoriviohjelmointi, komentorivipohjaiset verkko-ohjelmat, etäkäyttö ja tiedostojen siirto.
- Responsible teacher: Jouni Ikonen
- Teacher: Roope Myller
- Teacher: Saku Tarkiainen

CT30A3204 Advanced Web Applications - Online teaching 2.6.2025-30.7.2025
? TypeScript
? Node.js
? Express
? Template engines
? MongoDB
? React
? Authentication and authorization
? APIs
- Responsible teacher: Erno Vanhala
- Teacher: Veikko Moilanen

CT30A3204 Advanced Web Applications - Online teaching 3.6.2024-30.7.2024
? TypeScript
? Node.js
? Express
? Template engines
? MongoDB
? React
? Authentication and authorization
? APIs
- Responsible teacher: Erno Vanhala
- Teacher: Eero Suomalainen

CT30A2910 Introduction to Web Programming - Online teaching 2.6.2025-30.7.2025
Web standards: HTTP, HTML, CSS and JavaScript. The browser environment with its Document object model (DOM). Building web sites with commonly used tools.
- Responsible teacher: Erno Vanhala
- Teacher: Veikko Moilanen
- Teacher: Quan Nguyen

CT30A2910 Introduction to Web Programming - Online teaching 3.6.2024-30.7.2024
Web standards: HTTP, HTML, CSS and JavaScript. The browser environment with its Document object model (DOM). The most common content management systems and building web sites with commonly used tools.
- Responsible teacher: Erno Vanhala
- Teacher: Pouya Amiri
- Teacher: Pouya Amiri
- Teacher: Katja Karhu
- Teacher: Eero Suomalainen
- Teacher: Eero Suomalainen

CT30A2803 User Interfaces and Usability - Online teaching 3.6.2024-30.7.2024
Design principles of web and mobile interfaces. Human-centered design process. Understanding users through basic HCI research methods and applying this knowledge in design. Design techniques, such as use cases, prototyping, story-boarding, and usability evaluation. Usability and user experience as concepts. Usability standards in interface design and usability testing. Design patterns and considerations of designing interfaces for modern software systems. Basics of front-end programming for user interfaces.
- Responsible teacher: Antti Knutas
- Responsible teacher: Joanna Saad-Sulonen
- Responsible teacher: Dominik Siemon
- Teacher: Sreman Chandio
- Teacher: Sreman Chandio
- Teacher: Yishak Gebremichael
- Teacher: Yishak Gebremichael
- Teacher: Yekaterina Kovaleva

CT60A2700 Software development with the C-programming language for international programs - Blended teaching, in English 6.1.2025-20.4.2025
The topics of the course include but are not limited to:
Writing programs in VSCode and compiling programs with gcc
Automation with makefiles
Common Unix/Linux commands
Variables, primary data types and the memory
Formatted inputting, outputting and text files
Control flow: selection and loops
Operators on data
Arrays, pointers, and pointers to pointers
Functions; call by value / call by reference
Libraries and header files
Heap and stack memory allocation
Data structures: structs and pointers to them
Binary files
Command line arguments
Recursive functions
Operations on Bits
Common programming mistakes and how to debug C programs
The C preprocessor
- Responsible teacher: Jouni Järvinen
- Teacher: Quan Nguyen

CT10A0014 Introduction to UI - Verkko-opetus 1.6.2024-31.12.2025
Pääsisältö: Käyttöliittymän suunnitteluun liittyvät perus tausta-asiat. Elementtien sijoittelu käyttöliittymässä, ihmisen aistit ja käyttöliittymä kokonaisuutena (mm. värisokeuden huomioon ottaminen ja kulttuurilliset tekijät).
- Responsible teacher: Ari Happonen
- Teacher: Ilpo Kainulainen
- Teacher: Emma Niemenmaa

CT80A0400 Responsible Information System Design and Deployment - Blended teaching 6.1.2025-20.4.2025
Responsible information systems and related terminologies, GDPR, AI regulations in Europe and other parts of the world, HLEG Guidelines, EU Digital Identity Wallet, eIDAS, privacy and regulatory-by-design principles, Consent management with decentralized systems, IT Governance, AI Governance, Distributed System Governance.
Course Summary
This course aims to provide the participants with an in-depth knowledge on the design, development, and deployment of responsible information systems. This course builds upon the working principles of intelligent systems, distributed computing environments, data protection mechanisms, and ethical and regulatory issues related to digital technologies. The course will teach students how to build and deploy information systems that are responsible, trustworthy, transparent, ethical, and sustainable for digital transformation.
- Responsible teacher: Najmul Islam

CT60A2600 Ohjelmakehitys C-kielellä - Monimuoto-opetus 6.1.2025-20.4.2025
C-ohjelmointikielen syöttö ja tulostus sekä tietovirrat; valinta- ja toistorakenteet; teksti- ja binaaritiedostojen käsittely; muuttujat ja vakiot sekä tietotyypit ml. tietue ja taulukot; rakenteinen ohjelmointi, aliohjelmat, parametrit ja paluuarvot, näkyvyys; rekursio ja makro; virheenkäsittely; kirjastot; osoitteet ja osoittimet; komentoriviparametrit; dynaamiset tietorakenteet kuten linkitetyt listat ja puurakenteet; ajan käsittely; dynaaminen muistinhallinta; useista tiedostoista koostuvat ohjelmat; yksityiskohtainen ja arkkitehtuurisuunnittelu; hyvä ohjelmointityyli; C-ohjelmien testaus; esikäsittelijä ja kääntäjä; työkalut kuten debugger, make, versionhallinta, staattinen ja dynaaminen analysaattori.
- Responsible teacher: Uolevi Nikula
- Teacher: Roope Luukkainen