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.

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 if not mentioned otherwise.

Software engineering courses:

= Contact learning
= Online learning
= Blended learning (online & contact learning)
Tampereen yliopisto: Sulautetut järjestelmät (PLA-32311), 5 ECTS. 26.8.–22.12.2019.

Hae viimeistään 14.8.2019

Opetuskieli: suomi

Esitietovaatimukset: Ohjelmointiosaaminen jollain ohjelmointikielellä.

Kurssilla tutustutaan sulautettujen järjestelmien perusteknologioihin esimerkkien, harjoitusten ja projektien kautta. Lisäksi tutustutaan mikrokontrollerien tekniikkaan, käyttöjärjestelmiin ja niiden ohjelmointiin sekä antureiden ja lisäosien, kuten verkkoliitäntöjen, perustekniikkaan ja miten niitä käytetään mikrokontrollerien kanssa yhdessä.

Kurssin jälkeen opiskelijalla on tietämys toteuttaa mikrokontrolleria hyväksikäyttävä itsenäisesti toimiva laite.

Kurssin suoritusvaatimukset:

  • Oppimispäiväkirja
  • Harjoitustehtävät
  • Rakennusprojekti

Kurssilla ei ole tenttiä. Osallistuminen viikoittaiseen tilannepalaveriin suositeltavaa, mutta hyvällä oppimispäiväkirjalla tämän voi korvata.

Vastuuopettaja: Mika Saari (mika.saari(at)tuni.fi)

Lisätietoja Tampereen yliopiston opinto-oppaasta.

Aalto University: Introduction to DevOps (CS-EJ4101),1 ECTS. 28.10.–13.12.2019.

Apply before Oct 21, 2019

Course level: Introduction, no prerequisites.

Language: English

Course content:

  • Continuous practices and DevOps in software engineering
  • Role of cloud technologies in modern software development
  • Infrastructure as code

After completing the course, you

  • will be able to describe the main aspects of the DevOps software development practices
  • are aware of the most important technologies and software tools in this context
  • can apply continuous deployment in a simple use case.

Responsible teacher: Di Francesco Mario (mario.di.francesco(at)aalto.fi)

Aalto University: Mobile application development with Android (CS-EJ4102), 2 ECTS. 9.9.–25.10.2019.

Apply before Sep 2, 2019

Course level: Basic

Language: English

Prerequisites: Basics of Java programming language.

Course content:

  • Mobile devices: their main characteristics and implications on software development
  • Overview of the Android platform
  • Principles of mobile computing
  • Design and implementation of mobile applications for Android

After completing the course, you will be able to

  • recognise the peculiar features of mobile devices as a software development platform
  • describe their impact on application development
  • explain the concepts of mobile and ubiquitous computing
  • write a mobile application for Android.

For Aalto students: The content of this course overlaps with CS-E4100 Mobile Cloud Computing. Both courses cannot be included into degrees.

Responsible teacher: Di Francesco Mario (mario.di.francesco(at)aalto.fi)

Turun yliopisto: Ohjelmistotuotannon peruskurssi (DTEK1201), 4 ECTS. 2.9.–27.10.2019.

Hae viimeistään 18.8.2019

Opetuskieli: suomi

Kurssi perehdyttää ohjelmistotuotannon yleisperiaatteisiin sekä sen tärkeimpiin osa-alueisiin. Kurssin keskeistä sisältöä ovat ohjelmistotuotannon elinkaarimalli, elinkaaren eri työvaiheet (vaatimusanalyysi, suunnittelu, toteutus, ylläpito) sekä näitä tukevat toiminnot. Kurssilla käytetään UML-kuvauskielen käyttöä olioparadigman mukaisen ohjelmistohankkeen eri työvaiheissa.

Ohjelmistotuotanto (software engineering) käsittää monimutkaisten ohjelmistojärjestelmien suunnittelun, toteuttamisen ja ylläpidon liiketoimintaorganisaatiossa. Tavoitteena on, että opiskelija ymmärtää ohjelmistokehitysprosessin kokonaisuutena sekä tuntee ohjelmistotuotannon erityispiirteet ja haasteet insinöörialana. Lisäksi opiskelija oppii ohjelmistohankkeen keskeisten työvaiheiden sisällön ja merkityksen sekä projektityöskentelyn perusteet ohjelmistohankkeessa.

