## Roger Wattenhofer: Catalogue data in Autumn Semester 2023 |

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-20L | Computational Thinking | 4 credits | 2V + 1U | R. Wattenhofer | ||||||||||||||||||||||||||||||||||||||||||||

Abstract | We learn: algorithmic principles, dynamic and linear programming, complexity, P vs. NP, approximation, reductions, cryptography, zero-knowledge proofs, relational databases, SQL, machine learning, regression, gradient descent, decision trees, deep neural networks, universal approximation, advanced layers and architectures, reinforcement learning, Turing machines, computability, and more. | |||||||||||||||||||||||||||||||||||||||||||||||

Learning objective | Computation is everywhere, but what is computation actually? In this lecture we will discuss the power and limitations of computation. Computational thinking is about understanding machine intelligence: What is computable, and how efficiently? Understanding computation lies at the heart of many exciting scientific, social and even philosophical developments. Computational thinking is more than programming a computer, it means thinking in abstractions. Consequently, computational thinking has become a fundamental skill for everyone, not just computer scientists. For example, functions which can easily be computed but not inverted are at the heart of understanding data security and privacy. The design of efficient electronic circuits is related to computational complexity. Machine learning on the other hand has given us fascinating new tools to teach machines how to estimate functions. Thanks to clever heuristics, machines now appear to be capable of solving complex cognitive tasks. In this class, we study various problems together with the fundamental theory of computation. The course uses Python as a programming language. Python is popular and intuitive, a programming language that looks and feels a bit like human instructions. The lecture will feature weekly exercises. This course follows the flipped classroom paradigm. Students will self-study all important concepts by reading a chapter in the script, and by watching a few short video clips. The class meets every two weeks to answer questions, and for a quiz on the current topic. | |||||||||||||||||||||||||||||||||||||||||||||||

Content | Computation is everywhere, but what is computation actually? In this lecture we will discuss the power and limitations of computation. Computational thinking is about understanding machine intelligence: What is computable, and how efficiently? Understanding computation lies at the heart of many exciting scientific, social and even philosophical developments. Computational thinking is more than programming a computer, it means thinking in abstractions. Consequently, computational thinking has become a fundamental skill for everyone, not just computer scientists. For example, functions which can easily be computed but not inverted are at the heart of understanding data security and privacy. The design of efficient electronic circuits is related to computational complexity. Machine learning on the other hand has given us fascinating new tools to teach machines how to estimate functions. Thanks to clever heuristics, machines now appear to be capable of solving complex cognitive tasks. In this class, we study various problems together with the fundamental theory of computation. The course uses Python as a programming language. Python is popular and intuitive, a programming language that looks and feels a bit like human instructions. The lecture will feature weekly exercises. This course follows the flipped classroom paradigm. Students will self-study all important concepts by reading a chapter in the script, and by watching a few short video clips. The class meets every two weeks to answer questions, and for a quiz on the current topic. | |||||||||||||||||||||||||||||||||||||||||||||||

Lecture notes | The script is available here: https://disco.ethz.ch/courses/coti/ | |||||||||||||||||||||||||||||||||||||||||||||||

Prerequisites / Notice | This class is suitable for students who have a basic understanding of programming. For additional Python programming experience we recommend attending the CodeJam lab: https://disco.ethz.ch/courses/codejam/ For practical deep learning exerience we recommend attending the HODL lab: https://disco.ethz.ch/courses/hodl/ | |||||||||||||||||||||||||||||||||||||||||||||||

Competencies |
| |||||||||||||||||||||||||||||||||||||||||||||||

227-0085-59L | P&S: Hands-On Deep Learning Course can only be registered for once. A repeatedly registration in a later semester is not chargeable. | 2 credits | 2P | R. Wattenhofer | ||||||||||||||||||||||||||||||||||||||||||||

Abstract | This lab introduces deep learning through the PyTorch framework in a series of hands-on exercises, exploring topics in computer vision, natural language processing, audio processing, graph neural networks, and representation learning. | |||||||||||||||||||||||||||||||||||||||||||||||

Learning objective | This P&S introduces deep learning through the PyTorch framework in a series of hands-on examples, exploring topics in computer vision, natural language processing, graph neural networks, and representation learning. With the objective to expose students to both common and cutting-edge neural architectures and to build intuition about their inner working by the means of examples. Students learn about various network structures as building blocks and use them to solve worked examples and course challenges. After attending this course, students will be familiar with multi-layer perceptrons, convolutional neural networks, recurrent neural networks, transformer encoders, graph convolutional/isomorphism/attention networks, and autoencoders. | |||||||||||||||||||||||||||||||||||||||||||||||

