Roger Wattenhofer: Katalogdaten im Frühjahrssemester 2019 |
Name | Herr Prof. Dr. Roger Wattenhofer |
Lehrgebiet | Distributed Computing |
Adresse | Inst. f. Techn. Informatik u. K. ETH Zürich, ETZ G 96 Gloriastrasse 35 8092 Zürich SWITZERLAND |
Telefon | +41 44 632 63 12 |
wattenhofer@ethz.ch | |
URL | http://www.disco.ethz.ch |
Departement | Informationstechnologie und Elektrotechnik |
Beziehung | Ordentlicher Professor |
Nummer | Titel | ECTS | Umfang | Dozierende | |
---|---|---|---|---|---|
227-0014-00L | Technische Informatik II | 4 KP | 2V + 2U | R. Wattenhofer | |
Kurzbeschreibung | Wir behandeln die wichtigsten Komponenten von Betriebssystemen. Netzwerke: IP, Routing, Transport, Flüsse, Anwendungen, Sockets, Link/Physical, Markov-Ketten, PageRank, Sicherheit. Speicher: Hierarchie, Dateisysteme, Caching, Hashing, Datenbanken. Rechnen: Virtualisierung, Prozesse, Threads, Concurrency, Scheduling, Locking, Synchronisation, gegenseitigen Ausschluss, Deadlocks, Konsistenz. | ||||
Lernziel | siehe oben | ||||
Inhalt | Computer gibt es in verschiedenen Grössen: Von Servern über Laptops, Tablets, Smartphones, Smartwatches, bis hin zu winzigen Microcontrollern in einer Waschmaschine. Menschen kaufen vor allem aus drei Gründen einen Computer: (i) Internetzugang, (ii) Datenspeicherung, und (iii) Berechnungen. Während der Internetzugang nicht zu ersetzen ist, werden Speicher- und Rechenmöglichkeiten immer mehr auf dedizierte Server (die "Cloud") ausgelagert. In dieser Vorlesung besprechen wir wie Computer Netzwerkzugang, Speicher und Berechnungen mittels eines Betriebssystems ermöglichen. Wir beginnen mit Netzwerken und besprechen das Internet-Protokoll, Adressierung, Routing, die Transportschicht, Flüsse, einige repräsentative Protokolle der Anwendungsschicht, und wie man diese mit Sockets implementiert. Ausserdem diskutieren wir die tieferen Schichten, Markov-Ketten und PageRank, sowie ausgewählte Themen der Sicherheit. Bezüglich Speicher sprechen wir über die Speicherhierarchie, Dateisysteme, Caching, effiziente Datenstrukturen wie Hashing und Datenbanken. Beim Rechnen behandeln wir die Virtualisierung der Prozessoren mit Prozessen und Threads. Wir konzentrieren uns auf Concurrency und untersuchen Scheduling, Locking, Synchronisation, gegenseitigen Ausschluss, Deadlocks und Konsistenz. Die Vorlesung wird verschiedene Lehrparadigmen benutzen. Hauptsächlich diskutieren wir an der Tafel, unterstützt durch ein Skript. Gegebenenfalls verwenden wir auch Slides oder machen Demos. Einige wenige Vorlesungsstunden werden als "Flipped Classroom" durchgeführt. Es werden jede Woche schriftliche Übungen angeboten. Man lernt Teile der Vorlesung am besten vor einem tatsächlichen Computer. Zusätzlich zur Vorlesung bieten wir deshalb spannende praktische Übungen als Fachpraktikum an. | ||||
Skript | Vorhanden, in Englischer Sprache | ||||
227-0014-10L | Betriebssysteme & Netzwerke Nur für Rechnergestützte Wissenschaften BSc. | 4 KP | 2V + 2U | R. Wattenhofer | |
Kurzbeschreibung | Wir behandeln die wichtigsten Komponenten von Betriebssystemen. Netzwerke: IP, Routing, Transport, Flüsse, Anwendungen, Sockets, Link/Physical, Markov-Ketten, PageRank, Sicherheit. Speicher: Hierarchie, Dateisysteme, Caching, Hashing, Datenbanken. Rechnen: Virtualisierung, Prozesse, Threads, Concurrency, Scheduling, Locking, Synchronisation, gegenseitigen Ausschluss, Deadlocks, Konsistenz. | ||||
Lernziel | siehe oben | ||||
Inhalt | Computer gibt es in verschiedenen Grössen: Von Servern über Laptops, Tablets, Smartphones, Smartwatches, bis hin zu winzigen Microcontrollern in einer Waschmaschine. Menschen kaufen vor allem aus drei Gründen einen Computer: (i) Internetzugang, (ii) Datenspeicherung, und (iii) Berechnungen. Während der Internetzugang nicht zu ersetzen ist, werden Speicher- und Rechenmöglichkeiten immer mehr auf dedizierte Server (die "Cloud") ausgelagert. In dieser Vorlesung besprechen wir wie Computer Netzwerkzugang, Speicher und Berechnungen mittels eines Betriebssystems ermöglichen. Wir beginnen mit Netzwerken und besprechen das Internet-Protokoll, Adressierung, Routing, die Transportschicht, Flüsse, einige repräsentative Protokolle der Anwendungsschicht, und wie man diese mit Sockets implementiert. Ausserdem diskutieren wir die tieferen Schichten, Markov-Ketten und PageRank, sowie ausgewählte Themen der Sicherheit. Bezüglich Speicher sprechen wir über die Speicherhierarchie, Dateisysteme, Caching, effiziente Datenstrukturen wie Hashing und Datenbanken. Beim Rechnen behandeln wir die Virtualisierung der Prozessoren mit Prozessen und Threads. Wir konzentrieren uns auf Concurrency und untersuchen Scheduling, Locking, Synchronisation, gegenseitigen Ausschluss, Deadlocks und Konsistenz. Die Vorlesung wird verschiedene Lehrparadigmen benutzen. Hauptsächlich diskutieren wir an der Tafel, unterstützt durch ein Skript. Gegebenenfalls verwenden wir auch Slides oder machen Demos. Einige wenige Vorlesungsstunden werden als "Flipped Classroom" durchgeführt. Es werden jede Woche schriftliche Übungen angeboten. Man lernt Teile der Vorlesung am besten vor einem tatsächlichen Computer. Zusätzlich zur Vorlesung bieten wir deshalb spannende praktische Übungen als Fachpraktikum an. | ||||
Skript | Vorhanden, in Englischer Sprache | ||||
227-0558-00L | Principles of Distributed Computing | 6 KP | 2V + 2U + 1A | R. Wattenhofer, M. Ghaffari | |
Kurzbeschreibung | We study the fundamental issues underlying the design of distributed systems: communication, coordination, fault-tolerance, locality, parallelism, self-organization, symmetry breaking, synchronization, uncertainty. We explore essential algorithmic ideas and lower bound techniques. | ||||
Lernziel | Distributed computing is essential in modern computing and communications systems. Examples are on the one hand large-scale networks such as the Internet, and on the other hand multiprocessors such as your new multi-core laptop. This course introduces the principles of distributed computing, emphasizing the fundamental issues underlying the design of distributed systems and networks: communication, coordination, fault-tolerance, locality, parallelism, self-organization, symmetry breaking, synchronization, uncertainty. We explore essential algorithmic ideas and lower bound techniques, basically the "pearls" of distributed computing. We will cover a fresh topic every week. | ||||
Inhalt | Distributed computing models and paradigms, e.g. message passing, shared memory, synchronous vs. asynchronous systems, time and message complexity, peer-to-peer systems, small-world networks, social networks, sorting networks, wireless communication, and self-organizing systems. Distributed algorithms, e.g. leader election, coloring, covering, packing, decomposition, spanning trees, mutual exclusion, store and collect, arrow, ivy, synchronizers, diameter, all-pairs-shortest-path, wake-up, and lower bounds | ||||
Skript | Available. Our course script is used at dozens of other universities around the world. | ||||
Literatur | Lecture Notes By Roger Wattenhofer. These lecture notes are taught at about a dozen different universities through the world. Distributed Computing: Fundamentals, Simulations and Advanced Topics Hagit Attiya, Jennifer Welch. McGraw-Hill Publishing, 1998, ISBN 0-07-709352 6 Introduction to Algorithms Thomas Cormen, Charles Leiserson, Ronald Rivest. The MIT Press, 1998, ISBN 0-262-53091-0 oder 0-262-03141-8 Disseminatin of Information in Communication Networks Juraj Hromkovic, Ralf Klasing, Andrzej Pelc, Peter Ruzicka, Walter Unger. Springer-Verlag, Berlin Heidelberg, 2005, ISBN 3-540-00846-2 Introduction to Parallel Algorithms and Architectures: Arrays, Trees, Hypercubes Frank Thomson Leighton. Morgan Kaufmann Publishers Inc., San Francisco, CA, 1991, ISBN 1-55860-117-1 Distributed Computing: A Locality-Sensitive Approach David Peleg. Society for Industrial and Applied Mathematics (SIAM), 2000, ISBN 0-89871-464-8 | ||||
Voraussetzungen / Besonderes | Course pre-requisites: Interest in algorithmic problems. (No particular course needed.) | ||||
227-0559-00L | Seminar in Deep Reinforcement Learning Number of participants limited to 24. | 2 KP | 2S | R. Wattenhofer, O. Richter | |
Kurzbeschreibung | In this seminar participating students present and discuss recent research papers in the area of deep reinforcement learning. The seminar starts with two introductory lessons introducing the basic concepts. Alongside the seminar a programming challenge is posed in which students can take part to improve their grade. | ||||
Lernziel | Since Google Deepmind presented the Deep Q-Network (DQN) algorithm in 2015 that could play Atari-2600 games at a superhuman level, the field of deep reinforcement learning gained a lot of traction. It sparked media attention with AlphaGo and AlphaZero and is one of the most prominent research areas. Yet many research papers in the area come from one of two sources: Google Deepmind or OpenAI. In this seminar we aim at giving the students an in depth view on the current advances in the area by discussing recent papers as well as discussing current issues and difficulties surrounding deep reinforcement learning. | ||||
Inhalt | Two introductory courses introducing Q-learning and policy gradient methods. Afterwards participating students present recent papers. For details see: www.disco.ethz.ch/courses.html | ||||
Skript | Slides of presentations will be made available. | ||||
Literatur | OpenAI course (https://spinningup.openai.com/en/latest/) plus selected papers. The paper selection can be found on www.disco.ethz.ch/courses.html. | ||||
Voraussetzungen / Besonderes | It is expected that student have prior knowledge and interest in machine and deep learning, for instance by having attended appropriate courses. | ||||
252-0817-00L | Distributed Systems Laboratory Im Masterstudium können zusätzlich zu den Vertiefungsübergreifenden Fächern nur max. 10 Kreditpunkte über Laboratorien erarbeitet werden. Weitere Laboratorien werden auf dem Beiblatt aufgeführt. | 10 KP | 9P | G. Alonso, T. Hoefler, F. Mattern, T. Roscoe, A. Singla, R. Wattenhofer, C. Zhang | |
Kurzbeschreibung | Entwicklung und / oder Evaluation eines umfangreicheren praktischen Systems mit Technologien aus dem Gebiet der verteilten Systeme. Das Projekt kann aus unterschiedlichen Teilbereichen (von Web-Services bis hin zu ubiquitären Systemen) stammen; typische Technologien umfassen drahtlose Ad-hoc-Netze oder Anwendungen auf Mobiltelefonen. | ||||
Lernziel | Erwerb praktischer Kenntnisse bei Entwicklung und / oder Evaluation eines umfangreicheren praktischen Systems mit Technologien aus dem Gebiet der verteilten Systeme. | ||||
Inhalt | Entwicklung und / oder Evaluation eines umfangreicheren praktischen Systems mit Technologien aus dem Gebiet der verteilten Systeme. Das Projekt kann aus unterschiedlichen Teilbereichen (von Web-Services bis hin zu ubiquitären Systemen) stammen; typische Technologien umfassen drahtlose Ad-hoc-Netze oder Anwendungen auf Mobiltelefonen. Zu diesem Praktikum existiert keine Vorlesung. Bei Interesse bitte einen der beteiligten Professoren oder einen Assistenten der Forschungsgruppen kontaktieren. |