CEC Rust for Embedded Developers
ApplyAt a glance
Qualification:
Confirmation of course (2 ECTS)
Start:
17.02.2025
Duration:
3 months, more details about the implementation
Costs:
CHF 2'100.00
Location:
ZHAW, Building MT, Technopark, Winterthur, Trakt A, Technoparkstrasse 2, 8401 Winterthur (Show on Google Maps)
Language of instruction:
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
- Fundamentals (types, control flow, functions)
- Memory management (ownership)
- Object-oriented programming (polymorphism, dynamic dispatch)
- Functional programming (algebraic data structures, closures, iterators)
- Advanced techniques (concurrency, asynchronous programming)
- 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 teaches the fundamentals to be able to work productively with the language. The focus is placed on a comprehensive understanding of the language, regardless of specific use cases. Further topics such as Rust-specific libraries and continuous integration are also covered. At the end of the course, participants implement a production-ready project including continuous delivery. They specialise in a field of application they choose themselves, such as embedded systems.
The CEC Rust for Embedded Developers consists of six 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 days of the course, participants receive an introduction to the key development tools (Development Tooling) in order to implement their own production-ready software project (Production-Ready Project).
Block 1 (six lessons)
Content
- Types
- Control flow
- Functions
- Memory management
Learning objectives
- Participants can write simple Rust programs with universal programming constructs.
- Participants understand the Rust Memory management system.
Block 2 (six lessons)
Content
- Algebraic data types
- Methods
- Project structure
- Error handling
Learning objectives
- Participants can develop idiomatic data models.
- Participants can apply idiomatic error handling.
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
- Tooling
- CI/CD
- Project start
Learning objectives
- Participants can find, evaluate and utilise Rust libraries and use their documentation.
- Participants are familiar with the key development tools.
- Participants can set up a CI/CD pipeline for a Rust project.
Block 6 (six lessons)
Content
- Project completion
Learning objectives
- Participants can complete a production-ready Rust project right up to delivery.
Combined with two hours of self-study for preparation and another two for review (6 x 4 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 (preparation and review). The final software project, in which a specific case study is developed, can be implemented individually or in groups.
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. Participants receive their individual timetables at least one month before the course starts. Time off during the course is determined by the school holidays of the city of Winterthur.
Dates 2025: 17.02. / 03.03. / 17.03. / 31.03. / 14.04. / 05.05.2025
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.
Information for applicants
We do not maintain waiting lists and do not offer spot reservations.
If a spot frees up during the preceding course, we will take into account the order in which applications were received.
General terms and conditions
Start | Application deadline | Registration link |
---|---|---|
17.02.2025 | 17.01.2025 | Application |