Roger Wattenhofer: Catalogue data in Spring Semester 2019 |
Name | Prof. Dr. Roger Wattenhofer |
Field | Distributed Computing |
Address | Inst. f. Techn. Informatik u. K. ETH Zürich, ETZ G 96 Gloriastrasse 35 8092 Zürich SWITZERLAND |
Telephone | +41 44 632 63 12 |
wattenhofer@ethz.ch | |
URL | http://www.disco.ethz.ch |
Department | Information Technology and Electrical Engineering |
Relationship | Full Professor |
Number | Title | ECTS | Hours | Lecturers | |
---|---|---|---|---|---|
227-0014-00L | Computer Engineering II | 4 credits | 2V + 2U | R. Wattenhofer | |
Abstract | We learn the important functions of operating systems. Networking: IP, routing, transport, flows, applications, sockets, link and physical layer, Markov chains, PageRank, security. Storage: memory hierarchy, file systems, caching, hashing, data bases. Computation: virtualization, processes, threads, concurrency, scheduling, locking, synchronization, mutual exclusion, deadlocks, consistency. | ||||
Learning objective | see above | ||||
Content | Computers come in all shapes and sizes: servers, laptops, tablets, smartphones, smartwatches, all the way down to that tiny microcontroller in a washing machine. People buy a computer because (i) it gives them access to the Internet, (ii) it provides storage, and probably also because (iii) it computes. While having network access seems to be vital, advanced storage and computing capabilities more and more move to designated servers ("the cloud"). In this lecture, we learn how computers provide networking, storage, and computation by means of an operating system. We start out with networking, and discuss the internet protocol, addressing, routing, transport layer protocols, flows, some representative application layer protocols, and how to implement these with sockets. We also discuss the link and physical layer, Markov chains and PageRank, and selected topics in security. Regarding storage, we talk about the memory hierarchy, file systems, caching, efficient data structures such as hashing, and data base principles. Concerning computation, we discuss the virtualization of the processing units with processes and threads. We focus on concurrency and examine scheduling, locking, synchronization, mutual exclusion, deadlocks, and consistency. The lecture will use various teaching paradigms. The majority of the lecture will be based on blackboard discussions, supported by a script. Where appropriate we will also use slides or demonstrations. A few lectures will be flipped classroom style. The lecture will feature weekly paper exercises. However, some of the course material is best learned in front of an actual computer. In addition to the lecture we offer exciting hands-on exercises in a lab environment. | ||||
Lecture notes | Available | ||||
227-0014-10L | Operating Systems & Networks Only for Computational Science and Engineering BSc. | 4 credits | 2V + 2U | R. Wattenhofer | |
Abstract | We learn the important functions of operating systems. Networking: IP, routing, transport, flows, applications, sockets, link and physical layer, Markov chains, PageRank, security. Storage: memory hierarchy, file systems, caching, hashing, data bases. Computation: virtualization, processes, threads, concurrency, scheduling, locking, synchronization, mutual exclusion, deadlocks, consistency. | ||||
Learning objective | see above | ||||
Content | Computers come in all shapes and sizes: servers, laptops, tablets, smartphones, smartwatches, all the way down to that tiny microcontroller in a washing machine. People buy a computer because (i) it gives them access to the Internet, (ii) it provides storage, and probably also because (iii) it computes. While having network access seems to be vital, advanced storage and computing capabilities more and more move to designated servers ("the cloud"). In this lecture, we learn how computers provide networking, storage, and computation by means of an operating system. We start out with networking, and discuss the internet protocol, addressing, routing, transport layer protocols, flows, some representative application layer protocols, and how to implement these with sockets. We also discuss the link and physical layer, Markov chains and PageRank, and selected topics in security. Regarding storage, we talk about the memory hierarchy, file systems, caching, efficient data structures such as hashing, and data base principles. Concerning computation, we discuss the virtualization of the processing units with processes and threads. We focus on concurrency and examine scheduling, locking, synchronization, mutual exclusion, deadlocks, and consistency. The lecture will use various teaching paradigms. The majority of the lecture will be based on blackboard discussions, supported by a script. Where appropriate we will also use slides or demonstrations. A few lectures will be flipped classroom style. The lecture will feature weekly paper exercises. However, some of the course material is best learned in front of an actual computer. In addition to the lecture we offer exciting hands-on exercises in a lab environment. | ||||
Lecture notes | Available | ||||
227-0558-00L | Principles of Distributed Computing | 6 credits | 2V + 2U + 1A | R. Wattenhofer, M. Ghaffari | |
Abstract | 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. | ||||
Learning objective | 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. | ||||
Content | 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 | ||||
Lecture notes | Available. Our course script is used at dozens of other universities around the world. | ||||
Literature | 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 | ||||
Prerequisites / Notice | 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 credits | 2S | R. Wattenhofer, O. Richter | |
Abstract | 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. | ||||
Learning objective | 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. | ||||
Content | 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 | ||||
Lecture notes | Slides of presentations will be made available. | ||||
Literature | OpenAI course (https://spinningup.openai.com/en/latest/) plus selected papers. The paper selection can be found on www.disco.ethz.ch/courses.html. | ||||
Prerequisites / Notice | 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 In the Master Programme max. 10 credits can be accounted by Labs on top of the Interfocus Courses. Additional Labs will be listed on the Addendum. | 10 credits | 9P | G. Alonso, T. Hoefler, F. Mattern, T. Roscoe, A. Singla, R. Wattenhofer, C. Zhang | |
Abstract | This course involves the participation in a substantial development and/or evaluation project involving distributed systems technology. There are projects available in a wide range of areas: from web services to ubiquitous computing including as well wireless networks, ad-hoc networks, and distributed application on mobile phones. | ||||
Learning objective | Students acquire practical knowledge about technologies from the area of distributed systems. | ||||
Content | This course involves the participation in a substantial development and/or evaluation project involving distributed systems technology. There are projects available in a wide range of areas: from web services to ubiquitous computing including as well wireless networks, ad-hoc networks, and distributed application on mobile phones. The objecte of the project is for the students to gain hands-on-experience with real products and the latest technology in distributed systems. There is no lecture associated to the course. For information of the course or projects available, please contact Prof. Mattern, Prof. Wattenhofer, Prof. Roscoe or Prof. G. Alonso. |