Eingabe löschen

Kopfbereich

Hauptnavigation

School of Engineering

WBK Rust for Embedded Developers

Rust ist eine systemnahe Programmiersprache, die vom Mozilla Research Team entwickelt wurde. Sie legt besonderen Wert auf Sicherheit, Geschwindigkeit und Parallelität und gewinnt zunehmend an Bedeutung. Rust kombiniert hohe Performance mit umfassender Sicherheit durch ein starkes Typensystem und fortschrittliches Tooling. Innovative Konzepte wie Ownership, das Vermeiden von Nullzeigern und das Verhindern von Data Races helfen, typische Programmierfehler und Sicherheitslücken zu vermeiden.

Anmelden

Favoriten vergleichen

Auf einen Blick

Abschluss:

Kursbestätigung (2 ECTS)

Start:

17.02.2025

Dauer:

Kosten:

CHF 2'100.00

Durchführungsort: 

ZHAW, Gebäude MT, Technopark, Winterthur, Trakt A, Technoparkstrasse 2, 8401 Winterthur  (Auf Google Maps anzeigen)

Unterrichtssprache:

  • Deutsch, Englisch
  • Unterrichtssprache: Deutsch / Unterlagen: Englisch

Ziele und Inhalt

Zielpublikum

Dieser Kurs richtet sich an Softwareentwickler, die

  • in den Bereichen Embedded Systems, Systemprogrammierung oder C/C++ arbeiten.
  • mit Sicherheits‐ und/oder Performance‐kritischen Systemen arbeiten.
  • potenzielle Anwendungsfälle für Rust identifiziert haben und die Sprache evaluieren möchten. 

Ziele

Die Teilnehmenden erwerben sowohl theoretische Grundlagen als auch praktische Fähigkeiten in folgenden Bereichen: 

  • Zentrale Aspekte der Sprache
    • Grundlagen (Typen, Kontrollfluss, Funktionen)
    • Speicherverwaltung (Ownership)
    • Objektorientierte Programmierung (Polymorphismus, dynamic Dispatch)
    • Funktionelle Programmierung (algebraische Datenstrukturen, Closures, Iterators)
    • Fortgeschrittene Techniken (Concurrency, asynchrone Programmierung) 
       
  • Für Produktivität unerlässliche Nebenaspekte einer Programmiersprache
    • Projektstruktur
    • Tooling
    • Verwendung von Bibliotheken
    • Continuous Integration & Delivery 

Inhalt

Der WBK Rust for Embedded Developers vermittelt die Grundlagen, um mit der Sprache produktiv arbeiten zu können. Der Fokus liegt auf einem umfangreichen Verständnis der Sprache, unabhängig von spezifischen Anwendungsfällen. Auch weiterführende Themen wie Rust spezifische Bibliotheken und Continuous Integration werden behandelt. Die Teilnehmenden implementieren zum Abschluss des Kurses ein produktionsreifes Projekt inklusive Continuous Delivery. Dabei spezialisieren sie sich auf einen selbstgewählten Anwendungsbereich, wie zum Beispiel Embedded Systems. 

Der WBK Rust for Embedded Developers besteht aus 6 Unterrichtseinheiten zu je 6 Lektionen. An den ersten zwei Unterrichtstagen lernen die Teilnehmenden die Grundlagen der Sprache Rust kennen (Language Basics). An den folgenden zwei Unterrichtstagen werden die fortgeschrittenen Möglichkeiten vermittelt, welche Rust als moderne Programmiersprache auszeichnen (Advanced Features). An den letzten beiden Unterrichtstagen erhalten die Teilnehmenden eine Einführung in die wichtigsten Entwicklungswerkzeuge (Development Tooling), um abschliessend ein eigenes, produktionsreifes Softwareprojekt umzusetzen (Production-Ready Project).

Block 1 (6 Lektionen)

Inhalt 

  • Typen
  • Kontrollfluss
  • Funktionen
  • Speicherverwaltung

Lernziele

  • Die Teilnehmenden können einfache Rust-Programme mit universellen Programmierkonstrukten schreiben.
  • Die Teilnehmenden verstehen das Speicherverwaltungssystem von Rust.

