
CT60A5511 Software Quality Management, in English - Online teaching 1.6.2023-31.7.2023
Laadunhallinnan mallit, menetelmät ja mittarit. Testauksen ja laadunhallinan työkalut ja tavallisimmat dokumentit. Laadunhallinta organisaation toimintana, toiminnan kehittäminen. Laatuun liittyvät standardit ja sertifikaatit, laadunhallinta ja -valvonta käytännössä.
- Responsible teacher: Azeem Akbar
- Teacher: Muhammad Hamza

CT60A4160 Fundamentals of Software Testing, in English - Online teaching 1.6.2023-31.7.2023
Ohjelmistotestauksen tekniikat, tasot, automatisointi, työkalut, toimiminen testaustiimissä testaajana.
- Responsible teacher: Azeem Akbar
- Teacher: Muhammad Hamza

CT60A2411 Object-Oriented Programming - Online teaching, in English 1.6.2023-31.7.2023
Oliopohjaisuus, luokat, periytyminen, luokkamallintamisen perusteet, Javan periaatteet, lauseet ja perustietorakenteet, abstraktit tietotyypit, poikkeukset, graafinen käyttöliittymä.
- Responsible teacher: Erno Vanhala
- Teacher: Vili Huusko
- Teacher: Vili Huusko
- Teacher: Ajay Sah
- Teacher: Ajay Sah
- Teacher: Yatian Zheng
- Teacher: Yatian Zheng

CT60A0203 Introduction to Programming - Online teaching, in English 1.6.2023-31.7.2023
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: Jouni Järvinen

CT70A9200 Workshop for Scientific Writing - Verkko-opetus 1.6.2023-30.7.2023
Students who are starting their BSc thesis work will participate in the workshop. Learn the process and formulation of the content, and the written presentation of a scientific report.
- Responsible teacher: Jussi Kasurinen
- Responsible teacher: Damian Kedziora

CT70A6200 Basics of Software Product Management - Verkko-opetus 1.6.2023-30.7.2023
The course covers themes of product strategy and planning, strategic management and orchestration of activities.
- Responsible teacher: Sami Hyrynsalmi

CT70A6100 Advanced Course on Software Business - Verkko-opetus 1.6.2023-30.7.2023
The course presents economical theories seen in the software industry as well as covers different revenue internationalization models.
- Responsible teacher: Sami Hyrynsalmi

CT70A3000 Software Maintenance - Verkko-opetus 1.6.2023-30.7.2023
In industrial practice, software developers are often confronted with already existing software systems that need to be maintained, reused or evolved. This requires specific skills to understand the design and implementation of an existing system and which parts need to be modified, to build software systems that are easier to maintain, and to design systems with reuse and evolution in mind from the very start.This course will thus study a variety of techniques, tools and methodologies to help building software systems that are easier to understand, maintain, reuse and evolve.
- Responsible teacher: Prabhat Kumar

CT60A5103 Software Engineering Models and Modeling - Verkko-opetus 1.6.2023-30.7.2023
Modeling in Software Engineering Body of Knowledge (SWEBOK). Principles and foundations of software engineering. Prototyping techniques. Object-oriented modeling. Data-centric models. Model-driven architecture (MDA). Modeling techniques. Importance of modeling in software development projects and processes.
- Responsible teacher: Antti Knutas
- Teacher: Srinivas Pandi

CT60A4160 Ohjelmistotestauksen periaatteet - Verkko-opetus 1.6.2023-31.7.2023
Ohjelmistotestauksen tekniikat, tasot, automatisointi, työkalut, toimiminen testaustiimissä testaajana.
- Responsible teacher: Erno Vanhala
- Teacher: Vili Huusko

CT60A4002 Ohjelmistotuotanto - Verkko-opetus 1.6.2023-31.7.2023
Johdanto, ohjelmistontuotannon rooli erilaisten organisaatioiden toiminnassa, ohjelmistotuotantoprosessi, vaatimusmäärittely, mallinnus, UML, arkkitehtuurit, prosessin kehittäminen, projektinhallinta, GDPR, etiikka.
- Responsible teacher: Jussi Kasurinen
- Teacher: Elias Syyrilä

CT60A2500 C-ohjelmoinnin perusteet - Verkko-opetus 1.6.2023-31.7.2023
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: Roope Luukkainen
- Teacher: Joona Nykänen
- Teacher: Joona Nykänen
- Teacher: Elias Syyrilä
- Teacher: Demo Teacher4

CT60A2411 Olio-ohjelmointi - Verkko-opetus 1.6.2023-31.7.2023
Oliopohjaisuus, luokat, periytyminen, luokkamallintamisen perusteet, Javan periaatteet, lauseet ja perustietorakenteet, abstraktit tietotyypit, poikkeukset, graafinen käyttöliittymä.
- Responsible teacher: Erno Vanhala
- Teacher: Vili Huusko
- Teacher: Vili Huusko
- Teacher: Eero Suomalainen
- Teacher: Eero Suomalainen
- Teacher: Elias Syyrilä
- Teacher: Elias Syyrilä

CT60A0203 Ohjelmoinnin perusteet - Verkko-opetus 1.6.2023-31.7.2023
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: Roope Luukkainen
- Teacher: Joona Nykänen
- Teacher: Joona Nykänen
- Teacher: Rami Saarivuori
- Teacher: Elias Syyrilä
- Teacher: Demo Teacher1
- Teacher: Demo Teacher2
- Teacher: Demo Teacher3
- Teacher: Demo Teacher4
- Teacher: Demo Teacher5

CT30A8912 Software and system architectures - Verkko-opetus 1.6.2023-30.7.2023
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

CT30A3232 Basics of Linux - Verkko-opetus 1.6.2023-30.7.2023
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: Avaneep Kamal
- Teacher: Eero Suomalainen
- Teacher: Elias Syyrilä
- Teacher: Elias Syyrilä

CT30A3204 Advanced Web Applications - Verkko-opetus 1.6.2023-31.7.2023
? TypeScript
? Node.js
? Express
? Template engines
? SASS
? MongoDB
? React
? Authentication and authorization
? APIs
- Responsible teacher: Erno Vanhala
- Teacher: Vili Huusko
- Teacher: Eero Suomalainen
- Teacher: Eero Suomalainen

CT30A2910 Introduction to Web Programming - Verkko-opetus 1.6.2023-31.7.2023
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: Vili Huusko

CT30A2803 User Interfaces and Usability - Verkko-opetus 1.6.2023-31.7.2023
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: Avaneep Kamal
- Teacher: Yekaterina Kovaleva

CT10A4000 Bachelor's Thesis and Seminar - Luento-opetus, Lahti 29.5.2023-31.8.2023
Teknologiaan ja sitä sivuaviin (tieto)teknisiin aiheisiin liittyvä itsenäinen suunnittelu- ja toteutusprojekti, josta tiedon kerääminen ja analysointi tapahtuu hyvää akateemista tapaa noudattaen. Opitun osoittaminen tapahtuu tuottamalla akateeminen opinnäyteraportti ja lisäksi opinnäytteen suunnitelma ja lopputulema esitetään kurssin seminaareissa.
- Responsible teacher: Damian Kedziora
- Responsible teacher: Maria Paasivaara
- Teacher: Jussi Kasurinen