Vastuuopettajat: Tuomas Mäkilä (tuomas.makila(at)utu.fi), Tapani Joelsson (tapani.joelsson(at)utu.fi)

Lisätietoa Turun yliopiston opinto-oppaassa.

LUT University: Digital signal processing (BL40A0401), 4 ECTS. 2.9.–13.12.2019.

Apply before Aug 21, 2019

The course is not available for degree students!

Max amount of FITech students: 20

Course level: Basic

Language: Finnish

Prerequisites: Basics of complex arithmetic, basics of series calculation, theory of continuous-time signals.

Signal processing skills are important when practical industrial applications are considered.

Course content:

  • Principles of sampling
  • Discrete-time signals and systems
  • z-transform and its application to the analysis of linear time-variant systems
  • Frequency analysis of signals and systems
  • Discrete Fourier transform (DFT)

The course acquaints the student with fundamentals of digital signal processing. Upon completion of the course the student will be able to:

  1. analyse discrete-time systems in time, z- and frequency domain
  2. design simple digital filters by using pole-zero placement
  3. apply the discrete Fourier transform (DFT) to signal analysis and explain how it is related to other transform methods.

Responsible teacher: Antti Kosonen (antti.kosonen(at)lut.fi)

More info >>

Aalto University: Software engineering (CS-C3150), 5 ECTS. 9.9.–5.12.2019.

Apply before Sep 2, 2019

Max amount of FITech students: 100

Course level: Basic

Language: English

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 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 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.

Students can 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).

Students are also 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)aalto.fi)

Aalto University: Cloud systems and technologies (CS-EJ4103), 2 ECTS. 28.10.–13.12.2019.

Apply before Oct 21, 2019

Course level: Basic

Language: English

Prerequisites: Familiarity with operating system concepts.

Course content:

  • Distributed applications and services
  • Cloud computing and virtualisation
  • Managing and using resources offered by cloud service providers
  • Application scenarios and selected use cases

After completing the course, you will be able to

  • describe the structure of modern distributed applications
  • compare different cloud software delivery models
  • distinguish between different forms of virtualisation
  • manage the resources offered by cloud computing platforms.

For Aalto students: The content of this course overlaps with CS-E4100 Mobile Cloud Computing. Both courses cannot be included into degrees.

Responsible teacher: Di Francesco Mario (mario.di.francesco(at)aalto.fi)

Oulun yliopisto: Ohjelmistotekniikka (521457A), 5 ECTS. 6.1.–6.3.2020.

Apply before Dec 16, 2019

Max amount of FITech students: 30

Course level: Basic

Language: Finnish

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

During 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 and 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.

Responsible teacher: Pekka Pietikäinen (pekka.pietikainen(at)oulu.fi)
Other teachers: Markus Harju (markus.harju(at)oulu.fi), Juha Röning (juha.roning(at)oulu.fi)

LUT University: Introduction to embedded systems (BL40A1811), 5 ECTS. 7.1.–17.4.2020.

Apply before Dec 16, 2019

The course is not available for degree students!

Max amount of FITech students: 10

Course level: Basic

Language: English, partly in Finnish

Prerequisites: Basics of programming in C.

The course is an introduction to embedded systems.

Upon completion of the course the student will be able to

  1. identify different microprocessor types and peripheral components in embedded systems
  2. describe the operation principles of an embedded system and its peripheral components
  3. program and test applications to an embedded system by using C language.

Course content: Architecture of a microprocessor, instruction set and operation, microcontrollers, memories, peripherals, embedded system design, programming and development of applications, embedded system design examples.

Responsible teacher: Jero Ahola (jero.ahola(at)lut.fi)

More info >>

LUT University: Embedded system programming (BL40A1101), 5 ECTS. 2.9.–13.12.2019.

Apply before Aug 21, 2019

Max amount of FITech adult learners: 25

Max amount of degree students from other universities: 5

Course level: Advanced

Language: English

Prerequisities: Basics of programming in C-language.

Course content:

  • Design tools for embedded system and C-language in embedded system programming
  • Typical data and programme structures in real-time applications

