# Mohsen Ghaffari: Catalogue data in Spring Semester 2020

Name | Prof. Dr. Mohsen Ghaffari |

Field | Computer Science |

Address | Professur für Informatik ETH Zürich, CAB G 32.1 Universitätstrasse 6 8092 Zürich SWITZERLAND |

Telephone | +41 44 632 72 47 |

ghaffari@inf.ethz.ch | |

URL | https://people.inf.ethz.ch/gmohsen/ |

Department | Computer Science |

Relationship | Assistant Professor (Tenure Track) |

Number | Title | ECTS | Hours | Lecturers | |
---|---|---|---|---|---|

227-0558-00L | Principles of Distributed Computing | 7 credits | 2V + 2U + 2A | 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. | ||||

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.) | ||||

252-4202-00L | Seminar in Theoretical Computer Science | 2 credits | 2S | E. Welzl, B. Gärtner, M. Ghaffari, M. Hoffmann, J. Lengler, A. Steger, D. Steurer, B. Sudakov | |

Abstract | Presentation of recent publications in theoretical computer science, including results by diploma, masters and doctoral candidates. | ||||

Objective | To get an overview of current research in the areas covered by the involved research groups. To present results from the literature. | ||||

Prerequisites / Notice | This seminar takes place as part of the joint research seminar of several theory groups. Intended participation is for students with excellent performance only. Formal restriction is: prior successful participation in a master level seminar in theoretical computer science. | ||||

252-4225-00L | Presenting Theoretical Computer Science Number of participants limited to 24. The deadline for deregistering expires at the end of the second week of the semester. Students who are still registered after that date, but do not attend the seminar, will officially fail the seminar. | 2 credits | 2S | B. Gärtner, M. Ghaffari, R. Kyng, A. Steger, D. Steurer, E. Welzl | |

Abstract | Students present current or classical results from theoretical computer science. | ||||

Objective | Students learn to read, understand and present results from theoretical computer science. The main focus and deliverable is a good presentation of 45 minutes that can easily be followed and understood by the audience. | ||||

Content | Students present current or classical results from theoretical computer science. | ||||

Prerequisites / Notice | The seminar takes place as a block seminar on two Saturdays in April and/or May. Each presentation is jointly prepared and given by two students (procedure according to the seminar website). All students must attend all presentations. | ||||

263-4507-00L | Advances in Distributed Graph AlgorithmsDoes not take place this semester. | 6 credits | 3V + 1U + 1A | M. Ghaffari | |

Abstract | How can a network of computers solve the graph problems needed for running that network? | ||||

Objective | This course will familiarize the students with the algorithmic tools and techniques in local distributed graph algorithms, and overview the recent highlights in the field. This will also prepare the students for independent research at the frontier of this area. This is a special‐topics course in algorithm design. It should be accessible to any student with sufficient theoretical/algorithmic background. In particular, it assumes no familiarity with distributed computing. We only expect that the students are comfortable with the basics of algorithm design and analysis, as well as probability theory. It is possible to take this course simultaneously with the course “Principles of Distributed Computing”. If you are not sure whether you are ready for this class or not, please consult the instructor. | ||||

Content | How can a network of computers solve the graph problems needed for running that network? Answering this and similar questions is the underlying motivation of the area of Distributed Graph Algorithms. The area focuses on the foundational algorithmic aspects in these questions and provides methods for various distributed systems --- e.g., the Internet, a wireless network, a multi-processor computer, etc --- to solve computational problems that can be abstracted as graph problems. For instance, think about shortest path computation in routing, or about coloring and independent set computation in contention resolution. Over the past decade, we have witnessed a renaissance in the area of Distributed Graph Algorithms, with tremendous progress in many directions and solutions for a number of decades-old central problems. This course overviews the highlights of these results. The course will mainly focus on one half of the field, which revolves around locality and local problems. The other half, which relates to the issue of congestion and dealing with limited bandwidth in global problems, will not be addressed in this offering of the course. The course will cover a sampling of the recent developments (and open questions) at the frontier of research of distributed graph algorithms. The material will be based on a compilation of recent papers in this area, which will be provided throughout the semester. The tentative list of topics includes: - The shattering technique for local graph problems and its necessity - Lovasz Local Lemma algorithms, their distributed variants, and distributed applications - Distributed Derandomization - Distributed Lower bounds - Graph Coloring - Complexity Hierarchy and Gaps - Primal-Dual Techniques | ||||

Prerequisites / Notice | The class assumes no knowledge in distributed algorithms/computing. Our only prerequisite is the undergraduate class Algorithms, Probability, and Computing (APC) or any other course that can be seen as the equivalent. In particular, much of what we will discuss uses randomized algorithms and therefore, we will assume that the students are familiar with the tools and techniques in randomized algorithms and analysis (to the extent covered in the APC class). |