Einführung in die Systemprogrammierung

Moderne Programmiersprachen wie Java, Haskell, Python, oder Scala machen es Programmierern einfach, mächtige Algorithmen und Systeme in kürzester Zeit in Programmen zu implementieren. Allerdings ist es nicht immer einfach, diese Programme effizient zu gestalten: kleinste Detailänderungen an einer Implementierung können dramatische Auswirkungen auf die Laufzeit oder den Speicherverbrauch haben.

In dieser Veranstaltung betrachten wir daher die Ursprünge, aus denen diese Sprachen erwachsen sind, um zu verstehen, warum die Fundamente dieser Sprachen (die sogenannten Laufzeitsysteme) ihre heutige Form angenommen haben. Dabei untersuchen wir zunächst die Abläufe im Inneren des Prozessors und wenden uns dann den Abstraktionsschichten zu, die sich im Laufe der Zeit als Substrate von Forschung und Systemdesign in Computersystemen angesammelt haben.

Ziel der Veranstaltungen ist es, den Teilnehmern ein Verständnis für die inneren Abläufe im Rechner zu geben und eine Intuition dafür zu vermitteln, was alles passiert oder passieren kann, wenn ein Programm eine bestimmte Aktion ausführt.

Neuigkeiten

Anmeldung

Aus technischen Gründen müssen Sie sich an zwei Stellen anmelden: Bitte beachten Sie: Wir können ihnen zur Zeit keinen Platz in den Übungen garantieren. Falls sich nötige Änderungen ergeben, werden wir Sie kontaktieren. Wir werden vor Veranstaltungsbeginn eine Liste der bestätigten Übungsteilnehmer veröffentlichen und am 14. April um 19:00 aktualisieren.

Administrativa

Dozent:Prof. Dr. Christoph Reichenbach (reichenbach at cs.uni-frankfurt.de)
Büro:210a, Robert-Mayer-Str. 10
Sprechstunden:Freitags, 13:00–15:00 oder nach Vereinbarung
Vorlesung:Hörsaal 12/Jügelhaus, Dienstags 14:00 (c.t.)–16:00
Klausur:Hörsaal V am 11.08, 10:00-12:00

Vorlesungen

Wir verwenden einen Conversational/Flipped Classroom: Ab der 2. Vorlesungswoche werden die Vorlesungen im Voraus ins Netz gestellt. Wir stellen das Konzept in der ersten Vorlesung vor.

Übungen

Die Übungen beginnen in der 1. Vorlesungswoche (22. April). Die Übungen werden gemischt mit Übungszetteln und Programmieraufgaben durchgeführt. Für die Programmieraufgaben benötigen Sie Internet- und RBI-Zugang. Sie können an den Übungen auch teilnehmen, ohne die Übungsgruppen zu besuchen; bitte richten Sie sich ggf. nach der Übungsgruppenzuteilung um zu entscheiden, welcher Tutor Ihre Einsendungen erhält.
GruppeTagUhrzeitRäumeTutor
1Mi10:00–12:00Fischerräume 23 & 25Patrick Bonack
2Mi12:00–14:00Fischerräume 23 & 25Thomas Röhl
3Mi14:00–16:00Fischerräume 23 & 25Patrick Bonack

Klausur

Bonuspunkte für Klausur

Für alle Übungen ab der 2. Übung (Arbeitsblatt 01), die sie mit Namen markiert abgeben, erhalten Sie bis zu 10 Punkte. Die Punkte Ihrer zehn besten Übungen werden Ihnen als Bonuspunkte (bis 20%) auf die Klausur angerechnet. Alle zu bewertenden Aufgaben müssen Sie dabei mit einem Partner bearbeiten. Falls Sie keinen Partner haben, teilen wir Ihnen einen zu.

Literatur

Die Veranstaltung baut auf folgender Literatur auf: