Small logo of ETH main building ETH Zurich : Computer Science : Pervasive Computing : Distributed Systems : Education : I2 FS2018

| Inhalt | Zeit und Ort | Unterlagen | Übungen | Prüfung | Reversi-Turnier | Programmieren in Java | Kontakt |

Informatik II für ITET

Prof. Dr. Friedemann Mattern
Vincent Becker (Coordinator)
Vorlesung FS2018

Inhalt

Teil II der Vorlesung vermittelt die gebräuchlichsten Problemlösungsverfahren, Algorithmen und Datenstrukturen. Der Stoff umfasst auch grundlegende Konzepte und Mechanismen der Programmstrukturierung. Darüber hinaus wird generell das Denken in formalen Systemen, die Notwendigkeit zur Abstraktion, sowie die Bedeutung geeigneter Modellbildungen für die Informatik motiviert.

Der Schwerpunkt der Vorlesung liegt auf der praktischen Informatik; konkrete Themen sind u.a.: Komplexität und Korrektheit von Algorithmen, Divide and Conquer-Prinzip, Rekursion, Sortieralgorithmen, Backtracking, Suche in Spielbäumen, Datenstrukturen (Listen, Stacks, binäre Bäume etc.), zeitdiskrete Simulation, Nebenläufigkeit, Verifikation. Gelegentlich werden auch kurze Hinweise zum geschichtlichen Kontext der jeweiligen Konzepte gegeben.

Bei den praktischen Übungen wird die Programmiersprache Java verwendet, dabei werden auch Aspekte wie Modularisierung, Abstraktion und Objektorientierung behandelt. In Gruppen wird auch ein Spielprogramm für "Reversi" programmiert; am Ende des Semesters findet dazu ein Turnier statt.

Zeit und Ort

  • Vorlesung:
    • 21. Februar bis 30. Mai 2018
    • Mittwoch 8-10 Uhr, HG E 7
  • Übungen:
    • Mittwoch 13-14 Uhr
    • Donnerstag 13-14 Uhr
    • In der ersten Semesterwoche finden keine Übungsstunden statt! Stattdessen veranstalten wir einen Java-Einführungskurs (Donnerstag, 22.02.2017, 13:15-14:30 Uhr, ETF C1). Die Folien des Einführungskurses können Sie hier herunterladen.

Besondere Termine:

  • Freiwilliger Einführungskurs in Java:
    • Donnerstag, 22.02.2017, 13:15-14:30 Uhr, ETF C1.
    • In dieser Woche finden keine Übungen statt.
  • Osterferien:
    • 30.03.2018 - 08.04.2018
    • In dieser Woche finden keine Vorlesung und keine Übungen statt.
  • Auffahrt:
    • Donnerstag, 10.05.2018
    • Handhabung individuell durch die Tutoren der Übungsstunden.
  • Reversi-Turnier
    • Mittwoch, 30.05.2018, ab 12:30 Uhr, im CABinett (Stuz2). Einsendeschluss ist Sonntag, 27. Mai 23:59 Uhr. Mehr Informationen auf der Reversi-Webseite
    • In dieser Woche finden keine Übungen statt.

Unterlagen

Die erste Übungsserie wird in der ersten Vorlesungswoche aufgeschaltet.

Folienkopien:

Die Folienkopien zur Vorlesung im PDF-Format werden hier zur Verfügung gestellt. Zum Betrachten am Bildschirm (ca. 250 MB; Empfehlung: einmalig herunterladen und lokal speichern) oder zum Ausdrucken auf Papier (ohne Hyperlinks) mit 4 Slides pro Seite (ca. 160 MB). Zusätzlich gibt es die Folien auch nach Kapitel getrennt:

Nr Titel
0 Einführung
1 Ein Algorithmus und seine Implementierung in Java
2 Java: Elementare Aspekete
3 Klassen und Referenzen
4 Syntaxanalyse und Compiler
5 Pakete in Java
6 Objektorientierung
7 Weitere Java-Sprachelemente
8 Binärsuche auf Arrays
9 Binärbäume & Suchbäume
10 Backtracking
11 Spielbäume
12 Rekursives Problemelösen
13 Komplexität von Algorithmen
14 Simulation
15 Heaps
16 Parallele Prozesse / Threads
17 Resümee der Vorlesung

Literatur:

