
CT60A0203 Ohjelmoinnin perusteet - Monimuoto-opetus 2.9.2024-15.12.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: Aku Kauria
- Teacher: Roope Luukkainen
- Teacher: Emma Niemenmaa
- Teacher: Joona Nykänen
- Teacher: Rami Saarivuori
- Teacher: Nadia Sina
- Teacher: Elias Syyrilä
- Teacher: Demo Teacher1
- Teacher: Demo Teacher2
- Teacher: Demo Teacher3
- Teacher: Demo Teacher4
- Teacher: Demo Teacher5
- Teacher: Demo Teacher6
- Teacher: Demo Teacher7
- Teacher: Demo Teacher8
- Teacher: Erno Vanhala

CT30A8922 User Experience Design - Blended teaching 6.1.2025-20.4.2025
The course will cover the following topics. 1. Design theories, principles and methods: what are the different ways to approach a design task? What methods can be used?2. User experience in design practices. How can we design for a better user experience?3. Co-design. How and why should we involve different stakeholders in the design process?4. Ideation. What tools and techniques can we use to help understand a problem?5. Prototyping. What are the different stages of prototyping and what can we find out from different types of prototype?6. End-user evaluation. What evaluation techniques should we use with end usersto get feedback on design ideas?7. Expert evaluation. How can design experts contribute to evaluation of prototypes?8. Usability studies and usability techniques. How can we conduct studies that determine the usability of a new product? Can people use it as planned? Do they want to?In groups, students are asked to develop and validate a design for a new software product or service. In each session, students will learn and apply methods to their design and iteratively improve and develop their design to a working prototype for usability testing. The course focuses on 'beyond the desktop' and non screen-based interfaces and prototyping with physical materials may be part of the group work.
- Responsible teacher: Annika Wolff
- Teacher: Tamara Ahmed
- Teacher: Ajesh Kumar

CT30A8912 Software and system architectures - Online teaching 6.1.2025-20.4.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: Stepan Bakhaev
- Teacher: Roshan Devullapalli
- Teacher: Eerika Peltonen

CT30A3401 Distributed Systems - Blended teaching 6.1.2025-20.4.2025
The course introduces the concepts of distributed systems including (but not limited to) processes, communication, naming, synchronization, and consistency. After the introductory part, design principles underlying the development of distributed systems are discussed followed by more advanced concepts such as fault tolerance and security. Students will also be familiarized with some of the main architectural paradigms in distributed systems: object-based systems, file systems, web-based and coordination-based systems. On the completion of the unit, students will understand the fundamentals of distributed computing and be able to design and develop distributed systems and applications.
- Responsible teacher: Syed Naqvi
- Teacher: Mahyar Mohammadi
- Teacher: Vatsal Rukhaiyar

CT30A3370 Operating Systems and System Programming - Blended teaching in English, Lahti 6.1.2025-20.4.2025
Käyttöjärjestelmän perusrakenteet ja –toiminnot: tiedostojärjestelmä, prosessit, prosessien ajoitus ja hallinta, muistinhallinta, oheislaitteet. Unix-järjestelmän rakenne. C-ohjelmointikieli ja sen ohjelmointiympäristö ja työkalut Unix-järjestelmässä. Unixin komentotulkki-ohjelmointi. Standardi I/O-kirjasto, kehittyneet I/O-toiminnot. Järjestelmätiedot ja –tiedostot. Prosessit, prosessien hallinta, prosessien väliset suhteet. Säikeet ja niiden hallinta. Palveluprosessit. Prosessienvälinen kommunikointi. Signaalit ja niiden hallinta.
- Responsible teacher: Saddam Mukta

CT30A3370 Käyttöjärjestelmät ja systeemiohjelmointi - Monimuoto-opetus, suomeksi 1.8.2024-30.7.2025
Käyttöjärjestelmän perusrakenteet ja –toiminnot: tiedostojärjestelmä, prosessit, prosessien ajoitus ja hallinta, muistinhallinta, oheislaitteet. Unix-järjestelmän rakenne. C-ohjelmointikieli ja sen ohjelmointiympäristö ja työkalut Unix-järjestelmässä. Unixin komentotulkki-ohjelmointi. Standardi I/O-kirjasto, kehittyneet I/O-toiminnot. Järjestelmätiedot ja –tiedostot. Prosessit, prosessien hallinta, prosessien väliset suhteet. Säikeet ja niiden hallinta. Palveluprosessit. Prosessienvälinen kommunikointi. Signaalit ja niiden hallinta.
- Responsible teacher: Jussi Kasurinen
- Teacher: Veikko Moilanen
- Teacher: Veikko Moilanen
- Teacher: Emma Pakarinen
- Teacher: Emma Pakarinen