Block 2 (6 Lektionen)

Inhalt

  • Algebraische Datentypen
  • Methoden
  • Projektstruktur
  • Fehlerverarbeitung

Lernziele

  • Die Teilnehmenden können idiomatische Datenmodelle entwickeln.
  • Die Teilnehmenden können idiomatische Fehlerverarbeitung anwenden.

Block 3 (6 Lektionen)

Inhalt

  • Lifetimes
  • Closures
  • Iterators

Lernziele

  • Die Teilnehmenden können Polymorphismus anwenden.
  • Die Teilnehmenden können APIs mit anonymen Funktionen verwenden.
  • Die Teilnehmenden verstehen das Konzept einer Lifetime-Annotation.

Block 4 (6 Lektionen)

Inhalt

  • Smart pointers
  • Concurrency
  • Static & dynamic Dispatch
  • asynchrone Programmierung

Lernziele

  • Die Teilnehmenden verstehen sichere Concurrency und kennen die wichtigsten Smart-Pointer.
  • Die Teilnehmenden können dynamic Dispatch anwenden.
  • Die Teilnehmenden verstehen asynchrone Programmierung (async/await).

Block 5 (6 Lektionen)

Inhalt

  • Bibliotheken
  • Dokumentation
  • Tooling
  • CI/CD
  • Projektanfang

Lernziele

  • Die Teilnehmenden können Rust-Bibliotheken finden, evaluieren, verwenden und deren Dokumentation nutzen.
  • Die Teilnehmenden sind mit den wichtigsten Entwicklungswerkzeugen vertraut.
  • Die Teilnehmenden können eine CI/CD-Pipeline für ein Rust-Projekt aufsetzen.

Block 6 (6 Lektionen)

Inhalt

  • Projektabschluss

Lernziele

  • Die Teilnehmenden können ein produktionsreifes Rust-Projekt bis zur Auslieferung durchführen.

Zusammen mit jeweils zwei Stunden Selbststudium für Vor- und Nachbearbeitung (6 x 4 Stunden) ergibt sich ein Gesamtaufwand von 60 Stunden (2 ECTS).

Methodik

Der Kurs besteht aus Unterrichtseinheiten, praxisorientierten Übungen, Elementen von E-Learning und Selbststudium (Vor- und Nachbereitung). Das abschliessende Software‐Projekt, bei welchem ein spezifisches Fallbeispiel erarbeitet wird, kann sowohl individuell als auch in Gruppen implementiert werden. 

Mehr Details zur Durchführung

Der Unterricht findet berufsbegleitend jede zweite Woche jeweils am Montagnachmittag von 13-19 Uhr (6 Lektionen) statt. Der Kurs erstreckt sich über 3 Monate. 
Den individuellen Stundenplan erhalten die Teilnehmenden spätestens einen Monat vor Start. Die schulfreie Zeit richtet sich nach den Schulferien der Stadt Winterthur.

Kursdaten 2025: 17.02. / 03.03. / 17.03. / 31.03. / 14.04. / 05.05.2025

Beratung und Kontakt

Veranstalter

Anmeldung

Zulassungskriterien

Die Zulassung zu diesem Weiterbildungskurs setzt grundsätzlich einen Hochschulabschluss (Fachhochschule, HTL, HWV, Uni, ETH) voraus. Es können aber auch Praktiker:innen mit vergleichbarer beruflicher Kompetenz zugelassen werden, wenn sich die Befähigung zur Teilnahme aus einem anderen Nachweis ergibt. 

Grundkenntnisse der Programmierung und insbesondere ein Verständnis von Stack, Heap und manueller Speicherverwaltung werden vorausgesetzt. 

Anmeldeinformationen

Wir führen keine Wartelisten und bieten keine Platzreservationen an.

Sollte bei der vorangehenden Durchführung ein Platz frei werden, berücksichtigen wir die Reihenfolge gemäss Anmeldeeingang.

Startdaten und Anmeldung

Start Anmeldeschluss Anmeldelink
17.02.2025 17.01.2025 Anmeldung