Content | This lab introduces deep learning through the PyTorch framework in a series of hands-on exercises, exploring topics in computer vision, natural language processing, audio processing, graph neural networks, and representation learning. | |||||||||||||||||||||||||||||||||||||||||||||||

Lecture notes | Python Notebooks will be distributed to students before every session. | |||||||||||||||||||||||||||||||||||||||||||||||

Competencies |
| |||||||||||||||||||||||||||||||||||||||||||||||

227-0102-00L | Discrete Event Systems | 6 credits | 4G | L. Josipovic, L. Vanbever, R. Wattenhofer | ||||||||||||||||||||||||||||||||||||||||||||

Abstract | Introduction to discrete event systems. We start out by studying popular models of discrete event systems. Then we analyze discrete event systems from an average-case and from a worst-case perspective, and study verification. Topics include: Automata and Languages, Specification Models, Stochastic Discrete Event Systems, Worst-Case Event Systems, Verification, Petri Nets. | |||||||||||||||||||||||||||||||||||||||||||||||

Learning objective | Over the past few decades the rapid evolution of computing, communication, and information technologies has brought about the proliferation of new dynamic systems. A significant part of activity in these systems is governed by operational rules designed by humans. The dynamics of these systems are characterized by asynchronous occurrences of discrete events, some controlled (e.g. hitting a keyboard key, sending a message), some not (e.g. spontaneous failure, packet loss). The mathematical arsenal centered around differential equations that has been employed in systems engineering to model and study processes governed by the laws of nature is often inadequate or inappropriate for discrete event systems. The challenge is to develop new modeling frameworks, analysis techniques, design tools, testing methods, and optimization processes for this new generation of systems. In this lecture we give an introduction to discrete event systems. We start out the course by exploring the limits of what is computable and what is not. In doing so, we will consider three distinct models of computation which are often used to model discrete event systems: finite automata, push-down automata and Turing machines (ranked in terms of expressiveness power). In the second part of the course we analyze discrete event systems. We first examine discrete event systems from an average-case perspective: we model discrete events as stochastic processes, and then apply continuous time markov chains and queueing theory for an understanding of the typical behavior of a system. Then we analyze discrete event systems from a worst-case perspective using the theory of online algorithms and adversarial queueing. In the last part of the course we introduce methods that allow to formally verify certain properties of Finite Automata and Petri Nets. These are some typical analysis questions we will look at: Do two given systems behave the same? Does a given system behave as intended? Does the system eventually enter a dangerous state? | |||||||||||||||||||||||||||||||||||||||||||||||

Content | 1. Regular Languages 2. Non-Regular Languages 3. Markov Chains 4. Stochastic Discrete Event Systems 5. Worst-Case Event Systems 6. Verification of Finite Automata 7. Petri Nets | |||||||||||||||||||||||||||||||||||||||||||||||

Lecture notes | Available at https://disco.ethz.ch/courses/des/ | |||||||||||||||||||||||||||||||||||||||||||||||

Literature | [bertsekas] Data Networks Dimitri Bersekas, Robert Gallager Prentice Hall, 1991, ISBN: 0132009161 [borodin] Online Computation and Competitive Analysis Allan Borodin, Ran El-Yaniv. Cambridge University Press, 1998 [burch] Symbolic Model Checking J. R. Burch, E. M. Clarke, K. L. McMillan, D. L. Dill, and L. J. Hwang Inf. Comput. 98, 2 (June 1992), pp. 142-170 [boudec] Network Calculus J.-Y. Le Boudec, P. Thiran Springer, 2001 [cassandras] Introduction to Discrete Event Systems Christos Cassandras, Stéphane Lafortune. Kluwer Academic Publishers, 1999, ISBN 0-7923-8609-4 [fiat] Online Algorithms: The State of the Art A. Fiat and G. Woeginger [hochbaum] Approximation Algorithms for NP-hard Problems (Chapter 13 by S. Irani, A. Karlin) D. Hochbaum [murata] Petri Nets: Properties, Analysis and Applications Tadao Murata Proceedings of the IEEE, vol. 99, issue 4, April 1989. pp. 541-580 [schickinger] Diskrete Strukturen (Band 2: Wahrscheinlichkeitstheorie und Statistik) T. Schickinger, A. Steger Springer, Berlin, 2001 [sipser] Introduction to the Theory of Computation Michael Sipser. PWS Publishing Company, 1996, ISBN 053494728X | |||||||||||||||||||||||||||||||||||||||||||||||

Competencies |
| |||||||||||||||||||||||||||||||||||||||||||||||

