Software engineering

These days, almost all companies have software at the heart of their business. Managing the continuous development of software requires the management of modern software development methods and processes, starting with requirements management and leading to new testing solutions.

The next phase in agile software development (DevOps) is to transfer mechanical work to robots and leave people to take care of the best pieces of software production, i.e. creative and customer-focused development work.

FITech universities offer several software engineering courses, on both basic and advanced levels.

Basic courses give introductions to software engineering, electronics and digital control, whereas on advanced courses you will learn more about digital control and its design as well as automation and software maintenance.

NB! Some courses have limits on the amount of FITech students. Persons without a valid study right to a Finnish university have preference to those courses.

Software engineering courses:

= Contact learning
= Online learning
= Blended learning (online & contact learning)
Aalto University: Software engineering (CS-C3150), 5 ECTS. 9.9.–13.12.2019.

Course level: Basic

Prerequisites: Basics in programming.

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 online 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 completing 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.
  • can also 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).
  • are able to read and understand software engineering literature and motivate the importance of software engineering.

More information in Aalto’s WebOodi.

Responsible teacher: Casper Lassenius (casper.lassenius(at)

LUT University: Basic electronics A (BL50A0010), 5 ECTS. 28.10.2019–21.2.2020.

This course is organised in Finnish!

Course level: Basic

Course content:

  • analog and digital signals
  • resistors, capacitors and inductors
  • filtering, amplification, semiconductors, diodes and transistors
  • digital logic gates
  • introduction to electronics manufacturing technology
  • mini project with Arduino development board

Upon completion of the course the student will be able to:

  1. recognise the most important passive and active components in electronics and list their applications
  2. explain the main differences between analog and digital electronics
  3. define concepts of amplification on filtering
  4. explain the operation and simplified physical structure of an ideal semiconductor diode
  5. describe the operation and main applications of a transistor
  6. describe the operation principle of digital logic gate and list common logic functions
  7. recognise the main phases and materials of manufacturing an electrical apparatus
  8. apply Ohm’s law, Kirchhoff’s voltage and current laws and definition of electrical power to a simple electrical circuit
  9. recognise main components of an embedded system

More information in LUT University’s WebOodi.

Responsible teacher: Mikko Kuisma (mikko.kuisma(at)

University of Oulu: Ohjelmistotekniikka (521457A), 5 ECTS. 6.1.–6.3.2020.

The course is organised in Finnish!

Max amount of FITech students: 30

Course level: Basic

Prerequisities: Elementary programming, basics of computer systems (for example Johdatus tietokonejärjestelmiin 521287A).

In this course the student is familiarised on how to run a basic software project while managing the project using proper project management steps and development phases.

Topics in this course include software development for real time systems, software project management and execution, agile software development, software testing.

This course offers a good stepping stone for those who are interested in becoming a professional software developer or for those who want to update their knowledge to modern day standards.

More info >>

Responsible teacher: Pekka Pietikäinen (pekka.pietikainen(at)

LUT University: Digital control, an introduction (BL40A0501), 4 ECTS. 7.1.–17.4.2020.

This course is organised in Finnish!

Course level: Basic

Prerequisites: Basics of control systems and knowledge in digital signal processing.

The course focuses on basics of sampling theory and discrete modelling, discrete transfer function, continuous time and discrete state model. Moreover, basics of state equation techniques are introduced. Course covers also methods of analysis of digital control circuits, discrete frequency response, stability of a discrete system, basic digital control algorithms and their tuning and practical aspects of implementing a digital controller.

Upon completion of the course the student will be able to:

  1. write state equations of the system and use them to analyse the behaviour of the system
  2. discretise the state model and the transfer function model and explain the pole mapping from continuous to discrete plane
  3. analyse the properties of the discrete system and examine its stability and behavior using Bode diagram, Nyquist diagram or root locus
  4. design a continuous time controller that meets the given specifications and discretise it by using an appropriate approximation
  5. discretise the given specifications and design directly a discrete controller
  6. program a digital controller and system model.

More information in LUT University’s WebOodi.

Responsible teacher: Tuomo Lindh (tuomo.lindh(at)

LUT University: Digital control design (BL40A1202), 6 ECTS. 2.9.–13.12.2019.

Course level: Advanced

Prerequisites: Knowledge in control systems and basics of digital control systems. Mathematical skills. Course Digital control, an introduction.

The teaching approach on this course is practical control design and implementation for different applications. The first half of the course introduces design of advanced control methods for different application. The application topics may change yearly.

In the second half of the course every student will design, program and test a controller using an industrial controller platform and a laboratory equipments.

The following topics are included: plant modelling, different state-space and transfer functions algorithms for SISO and MIMO systems, digital controller synthesis, system simulation, controller programming and testing.

Upon completion of the course students are able to design and implement a digital control system for industrial application independently.

The necessary skills are dynamic plant modeling, system design, control synthesis, system simulation and digital controller implementation in an industrial control platform. These skills are important when designing modern automation systems or any practical application where control have an important role.

More information in LUT University’s WebOodi.

Responsible teachers: Olli Pyrhönen (olli.pyrhonen(at), Niko Nevaranta (niko.nevaranta(at)

LUT University: Software and systems architecture (CT30A8912), 6 ECTS. 2.9.–13.12.2019.

Max amount of FITech students: 20

Course level: Advanced

More information coming soon!

Responsible teacher: Kari Smolander (kari.smolander(at)

LUT University: Automation (BL40A2810), 6 ECTS. 2.9.–13.12.2019.

Course level: Advanced

Prerequisites: Basics of programming.

The course focuses on the following topics:

  • IEC61131-3 programming languages, feedback devices, automation hardware and software
  • Fieldbuses
  • Basics of servo drive dynamics, utilising Simulink models in PLC systems
  • C/C++ languages in PLC systems
  • HMI, OPC, IoT in automation
  • Introduction to safety in automation.

Upon completion of the course the student will be able to:

  1. apply automation and digital control theory to practical implementations
  2. use the analog and digital communication techniques applied to automation
  3. apply fieldbuses
  4. formulate a dynamic system model of motor drives
  5. simulate servo motor driven mechatronic systems
  6. construct controllers and models of dynamic systems using IEC61131-3 and C programming languages
  7. select a proper controller structure
  8. work in a group solving automation and control problems.

These skills are imporant in industry as intelligent automation systems are needed in varius applications.

More information in LUT University’s WebOodi.

Responsible teacher: Tuomo Lindh (tuomo.lindh(at)

LUT University: Software maintenance, 6 ECTS. 2.9.–13.12.2019.

Max amount of FITech students: 20

Course level: Advanced

More information coming soon!

Responsible teacher: Jussi Kasurinen (jussi.kasurinen(at)

Further information

University of Oulu

Coordinator Riku Hietaniemi (riku.hietaniemi(at)

LUT University

Niko Nevaranta (niko.nevaranta(at)

Aalto University

Minna Kivihalme (minna.kivihalme(at)

Type of study unit

Set of courses

Teaching semester


Host university

Aalto University, University of Oulu, LUT University

Open for degree student


Open for non-student


Level of studies

Basic and advanced

Place of contact learning



English and Finnish

Go back to all Courses & Programs

Go back