The course focuses also on the utilisation of a micro controller environment (registers, timers, buses, A/D conversion etc.).

Upon completion of the course you will be able to

  1. apply C-language and its structures to embedded system programming
  2. form complex data types such as structures, unions and buffers and use these in order to maintain information of different entities (e.g. processing units)
  3. control the registers of a micro controller using C-language
  4. use different PUs of a micro controller
  5. take a real-time operation system into use.

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

More info >>

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

Apply before Aug 21, 2019

Max amount of FITech students: 20

Course level: Advanced

Language: English

Prerequisites: Programming skills and experience in internet application development.

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.

The course provides understanding of the role of architecture in the development of large software and information systems.

After the course, the student

  • has the basic skills of how to design and describe architecture
  • can identify architecturally significant requirements and evaluate designed architectures with requirements
  • understands the challenges of modern distributed architectures and problems of integration.

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

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

Apply before Aug 21, 2019

Max amount of FITech adult learners: 15

Max amount of degree students from other universities: 5

Course level: Advanced

Language: English

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 important in industry as intelligent automation systems are needed in various applications.

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

More info >>

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

Apply before Aug 21, 2019

Max amount of FITech students: 20

Course level: Advanced

Language: English

Prerequisites: Programming skills on some modern programming language (C++, Java, Python etc.), 1–2+ courses (12+ study credits) on software engineering, software testing or similar topics.

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 study a variety of techniques, tools and methodologies to help building software systems that are easier to understand, maintain, reuse and evolve.

Topics include, but are not limited to:

  • reverse engineering
  • re-engineering
  • test automation
  • software product line thinking
  • code smells
  • measuring quality

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

Aalto University: WWW applications (CS-E4460), 5 ECTS. 10.9.–12.11.2019.

Apply before Sep 3, 2019

Max amount of FITech students: 20

Course level: Advanced

Language: English

Prerequisites: Basic knowledge of web application development.

The course deals with emerging/experimental web technologies. The actual topics addressed vary from year to year. In previous years, both the presentation and project work are combined together as a single project which is done in groups of three students.

The topics include most important HTML5 technologies, such as Canvas, WebGL, WebSockets, Web Workers, Geolocation, local storage, and CORS.

Students will learn how to search scientific/technical information and effectively communicate their findings to the public in the form of a written report and a short presentation. In addition, they will learn how to work as part of a group that plans, schedules, executes, and documents a small web development project.

More information in Aalto’s WebOodi.

Responsible teacher: Petri Vuorimaa (petri.vuorimaa(at)aalto.fi)

LUT University: Embedded system design (BL40A1601), 6 ECTS. 7.1.–17.4.2020.

Apply before Dec 16, 2019

Max amount of FITech adult learners: 10

Max amount of degree students from other universities: 5

Course level: Advanced

Language: English

Prerequisites: Basics of digital design and digital electronics, basics of programming.

Course content:

  • Circuit design of digital electronics with programmable logic circuits
  • Principles of digital circuit design
  • System level synthesis
  • Hardware design languages

Upon completion of the course you will be able to

  • program with VHDL hardware design language
  • design and implement digital systems by using programmable logic circuits.

Responsible teacher: Juhamatti Korhonen (juhamatti.korhonen(at)lut.fi)

More info >> 

Further information:

University of Oulu

Riku Hietaniemi (riku.hietaniemi(at)oulu.fi)

LUT University

Uolevi Nikula (uolevi.nikula(at)lut.fi)

Aalto University

Minna Kivihalme (minna.kivihalme(at)aalto.fi)

University of Turku

Timo Vasankari (timo.vasankari(at)utu.fi)

Tampere University

Teemu Rauhala (teemu.rauhala(at)tuni.fi)

Contact person, applications:

Pilvi Lempiäinen (pilvi.lempiainen(at)fitech.io)

Type of study unit

Set of courses

Teaching semester

2019–2020

Host university

Aalto University, University of Oulu, LUT University, University of Turku, Tampere University

Open for degree student

Yes

Open for non-student

Yes

Level of studies

Basic and advanced

Teaching methods

Online or contact learning

Place of contact learning

Espoo

Language

English & Finnish

Go back to all Courses & Programs

Go back