Roger Wattenhofer: Katalogdaten im Herbstsemester 2023

NameHerr Prof. Dr. Roger Wattenhofer
LehrgebietDistributed 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
E-Mailwattenhofer@ethz.ch
URLhttp://www.disco.ethz.ch
DepartementInformationstechnologie und Elektrotechnik
BeziehungOrdentlicher Professor

NummerTitelECTSUmfangDozierende
227-0014-20LComputational Thinking Information 4 KP2V + 1UR. Wattenhofer
KurzbeschreibungWe 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.
LernzielComputation 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.
InhaltComputation 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.
SkriptThe script is available here: https://disco.ethz.ch/courses/coti/
Voraussetzungen / BesonderesThis 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/
KompetenzenKompetenzen
Fachspezifische KompetenzenKonzepte und Theoriengeprüft
Verfahren und Technologiengeprüft
Methodenspezifische KompetenzenAnalytische Kompetenzengeprüft
Entscheidungsfindunggefördert
Medien und digitale Technologiengeprüft
Problemlösunggeprüft
Soziale KompetenzenKommunikationgefördert
Persönliche KompetenzenAnpassung und Flexibilitätgeprüft
Kreatives Denkengeprüft
Kritisches Denkengeprüft
Integrität und Arbeitsethikgefördert
Selbstbewusstsein und Selbstreflexion gefördert
Selbststeuerung und Selbstmanagement gefördert
227-0085-59LP&S: Hands-On Deep Learning Information Belegung eingeschränkt - Details anzeigen
Die Lerneinheit kann nur einmal belegt werden. Eine wiederholte Belegung in einem späteren Semester ist nicht anrechenbar.
2 KP2PR. Wattenhofer
KurzbeschreibungThis 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.
LernzielThis 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.
InhaltThis 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.
SkriptPython Notebooks will be distributed to students before every session.
KompetenzenKompetenzen
Fachspezifische KompetenzenKonzepte und Theoriengefördert
Verfahren und Technologiengefördert
Methodenspezifische KompetenzenAnalytische Kompetenzengefördert
Entscheidungsfindunggefördert
Medien und digitale Technologiengefördert
Problemlösunggefördert
Soziale KompetenzenKommunikationgefördert
Kooperation und Teamarbeitgefördert
Persönliche KompetenzenAnpassung und Flexibilitätgefördert
Kreatives Denkengefördert
Kritisches Denkengefördert
Integrität und Arbeitsethikgefördert
Selbstbewusstsein und Selbstreflexion gefördert
Selbststeuerung und Selbstmanagement gefördert
227-0102-00LDiscrete Event Systems Information 6 KP4GL. Josipovic, L. Vanbever, R. Wattenhofer
KurzbeschreibungIntroduction 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.
LernzielOver 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?
Inhalt1. 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
SkriptAvailable at https://disco.ethz.ch/courses/des/
Literatur[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
KompetenzenKompetenzen
Fachspezifische KompetenzenKonzepte und Theoriengeprüft
Verfahren und Technologiengeprüft
Methodenspezifische KompetenzenAnalytische Kompetenzengeprüft
Entscheidungsfindunggeprüft
Problemlösunggeprüft
Soziale KompetenzenKommunikationgeprüft
Persönliche KompetenzenAnpassung und Flexibilitätgefördert
Kreatives Denkengeprüft
Kritisches Denkengeprüft
227-0555-00LDistributed Systems Information
Enrolled students will be notified by e-mail about the lecture start.
4 KP3G + 1AR. Wattenhofer
KurzbeschreibungThis 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.
LernzielThe 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.
InhaltWe 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.
SkriptA script is available on the web page.
LiteraturThe script is self-contained, but links to additional material are available on the web page.
Voraussetzungen / BesonderesThis 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-00LComputer Systems Information 8 KP4V + 2U + 1AT. Roscoe, S. Shinde, R. Wattenhofer
KurzbeschreibungThis 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.
LernzielThe 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.
InhaltThis 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.
Voraussetzungen / BesonderesWe will assume knowlege of the "Systems Programming" and "Computer Networks" courses (or equivalent), and their prerequisites, and build upon them.
252-0817-00LDistributed Systems Laboratory Information 10 KP9PG. Alonso, T. Hoefler, A. Klimovic, T. Roscoe, R. Wattenhofer
KurzbeschreibungThis 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.
LernzielGain hands-on-experience with real products and the latest technology in distributed systems.
InhaltThis 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-00LNew Technologies in Finance and Insurance3 KP2VB. J. Bergmann, P. Cheridito, P. Kammerlander, J. Teichmann, R. Wattenhofer
KurzbeschreibungTechnological 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.
LernzielAfter 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.
InhaltOverall, 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.
KompetenzenKompetenzen
Fachspezifische KompetenzenKonzepte und Theoriengeprüft
Verfahren und Technologiengeprüft
Methodenspezifische KompetenzenAnalytische Kompetenzengefördert
Projektmanagementgeprüft
Soziale KompetenzenKommunikationgefördert
Kooperation und Teamarbeitgefördert
Kundenorientierunggefördert
Persönliche KompetenzenAnpassung und Flexibilitätgefördert
Kreatives Denkengefördert
Selbststeuerung und Selbstmanagement gefördert
364-1058-00LRisk Center Seminar Series0 KP2SH. 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
KurzbeschreibungThis 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.
LernzielParticipants 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.
InhaltThis 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.
SkriptThere 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.
LiteraturLiterature will be provided by the speakers in their respective presentations.
Voraussetzungen / BesonderesParticipants should have relatively good mathematical skills and some experience of how scientific work is performed.