
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

CT70A9500 Holistic Digital Service Development - Blended teaching 2.9.2024-15.12.2024
Holistic Digital Service Development is a project course that combines theoretical learning with hands-on practical experience. In this project-based course, students work in teams to develop innovative digital services in close collaboration with industry partners. Each team is guided by a mentor from the partnering company, who provides valuable insights into the company's business model, needs, and portfolio. The goal of the course is to enhance the value creation of the company through the development of new digital services or the improvement of existing ones. This course offers a unique opportunity for students to apply their knowledge in real-world settings and develop valuable skills in digital service development. In this course, students apply their knowledge of cloud-based services, infrastructure, service design, and intelligent and smart systems.
- Responsible teacher: Dominik Siemon
- Teacher: Tuukka Ruotsalo

CT80A0200 Software Business - Contact teaching 6.1.2025-20.4.2025
The course presents economical theories seen in the software industry as well as covers different revenue and business models. Finally, the course introduces the internationalization models of software-intensive companies.
- Responsible teacher: Sami Hyrynsalmi
- Responsible teacher: Andrey Saltan

CT80A0200 Software Business - Online teaching 1.8.2024-30.7.2025
The course presents economical theories seen in the software industry as well as covers different revenue and business models. Finally, the course introduces the internationalization models of software-intensive companies.
- Responsible teacher: Sami Hyrynsalmi
- Teacher: Sreman Chandio
- Teacher: Yekaterina Kovaleva
- Teacher: Andrey Saltan

CT80A0100 Product Analytics - Online teaching 6.1.2025-20.4.2025
The course on software product analytics is designed to provide students with a comprehensive understanding of how to use data analytics to drive product management decisions across the entire product development lifecycle, from ideation to launch and beyond.
- Responsible teacher: Andrey Saltan

CT80A0000 Data-Intensive Systems - Blended teaching 2.9.2024-15.12.2024
Introduction to distributed database systems, distributed database applications, databases systems and internet, distributed data storage and retrieval, data scalability, performance, data warehousing and data mining from the perspective of value creation and communication in distributed systems, advanced topics in databases such as security, authorization, modeling and programing for semi-structured data, secondary storage management, query execution, cloud computing.
- Responsible teacher: Jiri Musto