CT30A3232 Basics of Linux - Monimuoto-opetus 2.9.2024-15.12.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: Santeri Kainulainen
- Teacher: Roope Myller
- Teacher: Roope Myller

CT30A3204 Advanced Web Applications - Blended teaching 28.10.2024-23.2.2025
? TypeScript
? Node.js
? Express
? Template engines
? MongoDB
? React
? Authentication and authorization
? APIs
- Responsible teacher: Erno Vanhala
- Teacher: Aleksi Haapalainen
- Teacher: Atte Hiltunen

CT30A2910 Introduction to Web Programming - Blended teaching 2.9.2024-20.10.2024
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: Aleksi Haapalainen
- Teacher: Atte Hiltunen
- Teacher: Ilpo Kainulainen

CT30A2804 Käyttöliittymät ja käytettävyys - Monimuoto-opetus, suomeksi 6.1.2025-20.4.2025
Web- ja mobiilikäyttöliittymien suunnitteluperiaatteet. Ihmiskeskeinen suunnitteluprosessi. Käyttäjien ymmärtäminen HCI:n perustutkimusmenetelmien avulla ja tämän tiedon soveltaminen suunnittelussa. Suunnittelutekniikat, kuten käyttötapaukset, prototyyppien luominen, tarinankerronta ja käytettävyyden arviointi. Käytettävyys ja käyttäjäkokemus käsitteinä. Käytettävyysstandardit käyttöliittymäsuunnittelussa ja käytettävyystestauksessa. Suunnittelumallit ja nykyaikaisten ohjelmistojärjestelmien käyttöliittymien suunnitteluun liittyvät näkökohdat. Käyttöliittymien front-end-ohjelmoinnin perusteet.
- Responsible teacher: Antti Knutas
- Teacher: Kia Vuorio

CT80A0300 Software and Application Innovation - Blended teaching 6.1.2025-20.4.2025
Theme of the course changes on a yearly basis. This course combines technology and technology management perspectives for cross-scientific approach in software and application innovation process. Course consists of
Basics and use cases of the selected theme and related technologies
User-centric needs based design in software and application development
Innovation management, idea generation and opportunity identification process
(Open) business models and technology commercialization in global markets
Product and service development
- Responsible teacher: Jari Porras

CT30A2804 User Interfaces and Usability - Blended teaching, in English, Lahti 6.1.2025-20.4.2025
Web- ja mobiilikäyttöliittymien suunnitteluperiaatteet. Ihmiskeskeinen suunnitteluprosessi. Käyttäjien ymmärtäminen HCI:n perustutkimusmenetelmien avulla ja tämän tiedon soveltaminen suunnittelussa. Suunnittelutekniikat, kuten käyttötapaukset, prototyyppien luominen, tarinankerronta ja käytettävyyden arviointi. Käytettävyys ja käyttäjäkokemus käsitteinä. Käytettävyysstandardit käyttöliittymäsuunnittelussa ja käytettävyystestauksessa. Suunnittelumallit ja nykyaikaisten ohjelmistojärjestelmien käyttöliittymien suunnitteluun liittyvät näkökohdat. Käyttöliittymien front-end-ohjelmoinnin perusteet.
- Responsible teacher: Inna Sosunova
- Teacher: Essi Aittamaa
- Teacher: Yuxin Du

CT80A0300 Software and Application Innovation - Blended teaching 2.9.2024-15.12.2024
Theme of the course changes on a yearly basis. This course combines technology and technology management perspectives for cross-scientific approach in software and application innovation process. Course consists of
Basics and use cases of the selected theme and related technologies
User-centric needs based design in software and application development
Innovation management, idea generation and opportunity identification process
(Open) business models and technology commercialization in global markets
Product and service development
- Responsible teacher: Sanaul Haque
- Responsible teacher: Jari Porras
- Teacher: Anne Pässilä
- Teacher: Leonardo Triana Cuesta
- Teacher: Ashok Tripathi

