CEC Rust for Embedded Developers
ApplyAt a glance
Qualification:
Confirmation of course (2 ECTS)
Start:
21.09.2026
Duration:
3 months, more details about the implementation
Costs:
CHF 2'600.00
Location:
ZHAW, Building MT, Technopark, Winterthur, Trakt A, Technoparkstrasse 2, 8401 Winterthur (Show on Google Maps)
Language of instruction:
- German, English
- Language of instruction: German / Documents: English
Objectives and content
Target audience
This course is aimed at software developers who:
- Work in the fields of embedded systems, system programming or C/C++
- Work with safety‐critical and/or performance‐critical systems
- Have identified potential use cases for Rust and want to evaluate the language
Objectives
Participants gain both basic theoretical knowledge and practical skills in the following areas:
Key aspects of the language
- Basics (types, control flow, functions)
- Storage management (ownership)
- Object-oriented programming (polymorphism, dynamic dispatch)
- Functional programming (algebraic data structures, closures, iterators)
- Advanced techniques (concurrency, asynchronous programming)
Embedded-specific skills
- Rust close to the hardware
- Integrating Rust with existing C code
- The ecosystem of embedded-specific libraries
- Relevant programming models (blocking, interrupt-driven, async)
Secondary aspects of a programming language essential for productivity
- Project structure & Tooling
- Use of libraries
- Continuous integration & delivery
Content
The CEC Rust for Embedded Developers consists of seven teaching units comprising six lessons each. During the first two days of the course, participants familiarise themselves with the basics of the Rust language (Language Basics). Over the next two course days, students learn about the advanced features that distinguish Rust as a modern programming language (Advanced Features). During the last three days of the course, embedded-specific topics are covered, and the practical projects are implemented. On the last day of the course, participants take a written exam.
Block 1 (six lessons)
Content
- Types
- Control flow
- Functions
- Storage management
Learning objectives
- Participants can write simple Rust programs with universal programming constructs.
- Participants understand the Rust storage management system.
Block 2 (six lessons)
Content
- Algebraic data types
- Methods
- Project structure
- Error processing
Learning objectives
- Participants can develop idiomatic data models.
- Participants can apply idiomatic error processing.
Block 3 (six lessons)
Content
- Lifetimes
- Closures
- Iterators
Learning objectives
- Participants can apply polymorphism.
- Participants can use APIs with anonymous functions.
- Participants understand the concept of a lifetime annotation.
Block 4 (six lessons)
Content
- Smart pointers
- Concurrency
- Static & dynamic dispatch
- Asynchronous programming
Learning objectives
- Participants understand secure concurrency and know the most important smart pointers.
- Participants can apply dynamic dispatch.
- Participants understand asynchronous programming (async/await).
Block 5 (six lessons)
Content
- Libraries
- Documentation
- CI/CD
- Introduction to embedded Rust
- Project start
Learning objectives
- Participants can find, evaluate and utilise Rust libraries and use their documentation.
- Participants can set up a CI/CD pipeline for a Rust project.
- Participants can program a microcontroller with Rust.
Block 6 (six lessions)
Content
- Rust close to hardware
- C FFI
- Continuing work on projects
Learning objectives
- Participants understand the “unsafe” keyword and how to minimize the risk of using it.
- Participants can integrate new Rust code with existing C code.
Block 7 (six lessons)
Content
- Written exam
- Project completion
Learning objectives
- Participants can complete a production-ready Rust project.
Combined with about three hours of self-study for pre- and post-processing (6 x 3 hours), this results in a total of 60 hours (2 ECTS).
Methodology
The course consists of teaching units, practical exercises, and elements of e-learning and self-study (pre-processing and post-processing). The final software project, in which a specific case study is developed, can be implemented individually or in groups.
Assessment
Course participation and successful completion of the performance assessment will be certified with a microcredential worth 2 ECTS credits. If you participate in the course without taking the performance assessment, you will receive a course certificate without ECTS credits.
More details about the implementation
Part-time classes take place every other week on Monday afternoons from 1 p.m. to 7 p.m. (six lessons). The course takes three months to complete.
Dates 2026:
21.09.2026
28.09.2026
19.10.2026
26.10.2026
02.11.2026
16.11.2026
30.11.2026
Enquiries and contact
-
Remo Senekowitsch
Institute of Embedded Systems (InES)+41 (0)77 404 85 86
senk@zhaw.ch -
ZHAW School of Engineering
Administration Weiterbildung
Technikumstrasse 9
8401 Winterthur+41 (0)58 934 74 28
weiterbildung.engineering@zhaw.ch
Provider
School of Engineering
Information events
Application
Admission requirements
Admission to this continuing education course requires a university degree (university, university of applied sciences, ETH, HTL, HWV). However, candidates with practical experience or similar professional skills may also be accepted if their ability to participate can be demonstrated by other means.
Basic knowledge of programming and in particular an understanding of Stack, Heap and manual storage management are required.
General terms and conditions
General terms and conditions for continuing education courses
Starting dates and application
| Start | Application deadline | Registration link |
|---|---|---|
| 21.09.2026 | 21.08.2026 | Application |