Hauptinhalt
Topinformationen
Programmieren in Rust
Allgemeine Informationen
- Veranstaltungsart
- Vorlesung und Übung
- Semester
- WiSe 2016/17
- ECTS-Punkte
- 6,00
- Veranstaltungsnummer
- 6.622
- Voraussetzungen
- Informatik A bzw. grundlegende Programmiererfahrung
- Details
- Link zur Veranstaltung in StudIP
Tutor*innen
Beschreibung
Rust ist eine moderne und sichere Systemprogrammiersprache, die von Mozilla gesponsert wird. Ohne Nutzung eines Garbage Collectors verhindert der Rust-Compiler kritische Speicherfehler, wie man sie aus beispielsweise C kennt, und macht Sicherheitslücken, wie den Heartbleed-Bug, unmöglich. Dasselbe System unterbindet jedoch auch Race Conditions, die in anderen Sprachen bei der Nutzung mehrerer Threads auftreten können.
Da dies komplett zur Kompilierzeit sichergestellt wird, gibt es keinen Geschwindigkeitsverlust zur Laufzeit. Rust vereint somit extreme Geschwindigkeit (vergleichbar mit C++ und C) und Speichersicherheit - zwei Features, die bisher noch keine andere Programmiersprache vereint hat. Doch Rust borgt sich Ideen nicht nur aus der Systemprogrammierung, sondern auch von modernen Sprachen (wie Ruby) und mathematisch sauber definierten Sprachen (wie Haskell). Entsprechend lassen sich die meisten Programme sehr elegant und kompakt formulieren.
In dieser Veranstaltung lernen die Teilnehmer die Programmiersprache Rust intensiv von Grund auf und vertiefen das Gelernte anhand diverser Programmieraufgaben. Um jedoch Rust in allen Bereichen meistern zu können, werden in dieser Veranstaltung noch folgende Inhalte behandelt:
- Systemprogrammierung: Speicherlayout, Pointer, Heap vs. Stack, ...
- Theoretische Aspekte: Algebraische Datentypen, ...
- Geschwindigkeitsoptimierung: Speicherhierarchie, Compiler-Optimierungen, ...
- Git und GitHub
Es gibt wöchentliche Übungszettel mit Programmieraufgaben, deren Bearbeitung zum Bestehen des Kurses notwendig sind. Übungsaufgaben werden in Zweierteam gelöst; n-1 Zettel müssen mit mindestens 50% bestanden werden.
Weitere Informationen: https://github.com/LukasKalbertodt/programmieren-in-rust
Studienbereiche
- Informatik > Bachelor Informatik
- Informatik > Master Lehramt an berufsbildenden Schulen mit den beruflichen Fachrichtungen Elektrotechnik und Metalltechnik
- Informatik > Vorlesungen
- Informatik > Zwei-Fächer-Bachelor
Modulzuordnungen der Veranstaltung
- 2-Fächer-Bachelor Professionalisierung > INF-E6 - Informatik Ergänzung 6