FB6 Mathematik/Informatik/Physik

Institut für Informatik


Navigation und Suche der Universität Osnabrück


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

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