Delete search term
To content

Main navigation

School of Engineering

CEC Rust for Embedded Developers

Rust is a system-based programming language developed by the Mozilla Research Team. It attaches particular importance to security, speed and parallelism, and is becoming increasingly significant. Rust combines high performance with comprehensive security through a powerful type system and advanced tooling. Innovative concepts such as ownership, avoidance of null pointers and prevention of data races help to avoid typical programming errors and security gaps. The CEC Rust for Embedded Developers teaches the skills necessary to work productively with Rust, while emphasizing aspects relevant to embedded systems. The course also covers further topics, like Rust-specific libraries and continuous integration. Practical projects, like programming an RP2040-based LED-matrix, strengthen the knowledge through experience.

Apply

Compare favorites

At a glance

Qualification:

Confirmation of course (2 ECTS)

Start:

21.09.2026

Duration:

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

Provider

School of Engineering

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.

Starting dates and application

Start Application deadline Registration link
21.09.2026 21.08.2026 Application