I040 – Programming in Rust

Module
Programming in Rust
Programmieren in Rust
Module number
I040
Version: 1
Faculty
Informatics/Mathematics
Level
Bachelor/Diplom
Duration
1 semester
Turnus
Summer semester
Module supervisor

Prof. Dr.-Ing. habil. Dirk Müller
dirk.mueller(at)htw-dresden.de

Lecturers

Prof. Dr.-Ing. Robert Baumgartl
robert.baumgartl(at)htw-dresden.de


Prof. Dr.-Ing. habil. Dirk Müller
dirk.mueller(at)htw-dresden.de

Teaching language(s)

German

ECTS credits

4.00 Credits

Workload

120 hours

Courses

4.00 SWS (2.00 SWS Lecture | 2.00 SWS Internship)

Self-study time

60.00 hours

Pre-requisite(s) for the examination
Not specified
Examination(s)

Oral examination
Examination duration: 20 min | Weighting: 100 %

Teaching form

2/0/2 (Vorlesung und Praktikum)

Media type
  • Folien
  • Praktikumsblätter
Teaching content / structure
  • Einführung (Installation, Geschichte, erstes Programm)
  • Paketmanager und Build-/Release-Management
  • Typen, Kontrollfluss (Schleifen, Alternativen), Funktionen
  • Speichersicherheit durch Ownership
  • Fehlerbehandlung in Rust
  • Pattern Matching
  • Nebenläufigkeit
  • Management größerer Projekte: Crates, Packages, Module
  • Elemente der funktionalen und objektorientierten Programmierung
Qualification objectives
  • Beherrschung der Syntax und Semantik der Programmiersprache Rust sowie der wichtigsten darin verankerten Programmierparadigmen.
  • Die Teilnehmer sollen nach erfolgreichem Abschluss in der Lage sein, kleinere Projekte in Rust selbstständig zu entwerfen, zu implementieren und zu unterhalten.
Special admission requirement(s)
Not specified
Recommended prerequisites

Programmiersprache C

Continuation options
Not specified
Literature
  • Steve Klabnik, Carol Nichols: "The Rust Programming Language". 2nd ed., No Starch Press, 2023
  • Amann, M., Baumann, J. & Koch, M.: "Rust: Konzepte und Praxis für die sichere Anwendungsentwicklung", dpunkt.verlag, 2022
  • Mara Bos: „Rust Atomics and Locks: Low-level Concurrency in Practice“, O'Reilly Media, 2023
Notes
Not specified