227-0555-00L | Distributed Systems Enrolled students will be notified by e-mail about the lecture start. | 4 credits | 3G + 1A | R. Wattenhofer | ||||||||||||||||||||||||||||||||||||||||||||

Abstract | This course introduces the fundamentals of distributed systems. We study different protocols and algorithms that allow for fault-tolerant operation, and discuss practical systems that implement these techniques. | |||||||||||||||||||||||||||||||||||||||||||||||

Learning objective | The objective of the course is for students to understand the theoretical principles and practical considerations of distributed systems. This includes the main models of fault-tolerant distributed systems (crash failures, byzantine failures, and selfishness), and the most important algorithms, protocols and impossibility results. By the end of the course, students should be able to reason about various concepts such as consistency, durability, availability, fault tolerance, and replication. | |||||||||||||||||||||||||||||||||||||||||||||||

Content | We discuss the following concepts related to fault-tolerant distributed systems: client-server, serialization, two-phase protocols, three-phase protocols, paxos, two generals problem, crash failures, impossibility of consensus, byzantine failures, agreement, termination, validity, byzantine agreement, king algorithm, asynchronous byzantine agreement, authentication, signatures, reliable and atomic broadcast, eventual consistency, blockchain, cryptocurrencies such as bitcoin and ethereum, proof-of-work, proof-of-*, smart contracts, quorum systems, fault-tolerant protocols such as piChain or pbft, distributed storage, distributed hash tables, physical and logical clocks, causality, selfishness, game theoretic models, mechanism design. | |||||||||||||||||||||||||||||||||||||||||||||||

Lecture notes | A script is available on the web page. | |||||||||||||||||||||||||||||||||||||||||||||||

Literature | The script is self-contained, but links to additional material are available on the web page. | |||||||||||||||||||||||||||||||||||||||||||||||

Prerequisites / Notice | This lecture takes place in roughly the second half of the semester, as the lecture is the second part of the lecture "Computer Systems" (252-0217-00). Students may attend at most one of the two lectures, NOT both. | |||||||||||||||||||||||||||||||||||||||||||||||

252-0217-00L | Computer Systems | 8 credits | 4V + 2U + 1A | T. Roscoe, S. Shinde, R. Wattenhofer | ||||||||||||||||||||||||||||||||||||||||||||

Abstract | This course is about real computer systems, and the principles on which they are designed and built. We cover both modern OSes and the large-scale distributed systems that power today's online services. We illustrate the ideas with real-world examples, but emphasize common theoretical results, practical tradeoffs, and design principles that apply across many different scales and technologies. | |||||||||||||||||||||||||||||||||||||||||||||||

Learning objective | The objective of the course is for students to understand the theoretical principles, practical considerations, performance tradeoffs, and engineering techniques on which the software underpinning almost all modern computer systems is based, ranging from single embedded systems-on-chip in mobile phones to large-scale geo-replicated groups of datacenters. By the end of the course, students should be able to reason about highly complex, real, operational software systems, applying concepts such as hierarchy, modularity, consistency, durability, availability, fault-tolerance, and replication. | |||||||||||||||||||||||||||||||||||||||||||||||

Content | This course subsumes the topics of both "operating systems" and "distributed systems" into a single coherent picture (reflecting the reality that these disciplines are highly converged). The focus is system software: the foundations of modern computer systems from mobile phones to the large-scale geo-replicated data centers on which Internet companies like Amazon, Facebook, Google, and Microsoft are based. We will cover a range of topics, such as: scheduling, network protocol stacks, multiplexing and demultiplexing, operating system structure, inter-process communication, memory managment, file systems, naming, dataflow, data storage, persistence, and durability, computer systems performance, remove procedure call, consensus and agreement, fault tolerance, physical and logical clocks, virtualization, and blockchains. The format of the course is a set of about 25 topics, each covered in a lecture. A script will be published online ahead of each lecture, and the latter will consist of an interactive elaboration of the material in the script. There is no book for the course, but we will refer to books and research papers throughout to provide additional background and explanation. | |||||||||||||||||||||||||||||||||||||||||||||||

Prerequisites / Notice | We will assume knowlege of the "Systems Programming" and "Computer Networks" courses (or equivalent), and their prerequisites, and build upon them. | |||||||||||||||||||||||||||||||||||||||||||||||

252-0817-00L | Distributed Systems Laboratory | 10 credits | 9P | G. Alonso, T. Hoefler, A. Klimovic, T. Roscoe, R. Wattenhofer | ||||||||||||||||||||||||||||||||||||||||||||

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 wireless networks, ad-hoc networks, RFID, and distributed applications on smartphones. | |||||||||||||||||||||||||||||||||||||||||||||||