Begleitend zur Vorlesung empfehlen wir das Buch Marc Allen Weiss, Data Structures and Problem Solving Using Java, 4. Auflage, Addison Wesley.

Übungen

Registrierung:

Die Registrierung für die Übungsstunden erfolgt mithilfe des mystudies-Systems. Stellen Sie sicher, dass Sie bei mystudies für die Vorlesung angemeldet sind, dann bekommen Sie ein Email mit den nötigen Informationen. Die Registrierung schliesst am Freitag den 23.02.2018. Sollten Sie bei der Registrierung Probleme haben, melden Sie sich bitte per Email an Vincent Becker.

Abgabe und Korrektur:

Sie können die Übungen jeweils etwa eine Woche lang bearbeiten. Die Abgabe erfolgt mittels des Online-Abgabesystem Code Expert, welches von Informatik I bekannt sein sollte. Geprüft wird Ihre Lösung bereits durch das Abgabesystem. Damit erhalten Sie direkt eine Rückmeldung. Ihr Assistant hat ebenfalls Zugriff auf Ihre Abgaben und wird sich diese anschauen und Ihnen ebenfalls Feedback geben. Bitte melden Sie sich für Ihre Gruppe in Code Expert an, indem Sie den Link zur ersten Übung aufrufen. Die einzelnen Übungsaufgaben werden Ihnen auf Code Expert angezeigt. Sie können dort auch ein Übungsblatt als PDF-Datei generieren. Damit Sie die Code-Skelette einfach zur Arbeit in einer IDE (z.B. Eclipse) auf Ihrem Computer nutzen können, finden Sie diese unten zum Herunterladen.

Übungsgruppen:

Bitte besuchen Sie stets nur diejenige Übungsgruppe, bei der Sie sich angemeldet haben. Ein Wechsel ist nur in Ausnahmefällen und nach Rücksprache mit dem Koordinator möglich. (So bleiben Sie während des ganzen Semester ein gemeinsames Team, die Tutoren können gezielt auf die Lösungen der Übungsaufgaben der Anwesenden eingehen und alle Übungsgruppen haben etwa gleich viele Teilnehmer.)

Gruppe Zeit Ort Tutor Materialien*
1 Mi 13-14 ETZ E 9 Manuel Meier Link
2 Mi 13-14 HG D 3.3 Carina Fuss Link
3 Mi 13-14 HG D 5.1 Julia Gygax Link
4 Mi 13-14 HG D 5.2 Lukas Burkhalter Link
5 Mi 13-14 HG F 26.3 Mihai Bâce Link
6 Mi 13-14 HG G 3 Vincent Becker Link
7 Mi 13-14 IFW B 42 Jing Yang Link
8 Mi 13-14 RZ F 21 Alexander Viand Link
9 Do 13-14 CAB G 51 Christelle Gloor Link
10 Do 13-14 CAB G 52 Liliana Barrios Link
11 Do 13-14 HG D 3.1 Pascal Schärli Link
* Die hier verlinkten Materialien dienen als Unterstützung für die Vorlesung. Verantwortlich für die Inhalte sind die jeweiligen Assistenten.

Source-Dateien der Übungsblätter

Nr Downloads
0 u0.zip
1 u1.zip
2 u2.zip
3 u3.zip
4 u4.zip
B1 b1.zip
5 u5.zip
6 u6.zip
7 u7.zip
8 u8.zip
9 u9.zip
10 u10.zip
B2 b2.zip
11 u11.zip
12 u12.zip

Prüfung

Informatik II wird in der Herbstprüfungssession schriftlich geprüft. Der Prüfungsteil von Informatik II wird ca. 1 Stunde umfassen. In der Klausur sind keine Hilfsmittel erlaubt.

Programmieren in Java

Auf den Pool-Rechnern steht Java zur Verfügung. Wir arbeiten mit der Version Java SE 8.

Wer Java auf seinem eigenen Rechner installieren möchte, hat die Möglichkeit, sich das Java Software Development Kit (JDK) von der Oracle-Webseite herunterzuladen oder es sich über seine Distribution zu installieren.

Links:

Kontakt

Für allfällige Fragen wenden Sie sich bitte an Ihren Übungsassistenten!

ETH ZurichDistributed Systems Group
Last updated May 23 2018 09:58:32 AM MET hs