This is an old revision of the document!
Table of Contents
Proseminar NAND to Tetris
Informationen zur Veranstaltung
Inhalte
Betrachten Sie den folgenden Code und überlegen Sie, was passiert, wenn er ausgeführt wird:
public class Printer { private String text; public Printer(String text) { this.text=text; } public void print() { System.out.println(text); } public static void main(String[] args) { Printer printer=new Printer("Hello World"); printer.print(); } }
Wenn Sie dies ohne größere Schwierigkeiten geschafft haben, überlegen sie nun, wie der Computer den Code ausführt. Was passiert in den Logikgattern, aus denen der Rechner aufgebaut ist? Und was geschieht mit dem Code auf dem Weg dort hin?
Während in den frühen Tagen der Informatik jeder Programmierer eine Vorstellung davon hatte, wie ein Computer funktioniert, sind die Systeme heutzutage so komplex geworden, dass kaum eine einzelne Person sie vollständig durchblicken kann. Die in einem Rechner ablaufenden Prozesse sind hinter Schichten über Schichten an Abstraktionsebenen verborgen. Dies sorgt auch bei Fachleuten dafür, dass sich tragfähige Vorstellungen über die Funktionsweise von Computern nur schwer bilden können.
Im Proseminar werden wir das Buch The Elements of Computing Systems, Building a Modern Computer from First Principles von Nisan und Schocken nutzen, um die Verbindung zwischen Logikgattern und Betriebsystemebene herzustellen. Dazu werden wir die im Buch beschriebene Hack-Plattform nachvollziehen und die verschiedenen Abstraktionsebenen entmystifizieren.
Lernziele
Die Studierenden…
- …erarbeiten selbstständig ein informatisches Themengebiet
- …bereiten den gelernten Stoff für einem Vortrag auf
- …präsentieren den aufbereiteten Stoff in einem Vortrag
- …formulieren den präsentierten Stoff in einer schriftlichen Ausarbeiteung aus
Wichtige Infos
LAGB2009: Das Proseminar kann als Seminar für INF-ML-101 Nr.3 angerechnet werden. (siehe Infoseite zu Proseminaren)
Beachten Sie neben den allgemeinen Hinweisen zu Proseminaren, dass Grafiken nicht kopiert werden sollen. Wenn Sie eine Grafik abzeichnen, wird dies auch als Kopie angesehen. Falls Sie Ihre Grafik auf Basis einer anderen erstellen, sollte erkennbar sein, dass Sie sich eigene Gedanken gemacht haben.
Termine
- Die Vorbesprechung findet am 24.09.19 um 14 Uhr statt
- Der Präsentationskurs besteht aus zwei Terminen, die am 11.10.19 und 18.10.19 jeweils von 9-16 Uhr stattfinden
- Das Seminar findet Dienstags von 14 - 16 Uhr c.t. an den in der Tabenlle unten angegebenen Tagen statt
Alle Termine finden im Schullabor (OH12, Raum 3.030) statt
Datum | Kapitel | Inhalt | Vortragende/-r |
---|---|---|---|
22.10.19 | 1 | Boolean Logic | |
29.10.19 | 2 | Boolean Arithmetic | |
5.11.19 | - | Keine Sitzung | N/A |
12.11.19 | 3 | Sequential Logic | |
19.11.19 | 4 | Machine Language | |
26.11.19 | 5 | Computer Architecture | |
3.12.19 | 6 | Assembler | |
10.12.19 | 7 | VM I: Stack Arithmetic | |
17.12.19 | 8 | AM II: Program Control | |
7.01.20 | 9 | High-Level Language | |
14.01.20 | 10 | Compiler I: Syntax Analysis | |
21.01.20 | 11 | Compiler II: Code Generation | |
28.01.20 | 12 | Operating System |
Literatur
[NS05] Nisan, Noam; Schocken, Shimon: The Elements of Computing Systems, Building a Modern Computer from First Principles. The MIT Press, 2005
Vom Buch stehen zwei Exemplare zur Verfügung, die bei der Seminarleitung ausgeliehen werden können. Wenden Sie sich dazu bitte per Mail an Martin Weinert. Damit allen Teilnehmern der Zugang zum Buch gewährleistet werden kann, wird die Ausleihe befristet. Melden Sie sich daher bitte frühzeitig!