Suchergebnis: Katalogdaten im Frühjahrssemester 2021
|Master-Studium (Studienreglement 2020)|
|Vertiefung in Data Management Systems|
|263-3855-00L||Cloud Computing Architecture||W||9 KP||3V + 2U + 3A||G. Alonso, A. Klimovic|
|Kurzbeschreibung||Cloud computing hosts a wide variety of online services that we use on a daily basis, including web search, social networks, and video streaming. This course will cover how datacenter hardware, systems software, and application frameworks are designed for the cloud.|
|Lernziel||After successful completion of this course, students will be able to: 1) reason about performance, energy efficiency, and availability tradeoffs in the design of cloud system software, 2) describe how datacenter hardware is organized and explain why it is organized as such, 3) implement cloud applications as well as analyze and optimize their performance.|
|Inhalt||In this course, we study how datacenter hardware, systems software, and applications are designed at large scale for the cloud. The course covers topics including server design, cluster management, large-scale storage systems, serverless computing, data analytics frameworks, and performance analysis.|
|Skript||Lecture slides will be available on the course website.|
|Voraussetzungen / Besonderes||Undergraduate courses in 1) computer architecture and 2) operating systems, distributed systems, and/or database systems are strongly recommended.|
|263-3501-00L||Future Internet |
Takes place for the last time!
|W||7 KP||1V + 1U + 4A||A. Singla|
|Kurzbeschreibung||This course will discuss recent advances in networking, with a focus on the Internet, with topics ranging from the algorithmic design of applications like video streaming to the likely near-future of satellite-based networking.|
|Lernziel||The goals of the course are to build on basic undergraduate-level networking, and provide an understanding of the tradeoffs and existing technology in the design of large, complex networked systems, together with concrete experience of the challenges through a series of lab exercises.|
|Inhalt||The focus of the course is on principles, architectures, protocols, and applications used in modern networked systems. Example topics include:|
- How video streaming services like Netflix work, and research on improving their performance.
- How Web browsing could be made faster
- How the Internet's protocols are improving
- Exciting developments in satellite-based networking (ala SpaceX)
- The role of data centers in powering Internet services
A series of programming assignments will form a substantial part of the course grade.
|Skript||Lecture slides will be made available at the course Web site: https://ndal.ethz.ch/courses/fi.html|
|Literatur||No textbook is required, but there will be regularly assigned readings from research literature, liked to the course Web site: https://ndal.ethz.ch/courses/fi.html.|
|Voraussetzungen / Besonderes||An undergraduate class covering the basics of networking, such as Internet routing and TCP. At ETH, Computer Networks (252-0064-00L) and Communication Networks (227-0120-00L) suffice. Similar courses from other universities are acceptable too.|
|263-3800-00L||Advanced Operating Systems||W||7 KP||2V + 2U + 2A||D. Cock, T. Roscoe|
|Kurzbeschreibung||This course is intended to give students a thorough understanding of design and implementation issues for modern operating systems, with a particular emphasis on the challenges of modern hardware features. We will cover key design issues in implementing an operating system, such as memory management, scheduling, protection, inter-process communication, device drivers, and file systems.|
|Lernziel||The goals of the course are, firstly, to give students:|
1. A broader perspective on OS design than that provided by knowledge of Unix or Windows, building on the material in a standard undergraduate operating systems class
2. Practical experience in dealing directly with the concurrency, resource management, and abstraction problems confronting OS designers and implementers
3. A glimpse into future directions for the evolution of OS and computer hardware design
|Inhalt||The course is based on practical implementation work, in C and assembly language, and requires solid knowledge of both. The work is mostly carried out in teams of 3-4, using real hardware, and is a mixture of team milestones and individual projects which fit together into a complete system at the end. Emphasis is also placed on a final report which details the complete finished artifact, evaluates its performance, and discusses the choices the team made while building it.|
|Voraussetzungen / Besonderes||The course is based around a milestone-oriented project, where students work in small groups to implement major components of a microkernel-based operating system. The final assessment will be a combination grades awarded for milestones during the course of the project, a final written report on the work, and a set of test cases run on the final code.|
|227-0558-00L||Principles of Distributed Computing||W||7 KP||2V + 2U + 2A||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.)|
|Vertiefung in Machine Intelligence|
|261-5110-00L||Optimization for Data Science||W||10 KP||3V + 2U + 4A||B. Gärtner, D. Steurer, N. He|
|Kurzbeschreibung||This course provides an in-depth theoretical treatment of optimization methods that are particularly relevant in data science.|
|Lernziel||Understanding the theoretical guarantees (and their limits) of relevant optimization methods used in data science. Learning general paradigms to deal with optimization problems arising in data science.|
|Inhalt||This course provides an in-depth theoretical treatment of optimization methods that are particularly relevant in machine learning and data science.|
In the first part of the course, we will first give a brief introduction to convex optimization, with some basic motivating examples from machine learning. Then we will analyse classical and more recent first and second order methods for convex optimization: gradient descent, Nesterov's accelerated method, proximal and splitting algorithms, subgradient descent, stochastic gradient descent, variance-reduced methods, Newton's method, and Quasi-Newton methods. The emphasis will be on analysis techniques that occur repeatedly in convergence analyses for various classes of convex functions. We will also discuss some classical and recent theoretical results for nonconvex optimization.
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-3710-00L||Machine Perception |
Number of participants limited to 200.
|W||8 KP||3V + 2U + 2A||O. Hilliges, S. Tang|
|Kurzbeschreibung||Recent developments in neural networks (aka “deep learning”) have drastically advanced the performance of machine perception systems in a variety of areas including computer vision, robotics, and intelligent UIs. This course is a deep dive into deep learning algorithms and architectures with applications to a variety of perceptual tasks.|
|Lernziel||Students will learn about fundamental aspects of modern deep learning approaches for perception. Students will learn to implement, train and debug their own neural networks and gain a detailed understanding of cutting-edge research in learning-based computer vision, robotics and HCI. The final project assignment will involve training a complex neural network architecture and applying it on a real-world dataset of human activity.|
The core competency acquired through this course is a solid foundation in deep-learning algorithms to process and interpret human input into computing systems. In particular, students should be able to develop systems that deal with the problem of recognizing people in images, detecting and describing body parts, inferring their spatial configuration, performing action/gesture recognition from still images or image sequences, also considering multi-modal data, among others.
|Inhalt||We will focus on teaching: how to set up the problem of machine perception, the learning algorithms, network architectures and advanced deep learning concepts in particular probabilistic deep learning models |
The course covers the following main areas:
I) Foundations of deep-learning.
II) Probabilistic deep-learning for generative modelling of data (latent variable models, generative adversarial networks and auto-regressive models).
III) Deep learning in computer vision, human-computer interaction and robotics.
Specific topics include:
I) Deep learning basics:
a) Neural Networks and training (i.e., backpropagation)
b) Feedforward Networks
c) Timeseries modelling (RNN, GRU, LSTM)
d) Convolutional Neural Networks for classification
II) Probabilistic Deep Learning:
a) Latent variable models (VAEs)
b) Generative adversarial networks (GANs)
c) Autoregressive models (PixelCNN, PixelRNN, TCNs)
III) Deep Learning techniques for machine perception:
a) Fully Convolutional architectures for dense per-pixel tasks (i.e., instance segmentation)
b) Pose estimation and other tasks involving human activity
c) Deep reinforcement learning
IV) Case studies from research in computer vision, HCI, robotics and signal processing
Book by Ian Goodfellow and Yoshua Bengio
|Voraussetzungen / Besonderes||*** |
In accordance with the ETH Covid-19 master plan the lecture will be fully virtual. Details on the course website.
This is an advanced grad-level course that requires a background in machine learning. Students are expected to have a solid mathematical foundation, in particular in linear algebra, multivariate calculus, and probability. The course will focus on state-of-the-art research in deep-learning and will not repeat basics of machine learning
Please take note of the following conditions:
1) The number of participants is limited to 200 students (MSc and PhDs).
2) Students must have taken the exam in Machine Learning (252-0535-00) or have acquired equivalent knowledge
3) All practical exercises will require basic knowledge of Python and will use libraries such as Pytorch, scikit-learn and scikit-image. We will provide introductions to Pytorch and other libraries that are needed but will not provide introductions to basic programming or Python.
The following courses are strongly recommended as prerequisite:
* "Visual Computing" or "Computer Vision"
The course will be assessed by a final written examination in English. No course materials or electronic devices can be used during the examination. Note that the examination will be based on the contents of the lectures, the associated reading materials and the exercises.
|252-0526-00L||Statistical Learning Theory||W||8 KP||3V + 2U + 2A||J. M. Buhmann, C. Cotrini Jimenez|
|Kurzbeschreibung||The course covers advanced methods of statistical learning: |
- Variational methods and optimization.
- Deterministic annealing.
- Clustering for diverse types of data.
- Model validation by information theory.
|Lernziel||The course surveys recent methods of statistical learning. The fundamentals of machine learning, as presented in the courses "Introduction to Machine Learning" and "Advanced Machine Learning", are expanded from the perspective of statistical learning.|
|Inhalt||- Variational methods and optimization. We consider optimization approaches for problems where the optimizer is a probability distribution. We will discuss concepts like maximum entropy, information bottleneck, and deterministic annealing.|
- Clustering. This is the problem of sorting data into groups without using training samples. We discuss alternative notions of "similarity" between data points and adequate optimization procedures.
- Model selection and validation. This refers to the question of how complex the chosen model should be. In particular, we present an information theoretic approach for model validation.
- Statistical physics models. We discuss approaches for approximately optimizing large systems, which originate in statistical physics (free energy minimization applied to spin glasses and other models). We also study sampling methods based on these models.
|Skript||A draft of a script will be provided. Lecture slides will be made available.|
|Literatur||Hastie, Tibshirani, Friedman: The Elements of Statistical Learning, Springer, 2001.|
L. Devroye, L. Gyorfi, and G. Lugosi: A probabilistic theory of pattern recognition. Springer, New York, 1996
|Voraussetzungen / Besonderes||Knowledge of machine learning (introduction to machine learning and/or advanced machine learning)|
Basic knowledge of statistics.
|252-0579-00L||3D Vision||W||5 KP||3G + 1A||M. Pollefeys, V. Larsson|
|Kurzbeschreibung||The course covers camera models and calibration, feature tracking and matching, camera motion estimation via simultaneous localization and mapping (SLAM) and visual odometry (VO), epipolar and mult-view geometry, structure-from-motion, (multi-view) stereo, augmented reality, and image-based (re-)localization.|
|Lernziel||After attending this course, students will:|
1. understand the core concepts for recovering 3D shape of objects and scenes from images and video.
2. be able to implement basic systems for vision-based robotics and simple virtual/augmented reality applications.
3. have a good overview over the current state-of-the art in 3D vision.
4. be able to critically analyze and asses current research in this area.
|Inhalt||The goal of this course is to teach the core techniques required for robotic and augmented reality applications: How to determine the motion of a camera and how to estimate the absolute position and orientation of a camera in the real world. This course will introduce the basic concepts of 3D Vision in the form of short lectures, followed by student presentations discussing the current state-of-the-art. The main focus of this course are student projects on 3D Vision topics, with an emphasis on robotic vision and virtual and augmented reality applications.|
|252-3005-00L||Natural Language Processing |
Number of participants limited to 400.
|W||5 KP||2V + 1U + 1A||R. Cotterell|
|Kurzbeschreibung||This course presents topics in natural language processing with an emphasis on modern techniques, primarily focusing on statistical and deep learning approaches. The course provides an overview of the primary areas of research in language processing as well as a detailed exploration of the models and techniques used both in research and in commercial natural language systems.|
|Lernziel||The objective of the course is to learn the basic concepts in the statistical processing of natural languages. The course will be project-oriented so that the students can also gain hands-on experience with state-of-the-art tools and techniques.|
|Inhalt||This course presents an introduction to general topics and techniques used in natural language processing today, primarily focusing on statistical approaches. The course provides an overview of the primary areas of research in language processing as well as a detailed exploration of the models and techniques used both in research and in commercial natural language systems.|
|Literatur||Jacob Eisenstein: Introduction to Natural Language Processing (Adaptive Computation and Machine Learning series)|
|261-5120-00L||Machine Learning for Health Care |
Number of participants limited to 150.
|W||5 KP||3P + 1A||V. Boeva, G. Rätsch, J. Vogt|
|Kurzbeschreibung||The course will review the most relevant methods and applications of Machine Learning in Biomedicine, discuss the main challenges they present and their current technical problems.|
|Lernziel||During the last years, we have observed a rapid growth in the field of Machine Learning (ML), mainly due to improvements in ML algorithms, the increase of data availability and a reduction in computing costs. This growth is having a profound impact in biomedical applications, where the great variety of tasks and data types enables us to get benefit of ML algorithms in many different ways. In this course we will review the most relevant methods and applications of ML in biomedicine, discuss the main challenges they present and their current technical solutions.|
|Inhalt||The course will consist of four topic clusters that will cover the most relevant applications of ML in Biomedicine: |
1) Structured time series: Temporal time series of structured data often appear in biomedical datasets, presenting challenges as containing variables with different periodicities, being conditioned by static data, etc.
2) Medical notes: Vast amount of medical observations are stored in the form of free text, we will analyze stategies for extracting knowledge from them.
3) Medical images: Images are a fundamental piece of information in many medical disciplines. We will study how to train ML algorithms with them.
4) Genomics data: ML in genomics is still an emerging subfield, but given that genomics data are arguably the most extensive and complex datasets that can be found in biomedicine, it is expected that many relevant ML applications will arise in the near future. We will review and discuss current applications and challenges.
|Voraussetzungen / Besonderes||Data Structures & Algorithms, Introduction to Machine Learning, Statistics/Probability, Programming in Python, Unix Command Line|
Relation to Course 261-5100-00 Computational Biomedicine: This course is a continuation of the previous course with new topics related to medical data and machine learning. The format of Computational Biomedicine II will also be different. It is helpful but not essential to attend Computational Biomedicine before attending Computational Biomedicine II.
|263-5000-00L||Computational Semantics for Natural Language Processing |
Limited number of participants: 80. Last cancellation/deregistration date for this graded semester performance: Friday, 26 March 2021! Please note that after that date no deregistration will be accepted and the course will be considered as "fail".
|W||6 KP||2V + 1U + 2A||M. Sachan|
|Kurzbeschreibung||This course presents an introduction to Natural language processing (NLP) with an emphasis on computational semantics i.e. the process of constructing and reasoning with meaning representations of natural language text.|
|Lernziel||The objective of the course is to learn about various topics in computational semantics and its importance in natural language processing methodology and research. Exercises and the project will be key parts of the course so the students will be able to gain hands-on experience with state-of-the-art techniques in the field.|
|Inhalt||We will take a modern view of the topic, and focus on various statistical and deep learning approaches for computation semantics. We will also overview various primary areas of research in language processing and discuss how the computational semantics view can help us make advances in NLP.|
|Skript||Lecture slides will be made available at the course Web site.|
|Literatur||No textbook is required, but there will be regularly assigned readings from research literature, linked to the course website.|
|Voraussetzungen / Besonderes||The student should have successfully completed a graduate level class in machine learning (252-0220-00L), deep learning (263-3210-00L) or natural language processing (252-3005-00L) before. Similar courses from other universities are acceptable too.|
|263-5300-00L||Guarantees for Machine Learning |
Number of participants limited to 30.
Last cancellation/deregistration date for this graded semester performance: 17 March 2021! Please note that after that date no deregistration will be accepted and a "no show" will appear on your transcript.
|W||7 KP||3G + 3A||F. Yang|
|Kurzbeschreibung||This course is aimed at advanced master and doctorate students who want to conduct independent research on theory for modern machine learning (ML). It teaches classical and recent methods in statistical learning theory commonly used to prove theoretical guarantees for ML algorithms. The knowledge is then applied in independent project work that focuses on understanding modern ML phenomena.|
|Lernziel||Learning objectives: |
- acquire enough mathematical background to understand a good fraction of theory papers published in the typical ML venues. For this purpose, students will learn common mathematical techniques from statistics and optimization in the first part of the course and apply this knowledge in the project work
- critically examine recently published work in terms of relevance and determine impactful (novel) research problems. This will be an integral part of the project work and involves experimental as well as theoretical questions
- find and outline an approach (some subproblem) to prove a conjectured theorem. This will be practiced in lectures / exercise and homeworks and potentially in the final project.
- effectively communicate and present the problem motivation, new insights and results to a technical audience. This will be primarily learned via the final presentation and report as well as during peer-grading of peer talks.
|Inhalt||This course touches upon foundational methods in statistical learning theory aimed at proving theoretical guarantees for machine learning algorithms, touching on the following topics|
- concentration bounds
- uniform convergence and empirical process theory
- high-dimensional statistics (e.g. sparsity)
- regularization for non-parametric statistics (e.g. in RKHS, neural networks)
- implicit regularization via gradient descent (e.g. margins, early stopping)
- minimax lower bounds
The project work focuses on current theoretical ML research that aims to understand modern phenomena in machine learning, including but not limited to
- how overparameterization could help generalization ( RKHS, NN )
- how overparameterization could help optimization ( non-convex optimization, loss landscape )
- complexity measures and approximation theoretic properties of randomly initialized and trained NN
- generalization of robust learning ( adversarial robustness, standard and robust error tradeoff, distribution shift)
|Voraussetzungen / Besonderes||It’s absolutely necessary for students to have a strong mathematical background (basic real analysis, probability theory, linear algebra) and good knowledge of core concepts in machine learning taught in courses such as “Introduction to Machine Learning”, “Regression”/ “Statistical Modelling”. In addition to these prerequisites, this class requires a high degree of mathematical maturity—including abstract thinking and the ability to understand and write proofs. |
Students have usually taken a subset of Fundamentals of Mathematical Statistics, Probabilistic AI, Neural Network Theory, Optimization for Data Science, Advanced ML, Statistical Learning Theory, Probability Theory (D-MATH)
|227-0434-10L||Mathematics of Information||W||8 KP||3V + 2U + 2A||H. Bölcskei|
|Kurzbeschreibung||The class focuses on mathematical aspects of |
1. Information science: Sampling theorems, frame theory, compressed sensing, sparsity, super-resolution, spectrum-blind sampling, subspace algorithms, dimensionality reduction
2. Learning theory: Approximation theory, greedy algorithms, uniform laws of large numbers, Rademacher complexity, Vapnik-Chervonenkis dimension
|Lernziel||The aim of the class is to familiarize the students with the most commonly used mathematical theories in data science, high-dimensional data analysis, and learning theory. The class consists of the lecture, exercise sessions with homework problems, and of a research project, which can be carried out either individually or in groups. The research project consists of either 1. software development for the solution of a practical signal processing or machine learning problem or 2. the analysis of a research paper or 3. a theoretical research problem of suitable complexity. Students are welcome to propose their own project at the beginning of the semester. The outcomes of all projects have to be presented to the entire class at the end of the semester.|
|Inhalt||Mathematics of Information|
1. Signal representations: Frame theory, wavelets, Gabor expansions, sampling theorems, density theorems
2. Sparsity and compressed sensing: Sparse linear models, uncertainty relations in sparse signal recovery, super-resolution, spectrum-blind sampling, subspace algorithms (ESPRIT), estimation in the high-dimensional noisy case, Lasso
3. Dimensionality reduction: Random projections, the Johnson-Lindenstrauss Lemma
Mathematics of Learning
4. Approximation theory: Nonlinear approximation theory, best M-term approximation, greedy algorithms, fundamental limits on compressibility of signal classes, Kolmogorov-Tikhomirov epsilon-entropy of signal classes, optimal compression of signal classes
5. Uniform laws of large numbers: Rademacher complexity, Vapnik-Chervonenkis dimension, classes with polynomial discrimination
|Skript||Detailed lecture notes will be provided at the beginning of the semester.|
|Voraussetzungen / Besonderes||This course is aimed at students with a background in basic linear algebra, analysis, statistics, and probability. |
We encourage students who are interested in mathematical data science to take both this course and "401-4944-20L Mathematics of Data Science" by Prof. A. Bandeira. The two courses are designed to be complementary.
H. Bölcskei and A. Bandeira
|401-3632-00L||Computational Statistics||W||8 KP||3V + 1U||M. Mächler|
|Kurzbeschreibung||We discuss modern statistical methods for data analysis, including methods for data exploration, prediction and inference. We pay attention to algorithmic aspects, theoretical properties and practical considerations. The class is hands-on and methods are applied using the statistical programming language R.|
|Lernziel||The student obtains an overview of modern statistical methods for data analysis, including their algorithmic aspects and theoretical properties. The methods are applied using the statistical programming language R.|
|Inhalt||See the class website|
|Voraussetzungen / Besonderes||At least one semester of (basic) probability and statistics.|
Programming experience is helpful but not required.
|Vertiefung in Secure and Reliable Systems|
|263-2815-00L||Automated Software Testing||W||7 KP||2V + 1U + 3A||Z. Su|
|Kurzbeschreibung||This course introduces students to classic and modern techniques for the automated testing and analysis of software systems for reliability, security, and performance. It covers both techniques and their applications in various domains (e.g., compilers, databases, theorem provers, operating systems, machine/deep learning, and mobile applications), focusing on the latest, important results.|
|Lernziel||* Learn fundamental and practical techniques for software testing and analysis|
* Understand the challenges, open issues and opportunities across a variety of domains (security/systems/compilers/databases/mobile/AI/education)
* Understand how latest automated testing and analysis techniques work
* Gain conceptual and practical experience in techniques/tools for reliability, security, and performance
* Learn how to perform original and impactful research in this area
|Inhalt||The course will be organized into the following components: (1) classic and modern testing and analysis techniques (coverage metrics, mutation testing, metamorphic testing, combinatorial testing, symbolic execution, fuzzing, static analysis, etc.), (2) latest results on techniques and applications from diverse domains, and (3) open challenges and opportunities.|
A major component of this course is a class project. All students (individually or two-person teams) are expected to select and complete a course project. Ideally, the project is original research related in a broad sense to automated software testing and analysis. Potential project topics will also be suggested by the teaching staff.
Students must select a project and write a one or two pages proposal describing why what the proposed project is interesting and giving a work schedule. Students will also write a final report describing the project and prepare a 20-30 minute presentation at the end of the course.
The due dates for the project proposal, final report, and project presentation will be announced.
The course will cover results from the Advanced Software Technologies (AST) Lab at ETH as well as notable results elsewhere, providing good opportunities for potential course project topics as well as MSc project/thesis topics.
|Skript||Lecture notes/slides and other lecture materials/handouts will be available online.|
|Literatur||Reading material and links to tools will be published on the course website.|
|Voraussetzungen / Besonderes||The prerequisites for this course are some programming and algorithmic experience. Background and experience in software engineering, programming languages/compilers, and security (as well as operating systems and databases) can be beneficial.|
|263-2925-00L||Program Analysis for System Security and Reliability||W||7 KP||2V + 1U + 3A||M. Vechev|
|Kurzbeschreibung||Security issues in modern systems (blockchains, datacenters, deep learning, etc.) result in billions of losses due to hacks and system downtime. This course introduces fundamental techniques (ranging from automated analysis, machine learning, synthesis, zero-knowledge and their combinations) that can be applied in practice so to build more secure and reliable modern systems.|
|Lernziel||* Understand the fundamental techniques used to create modern security and reliability analysis engines that are used worldwide.|
* Understand how symbolic techniques are combined with machine learning (e.g., deep learning, reinforcement learning) so to create new kinds of learning-based analyzers.
* Understand how to quantify and fix security and reliability issues in modern deep learning models.
* Understand open research questions from both theoretical and practical perspectives.
|Inhalt||Please see: https://www.sri.inf.ethz.ch/teaching/pass2021 for detailed course content.|
|263-4660-00L||Applied Cryptography |
Number of participants limited to 150.
|W||8 KP||3V + 2U + 2P||K. Paterson|
|Kurzbeschreibung||This course will introduce the basic primitives of cryptography, using rigorous syntax and game-based security definitions. The course will show how these primitives can be combined to build cryptographic protocols and systems.|
|Lernziel||The goal of the course is to put students' understanding of cryptography on sound foundations, to enable them to start to build well-designed cryptographic systems, and to expose them to some of the pitfalls that arise when doing so.|
|Inhalt||Basic symmetric primitives (block ciphers, modes, hash functions); generic composition; AEAD; basic secure channels; basic public key primitives (encryption,signature, DH key exchange); ECC; randomness; applications.|
|Literatur||Textbook: Boneh and Shoup, “A Graduate Course in Applied Cryptography”, https://crypto.stanford.edu/~dabo/cryptobook/BonehShoup_0_4.pdf.|
|Voraussetzungen / Besonderes||Students should have taken the D-INFK Bachelor's course “Information Security" (252-0211-00) or an alternative first course covering cryptography at a similar level. / In this course, we will use Moodle for content delivery: https://moodle-app2.let.ethz.ch/course/view.php?id=14558.|
|252-0408-00L||Cryptographic Protocols||W||6 KP||2V + 2U + 1A||M. Hirt, U. Maurer|
|Kurzbeschreibung||The course presents a selection of hot research topics in cryptography. The choice of topics varies and may include provable security, interactive proofs, zero-knowledge protocols, secret sharing, secure multi-party computation, e-voting, etc.|
|Lernziel||Indroduction to a very active research area with many gems and paradoxical|
results. Spark interest in fundamental problems.
|Inhalt||The course presents a selection of hot research topics in cryptography. The choice of topics varies and may include provable security, interactive proofs, zero-knowledge protocols, secret sharing, secure multi-party computation, e-voting, etc.|
|Skript||the lecture notes are in German, but they are not required as the entire|
course material is documented also in other course material (in english).
|Voraussetzungen / Besonderes||A basic understanding of fundamental cryptographic concepts |
(as taught for example in the course Information Security or
in the course Cryptography Foundations) is useful, but not required.
|263-2812-00L||Program Verification |
Maximale Teilnehmerzahl: 30.
|W||5 KP||3G + 1A||P. Müller, C. Matheja|
|Kurzbeschreibung||A hands-on introduction to the theory and construction of deductive program verifiers, covering both powerful techniques for formal program reasoning, and a perspective over the tool stack making up modern verification tools.|
|Lernziel||Students will earn the necessary skills for designing, developing, and applying deductive verification tools that enable the modular verification of complex software, including features challenging for reasoning such as heap-based mutable data and concurrency. Students will learn both a variety of fundamental reasoning principles, and how these reasoning ideas can be made practical via automatic tools. |
By the end of the course, students should have a good working understanding and decisions involved with designing and building practical verification tools, including the underlying theory. They will also be able to apply such tools to develop formally-verified programs.
|Inhalt||The course will cover verification techniques and ways to automate them by introducing a verifier for a small core language and then progressively enriching the language with advanced features such as a mutable heap and concurrency. For each language extension, the course will explain the necessary reasoning principles, specification techniques, and tool support. In particular, it will introduce SMT solvers to prove logical formulas, intermediate verification languages to encode verification problems, and source code verifiers to handle feature-rich languages. The course will intermix technical content with hands-on experience.|
|Skript||The slides will be available online.|
|Literatur||Will be announced in the lecture.|
|Voraussetzungen / Besonderes||A basic familiarity with propositional and first-order logic will be assumed. Courses with an emphasis on formal reasoning about programs (such as Formal Methods and Functional Programming) are advantageous background, but are not a requirement.|
|263-4600-00L||Formal Methods for Information Security||W||5 KP||2V + 1U + 1A||S. Krstic, R. Sasse, C. Sprenger|
|Kurzbeschreibung||The course focuses on formal methods for the modeling and analysis of security protocols for critical systems, ranging from authentication protocols for network security to electronic voting protocols and online banking. In addition, we will also introduce the notions of non-interference and runtime monitoring.|
|Lernziel||The students will learn the key ideas and theoretical foundations of formal modeling and analysis of security protocols. The students will complement their theoretical knowledge by solving practical exercises, completing a small project, and using state-of-the-art tools. The students also learn the fundamentals of non-interference and runtime monitoring.|
|Inhalt||The course treats formal methods mainly for the modeling and analysis of security protocols. Cryptographic protocols (such as SSL/TLS, SSH, Kerberos, SAML single-sign on, and IPSec) form the basis for secure communication and business processes. Numerous attacks on published protocols show that the design of cryptographic protocols is extremely error-prone. A rigorous analysis of these protocols is therefore indispensable, and manual analysis is insufficient. The lectures cover the theoretical basis for the (tool-supported) formal modeling and analysis of such protocols. Specifically, we discuss their operational semantics, the formalization of security properties, and techniques and algorithms for their verification.|
The second part of this course will cover a selection of advanced topics in security protocols such as abstraction techniques for efficient verification, secure communication with humans, the link between symbolic protocol models and cryptographic models as well as RFID protocols (a staple of the Internet of Things) and electronic voting protocols, including the relevant privacy properties. Moreover, we will give an introduction to two additional topics: non-interference as a general notion of secure systems, both from a semantic and a programming language perspective (type system), and runtime verification/monitoring to detect violations of security policies expressed as trace properties.
- Seite 1 von 5 Alle