Software Engineering for Industrial Automation

Every time you walk into a building, flip a light switch, or step onto a factory floor, you're surrounded by software — most of it invisible, yet safety-critical and contributing to our wide choice of products on the market. This course explores the domain-specifics of software engineering for industrial automation: a fascinating and lesser-known corner of software engineering.

We'll explore what makes software in automation systems uniquely challenging — systems that must run reliably for decades, close collaboration across mechanical, electrical, and software disciplines, and the high variability of automation systems - often even one-of-a-kind-systems. Programming a production plant requires deep knowledge of the system itself, so typically domain experts write the code — not software engineers. Our role is to support them: building tools tailored to their needs, and adapting software engineering best practices to the realities of industrial automation. This course provides the overview of  the programming languages, techniques, and tools that domain experts use. After this course, you will have a good understanding of the domain.


No background in mechanical, electrical, or systems engineering is required — this course is built for software engineering students. Basic programming skills will be required to get the most out of this course. Furthermore, software engineering knowledge as taught in the BSc will be helpful.

Learning Goals

 

Students

  • can differentiate different types of automation software and describe their programming models
  • know important concepts of industrial automation systems
  • understand the practical challenges of software engineering for industrial automation
  • can explain software engineering methodologies for industrial automation projects
  • can develop, modify, and debug small examples for PLC programs
  • can explain the execution models of low-level automation software
  • can describe key software architecture patterns 
Termine WiSe 25/26

Course Dates

Weekly
Monday       16-18 O28-H21
Wednesday 16-18 O28-1002