Suchergebnis: Katalogdaten im Frühjahrssemester 2018
|Vertiefung General Studies|
|Kernfächer der Vertiefung General Studies|
|252-0407-00L||Cryptography Foundations||W||7 KP||3V + 2U + 1A||U. Maurer|
|Kurzbeschreibung||Fundamentals and applications of cryptography. Cryptography as a mathematical discipline: reductions, constructive cryptography paradigm, security proofs. The discussed primitives include cryptographic functions, pseudo-randomness, symmetric encryption and authentication, public-key encryption, key agreement, and digital signature schemes. Selected cryptanalytic techniques.|
|Lernziel||The goals are:|
(1) understand the basic theoretical concepts and scientific thinking in cryptography;
(2) understand and apply some core cryptographic techniques and security proof methods;
(3) be prepared and motivated to access the scientific literature and attend specialized courses in cryptography.
|Inhalt||See course description.|
|Voraussetzungen / Besonderes||Familiarity with the basic cryptographic concepts as treated for|
example in the course "Information Security" is required but can
in principle also be acquired in parallel to attending the course.
|252-0538-00L||Shape Modeling and Geometry Processing||W||5 KP||2V + 1U + 1A||S. Coros|
|Kurzbeschreibung||This course covers some of the latest developments in geometric modeling and digital geometry processing. Topics include surface modeling based on polygonal meshes, mesh generation, surface reconstruction, mesh fairing and simplification, discrete differential geometry, interactive shape editing, topics in digital shape fabrication.|
|Lernziel||The students will learn how to design, program and analyze algorithms and systems for interactive 3D shape modeling and digital geometry processing.|
|Inhalt||Recent advances in 3D digital geometry processing have created a plenitude of novel concepts for the mathematical representation and interactive manipulation of geometric models. This course covers some of the latest developments in geometric modeling and digital geometry processing. Topics include surface modeling based on triangle meshes, mesh generation, surface reconstruction, mesh fairing and simplification, discrete differential geometry, interactive shape editing and digital shape fabrication.|
|Skript||Slides and course notes|
|Voraussetzungen / Besonderes||Prerequisites:|
Visual Computing, Computer Graphics or an equivalent class. Experience with C++ programming. Some background in geometry or computational geometry is helpful, but not necessary.
|261-5110-00L||Optimization for Data Science||W||8 KP||3V + 2U + 2A||B. Gärtner, D. Steurer|
|Kurzbeschreibung||This course teaches an overview of modern optimization methods, with applications in particular for machine learning and data science.|
|Lernziel||Understanding the theoretical and practical aspects of relevant optimization methods used in data science. Learning general paradigms to deal with optimization problems arising in data science.|
|Inhalt||This course teaches an overview of modern optimization methods, with applications in particular for machine learning and data science.|
In the first part of the course, we will discuss how classical first and second order methods such as gradient descent and Newton's method can be adapated to scale to large datasets, in theory and in practice. We also cover some new algorithms and paradigms that have been developed specifically in the context of data science. The emphasis is not so much on the application of these methods (many of which are covered in other courses), but on understanding and analyzing the methods themselves.
In the second part, we discuss convex programming relaxations as a powerful and versatile paradigm for designing efficient algorithms to solve computational problems arising in data science. We will learn about this paradigm and develop a unified perspective on it through the lens of the sum-of-squares semidefinite programming hierarchy. As applications, we are discussing non-negative matrix factorization, compressed sensing and sparse linear regression, matrix completion and phase retrieval, as well as robust estimation.
|Voraussetzungen / Besonderes||As background, we require material taught in the course "252-0209-00L Algorithms, Probability, and Computing". It is not necessary that participants have actually taken the course, but they should be prepared to catch up if necessary.|
|263-2925-00L||Program Analysis for System Security and Reliability||W||5 KP||2V + 1U + 1A||M. Vechev|
|Kurzbeschreibung||The course introduces modern analysis and synthesis techniques (both, deterministic and probabilistic) and shows how to apply these methods to build reliable and secure systems spanning the domains of blockchain, computer networks and deep learning.|
|Lernziel||* Understand how classic analysis and synthesis techniques work, including discrete and probabilistic methods.|
* Understand how to apply the methods to generate attacks and create defenses against applications in blockchain, computer networks and deep learning.
* Understand the state-of-the-art in the area as well as future trends.
|Inhalt||The course will illustrate how the methods can be used to create more secure and reliable systems across four application domains:|
Part I: Analysis and Synthesis for Computer Networks:
1. Analysis: Datalog, Batfish
2. Synthesis: CEGIS, SyNET (http://synet.ethz.ch)
3. Probabilistic: (PSI: http://psisolver.org), its applications to networks (Bayonet)
Part II: Blockchain security
1. Introduction to space and tools.
2. Automated symbolic reasoning.
3. Applications: verification of smart contracts (http://www.securify.ch)
Part III: Security and Robustness of Deep Learning:
1. Basics: affine transforms, activation functions
2. Attacks: gradient based method to adversarial generation
3. Defenses: affine domains, AI2 (http://ai2.ethz.ch)
Part IV: Probabilistic Security:
1. Enforcement: PSI + Spire.
2. Graphical models: CRFs, Structured SVM, Pseudo-likelihood.
3. Practical statistical de-obfuscation: DeGuard: http://apk-deguard.com, JSNice: http://jsnice.org, and more.
To gain a deeper understanding, the course will involve a hands-on programming project.
|227-0558-00L||Principles of Distributed Computing||W||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
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.)|
|263-2300-00L||How To Write Fast Numerical Code |
Findet dieses Semester nicht statt.
Number of participants limited to 84.
Prerequisite: Master student, solid C programming skills.
|W||6 KP||3V + 2U||M. Püschel|
|Kurzbeschreibung||This course introduces the student to the foundations and state-of-the-art techniques in developing high performance software for numerical functionality such as linear algebra and others. The focus is on optimizing for the memory hierarchy and for special instruction sets. Finally, the course will introduce the recent field of automatic performance tuning.|
|Lernziel||Software performance (i.e., runtime) arises through the interaction of algorithm, its implementation, and the microarchitecture the program is run on. The first goal of the course is to provide the student with an understanding of this interaction, and hence software performance, focusing on numerical or mathematical functionality. The second goal is to teach a general systematic strategy how to use this knowledge to write fast software for numerical problems. This strategy will be trained in a few homeworks and semester-long group projects.|
|Inhalt||The fast evolution and increasing complexity of computing platforms pose a major challenge for developers of high performance software for engineering, science, and consumer applications: it becomes increasingly harder to harness the available computing power. Straightforward implementations may lose as much as one or two orders of magnitude in performance. On the other hand, creating optimal implementations requires the developer to have an understanding of algorithms, capabilities and limitations of compilers, and the target platform's architecture and microarchitecture. |
This interdisciplinary course introduces the student to the foundations and state-of-the-art techniques in high performance software development using important functionality such as linear algebra functionality, transforms, filters, and others as examples. The course will explain how to optimize for the memory hierarchy, take advantage of special instruction sets, and, if time permits, how to write multithreaded code for multicore platforms. Much of the material is based on state-of-the-art research.
Further, a general strategy for performance analysis and optimization is introduced that the students will apply in group projects that accompany the course. Finally, the course will introduce the students to the recent field of automatic performance tuning.
- Seite 1 von 1