Learning objective | Gain hands-on-experience with real products and the latest technology in 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 smartphones. The goal 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. | |||||||||||||||||||||||||||||||||||||||||||||||

363-1182-00L | New Technologies in Finance and Insurance | 3 credits | 2V | B. J. Bergmann, P. Cheridito, P. Kammerlander, J. Teichmann, R. Wattenhofer | ||||||||||||||||||||||||||||||||||||||||||||

Abstract | Technological advances, digitization and the ability to store and process vast amounts of data has changed the landscape of financial services in recent years. This course will unpack these innovations and technologies underlying these transformations and will reflect on the impacts on the financial markets. | |||||||||||||||||||||||||||||||||||||||||||||||

Learning objective | After taking this course, students will be able to - Understand the fundamentals of emerging technologies like supervised learning, unsupervised learning, reinforcement learning or quantum computing. - understand recent technological developments in financial services and how they drive transformation, e.g. see applications from fraud detection, credit risk assessment, portfolio optimization - reflect about the challenges of implementing machine learning in finance, e.g. data quality and availability, regulatory compliance, model interpretability and transparency, cybersecurity risks - understand the importance of continued research and development in machine learning in finance. | |||||||||||||||||||||||||||||||||||||||||||||||

Content | Overall, emerging technologies are transforming the finance and insurance industries by improving efficiency, reducing costs, enhancing customer experiences, and facilitating innovation. Hence, the financial manager of the future is commanding a wide set of skills ranging from a profound understanding of technological advances and a sensible understanding of the impact on workflows and business models. Students with an interest in finance, banking and insurance are invited to take the course without explicit theoretical knowledge in financial economics. As the course will cover topics like machine learning, cyber security, quantum computing, an understanding of these technologies is welcomed, however not mandatory. The course will also go beyond technological advances and will also cover management-related contents. Invited guest speakers will contribute to the sessions. In addition, separate networking sessions will provide entry opportunities into finance and banking. Selected guest speakers will cover different application from the field of finance and insurance, e.g. - Fraud detection: Machine learning algorithms can be trained to identify unusual patterns in financial transactions, helping to detect fraudulent activities. - Credit scoring: Machine learning can be used to develop more accurate credit scoring models, taking into account a wider range of data points than traditional models. - Investment analysis: Machine learning can be used to analyze market trends, identify potential investment opportunities, and develop predictive models for asset prices. - Risk management: Machine learning can be used to model and forecast risk, helping financial institutions to manage and mitigate risk more effectively. The course is divided in sections, each covering different areas and technologies. Students are asked to solve a short in-class exam and one out of two group exercises cases. | |||||||||||||||||||||||||||||||||||||||||||||||

Competencies |
| |||||||||||||||||||||||||||||||||||||||||||||||

364-1058-00L | Risk Center Seminar Series | 0 credits | 2S | H. Schernberg, D. Basin, A. Bommier, D. N. Bresch, S. Brusoni, L.‑E. Cederman, P. Cheridito, F. Corman, H. Gersbach, C. Hölscher, K. Paterson, G. Sansavini, B. Stojadinovic, B. Sudret, J. Teichmann, R. Wattenhofer, S. Wiemer, R. Zenklusen | ||||||||||||||||||||||||||||||||||||||||||||

Abstract | This course is a mixture between a seminar primarily for PhD and postdoc students and a colloquium involving invited speakers. It consists of presentations and subsequent discussions in the area of modeling complex socio-economic systems and crises. Students and other guests are welcome. | |||||||||||||||||||||||||||||||||||||||||||||||

Learning objective | Participants should learn to get an overview of the state of the art in the field, to present it in a well understandable way to an interdisciplinary scientific audience, to develop novel mathematical models for open problems, to analyze them with computers, and to defend their results in response to critical questions. In essence, participants should improve their scientific skills and learn to work scientifically on an internationally competitive level. | |||||||||||||||||||||||||||||||||||||||||||||||

Content | This course is a mixture between a seminar primarily for PhD and postdoc students and a colloquium involving invited speakers. It consists of presentations and subsequent discussions in the area of modeling complex socio-economic systems and crises. For details of the program see the webpage of the colloquium. Students and other guests are welcome. | |||||||||||||||||||||||||||||||||||||||||||||||

Lecture notes | There is no script, but a short protocol of the sessions will be sent to all participants who have participated in a particular session. Transparencies of the presentations may be put on the course webpage. | |||||||||||||||||||||||||||||||||||||||||||||||

Literature | Literature will be provided by the speakers in their respective presentations. | |||||||||||||||||||||||||||||||||||||||||||||||

Prerequisites / Notice | Participants should have relatively good mathematical skills and some experience of how scientific work is performed. |