CT10A9900 Introduction to DD Studies in Software and Systems Engineering - Contact teaching, Lahti 2.9.2024-20.4.2025
Ydinaines: opiskeluun liittyvät käytännön asiat, oppimistaidot, lähdeviittaustekniikka, yrittäjämäinen oppiminen, ajanhallinta, itsensä johtaminen, kirjaston tietokannat ja tiedonhaku, opintosuunnitelman ja urasuunnitelman laatiminen.
Osana kurssia suoritetaan kaikilta LUT yliopiston opiskelijoille vaadittu käyttäjän tietoturva -kurssi
Täydentävä tieto: Orientaatioviikko, joka järjestetään viikkoa ennen opiskeluiden alkua.
- Responsible teacher: Sonja Hyrynsalmi
- Responsible teacher: Maria Paasivaara
- Teacher: Lotta Kopo
- Teacher: Lotta Meriläinen
- Teacher: Ida-Maria Volturi

CT10A9512 Research Design and Methods - Blended teaching 2.9.2024-15.12.2024
Principles of science and scientific communities. Epistemology and ontology in research. The practical research process. Designing research, research questions and hypotheses. Research methods including qualitative methods, experiments, quantitative methods, and design research. Reporting scientific work.
- Responsible teacher: Kari Smolander
- Teacher: Maryam Gulzar

CT10A7080 Capstone Project on Sustainable Software Solutions - Blended teaching 6.1.2025-20.4.2025
During this course, students apply all the software engineering skills they have acquired from their earlier courses to practice. Students form teams that run a real software project in collaboration with a customer, from requirements to implementation and delivery to the customer. Topics for the projects are generated by real customers. The focus of the course is on the process and project management issues, especially customer collaboration and efficient teamwork. Delivery of the solution to the customer is required for the successful completion of the course.
- Responsible teacher: Shola Oyedeji
- Responsible teacher: Jari Porras

CT10A7052 Software Engineering work practise - Online teaching 6.1.2025-20.4.2025
The course is based on a series of visiting lectures given by the researchers / professors from LUT and lectures given by yearly changing industry and public sector experts and company representatives. The lectures introduce students to research, industry work practices / expectations towards students knowledge base on work practices e.g. when applying and working in junior positions. Most lectures are connected to course tasks related to the lecture context (e.g. research / skill building task on industry area of the visiting lecturer or reflecting a topic specific research article, small ICT jobs related problem solving task etc.). All tasks are evaluated, and tasks can also include follow up discussions in the lectures. Some lectures may include e.g. live demonstrations of tools used in industry, like data-analysis, software testing/development and UI modeling tools. Within the lectures, students shall learn details from software engineering positions related daily work practices, receive software engineering career path building guideline points and have access to ask direct questions from the visiting lecturers. Visiting lectures may explain the insight on how to achieve a specific career goals (e.g. project/product manager positions) or practical view from school to funder of your own startup and working as ICT field CEO.
- Responsible teacher: Ari Happonen
- Teacher: Jing Fan
- Teacher: Madusha Jayasingha Arachchige

CT10A7022 Personal Literature Study - Online teaching 6.1.2025-20.4.2025
Selected type of literature study on a selected theme. Depending on the need, the literature study may follow the guidelines of systematic literature review, systematic mapping study, snowballing etc. Students will be introduced to these methods and possible tools in the beginning of the course. A list of selected themes for the possible literature reviews can be found at the course page in Moodle. Student may also propose his/her own topic (e.g. on the field of thesis work). The student contacts then instructor and agrees on the personal implementation of the study including the workload and the schedule. Students produce a report based on the literature by the end of the course semester (fall or spring).
- Responsible teacher: Sanaul Haque
- Responsible teacher: Jari Porras

CT10A7022 Personal Literature Study - Online teaching 2.9.2024-15.12.2024
Selected type of literature study on a selected theme. Depending on the need, the literature study may follow the guidelines of systematic literature review, systematic mapping study, snowballing etc. Students will be introduced to these methods and possible tools in the beginning of the course. A list of selected themes for the possible literature reviews can be found at the course page in Moodle. Student may also propose his/her own topic (e.g. on the field of thesis work). The student contacts then instructor and agrees on the personal implementation of the study including the workload and the schedule. Students produce a report based on the literature by the end of the course semester (fall or spring).
- Responsible teacher: Sanaul Haque
- Responsible teacher: Jari Porras

CT10A7004 Sustainability and IT - Blended teaching 6.1.2025-20.4.2025
The course emphasizes the role and impact of IT field and especially software engineering in the sustainable development. The topic is covered through selected books and scientific articles. Students may be divided into small groups that will each study the topic.
- Responsible teacher: Sanaul Haque
- Responsible teacher: Jari Porras
- Teacher: Kseniia Perova