Suchergebnis: Katalogdaten im Frühjahrssemester 2021

Cyber Security Master Information
Vertiefungsgebiet
Kernfächer
NummerTitelTypECTSUmfangDozierende
263-4660-00LApplied Cryptography Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 150.
W8 KP3V + 2U + 2PK. Paterson
KurzbeschreibungThis 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.
LernzielThe 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.
InhaltBasic 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.
LiteraturTextbook: Boneh and Shoup, “A Graduate Course in Applied Cryptography”, https://crypto.stanford.edu/~dabo/cryptobook/BonehShoup_0_4.pdf.
Voraussetzungen / BesonderesStudents 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.
Wahlfächer
NummerTitelTypECTSUmfangDozierende
252-0408-00LCryptographic Protocols Information W6 KP2V + 2U + 1AM. Hirt, U. Maurer
KurzbeschreibungThe 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.
LernzielIndroduction to a very active research area with many gems and paradoxical
results. Spark interest in fundamental problems.
InhaltThe 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.
Skriptthe 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 / BesonderesA 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-2925-00LProgram Analysis for System Security and Reliability Information W7 KP2V + 1U + 3AM. Vechev
KurzbeschreibungSecurity 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.
InhaltPlease see: https://www.sri.inf.ethz.ch/teaching/pass2021 for detailed course content.
263-4600-00LFormal Methods for Information Security Information W5 KP2V + 1U + 1AS. Krstic, R. Sasse, C. Sprenger
KurzbeschreibungThe 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.
LernzielThe 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.
InhaltThe 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.
263-4656-00LDigital Signatures Information W5 KP2V + 2AD. Hofheinz
KurzbeschreibungDigital signatures as one central cryptographic building block. Different security goals and security definitions for digital signatures, followed by a variety of popular and fundamental signature schemes with their security analyses.
LernzielThe student knows a variety of techniques to construct and analyze the security of digital signature schemes. This includes modularity as a central tool of constructing secure schemes, and reductions as a central tool to proving the security of schemes.
InhaltWe will start with several definitions of security for signature schemes, and investigate the relations among them. We will proceed to generic (but inefficient) constructions of secure signatures, and then move on to a number of efficient schemes based on concrete computational hardness assumptions. On the way, we will get to know paradigms such as hash-then-sign, one-time signatures, and chameleon hashing as central tools to construct secure signatures.
LiteraturJonathan Katz, "Digital Signatures."
Voraussetzungen / BesonderesIdeally, students will have taken the D-INFK Bachelors course "Information Security" or an equivalent course at Bachelors level.
Seminar
NummerTitelTypECTSUmfangDozierende
252-2603-00LSeminar on Systems Security Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 22.

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.
W2 KP2SS. Shinde
KurzbeschreibungThe seminar will focus on fundamental and recent topics in systems
security.
LernzielThe learning objective is to analyze selected research
papers published at top systems+security venues and then identify open
problems in this space. The seminar will achieve this via several
components: reading papers, technical presentations, writing analysis
and critique summaries, class discussions, and exploring potential
research topics.
InhaltEach student will pick one paper from the selected list, present it in
the class, and lead the discussion for that paper. All students will
read at most two research papers per week and submit their critique
summaries before each class.
Voraussetzungen / BesonderesStudents who are either interested in security research or are
exploring thesis topics are highly encouraged to take this course.
Students with systems/architecture/verification/PL expertise and basic
security understanding are welcome.
263-4651-00LCurrent Topics in Cryptography Information Belegung eingeschränkt - Details anzeigen
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.
W2 KP2SD. Hofheinz, U. Maurer, K. Paterson
KurzbeschreibungIn this seminar course, students present and discuss a variety of recent research papers in Cryptography.
LernzielIndependent study of scientific literature and assessment of its contributions as well as learning and practicing presentation techniques.
InhaltThe course lecturers will provide a list of papers from which students will select.
LiteraturThe reading list will be published on the course website.
Voraussetzungen / BesonderesIdeally, students will have taken the D-INFK Bachelors course “Information Security" or an equivalent course at Bachelors level. Ideally, they will have attended or will attend in parallel the Masters course in "Applied Cryptography”.
Semesterprojekt
NummerTitelTypECTSUmfangDozierende
260-0100-00LSemester Project Belegung eingeschränkt - Details anzeigen
Only for Cyber Security MSc
W12 KP26AProfessor/innen
KurzbeschreibungThe Semester Project provides students with the opportunity to apply acquired knowledge and skills.
LernzielThe students can gain hand-on experience by solving independently a technical-scientific problem.
Voraussetzungen / BesonderesPrerequisites: At least one core course in Cyber Security and one inter focus course must have been completed successfully.
Ergänzung
Computational Science
Kernfächer
NummerTitelTypECTSUmfangDozierende
401-3632-00LComputational StatisticsW8 KP3V + 1UM. Mächler
KurzbeschreibungWe 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.
LernzielThe 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.
InhaltSee the class website
Voraussetzungen / BesonderesAt least one semester of (basic) probability and statistics.

Programming experience is helpful but not required.
Wahlfächer
NummerTitelTypECTSUmfangDozierende
252-0526-00LStatistical Learning Theory Information W8 KP3V + 2U + 2AJ. M. Buhmann, C. Cotrini Jimenez
KurzbeschreibungThe course covers advanced methods of statistical learning:

- Variational methods and optimization.
- Deterministic annealing.
- Clustering for diverse types of data.
- Model validation by information theory.
LernzielThe 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.
SkriptA draft of a script will be provided. Lecture slides will be made available.
LiteraturHastie, 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 / BesonderesKnowledge of machine learning (introduction to machine learning and/or advanced machine learning)
Basic knowledge of statistics.
261-5120-00LMachine Learning for Health Care Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 150.
W5 KP3P + 1AV. Boeva, G. Rätsch, J. Vogt
KurzbeschreibungThe 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.
LernzielDuring 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.
InhaltThe 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 / BesonderesData 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-5300-00LGuarantees for Machine Learning Information Belegung eingeschränkt - Details anzeigen
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.
W7 KP3G + 3AF. Yang
KurzbeschreibungThis 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.
LernzielLearning 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.
InhaltThis 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 / BesonderesIt’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)
Distributed Systems
Kernfächer
NummerTitelTypECTSUmfangDozierende
227-0558-00LPrinciples of Distributed Computing Information W7 KP2V + 2U + 2AR. Wattenhofer, M. Ghaffari
KurzbeschreibungWe 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.
LernzielDistributed 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.
InhaltDistributed 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
SkriptAvailable. Our course script is used at dozens of other universities around the world.
LiteraturLecture 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
Voraussetzungen / BesonderesCourse pre-requisites: Interest in algorithmic problems. (No particular course needed.)
263-3800-00LAdvanced Operating Systems Information W7 KP2V + 2U + 2AD. Cock, T. Roscoe
KurzbeschreibungThis 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.
LernzielThe 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
InhaltThe 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 / BesonderesThe 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.
263-3855-00LCloud Computing Architecture Information W9 KP3V + 2U + 3AG. Alonso, A. Klimovic
KurzbeschreibungCloud 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.
LernzielAfter 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.
InhaltIn 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.
SkriptLecture slides will be available on the course website.
Voraussetzungen / BesonderesUndergraduate courses in 1) computer architecture and 2) operating systems, distributed systems, and/or database systems are strongly recommended.
Wahlfächer
NummerTitelTypECTSUmfangDozierende
252-0312-00LUbiquitous Computing Information W6 KP2V + 3AC. Holz
KurzbeschreibungUbiquitous Computing means interacting with information and with each other anywhere, mediated through miniature technology everywhere. We will investigate the technical aspects of Ubicomp, particularly sensing, processing, and sense making: input (touch & gesture), activity, monitoring cardiovascular health and neurological conditions, context & location sensing, affective computing.
LernzielThe course will combine high-level concepts with low-level technical methods needed to sense, detect, and understand them.

High-level:
– input modalities for interactive systems (touch, gesture)
– "activities" and "events" (exercises and other mechanical activities such as movements and resulting vibrations)
– health monitoring (basic cardiovascular physiology)
– location (GPS, urban simulations, smart cities and development)
– affective computing (emotions, mood, personality)

Low-level:
– sampling (Shannon Nyquist) and filtering (FIR, IIR), time and frequency domains (Fourier transforms)
– cross-modal sensor systems, signal synchronization and correlation
– event detection, classification, prediction using basic signal processing as well as learning-based methods
– sensor types: optical, mechanical/acoustic, electromagnetic

– signals modalities and processing of: application (modalities/methods)
* touch detection (resistive sensing, capacitive sensing, diffuse illumination/DI, spectral reflections, frustrated total internal reflection/FTIR, fingerprint scanning, surface-acoustic waves)
* gesture recognition (inertial sensing through accelerometers, gyroscopes)
* activity detection and tracking (inertial, acoustic, vibrotactile for classification, counting, vibrometry)
* occupation and use (electricity monitoring, water consumption, single-point sensing)
* cardiovascular (electrocardioagraphy, photoplethysmography, pulse oximetry, ballistocardiography, blood pressure, pulse transit time, bio impedance)
* affective computing (heart rate variability, R-R intervals, electrodermal activity, sympathetic tone, facial expressions)
* neurological (fatigue, fatigability)
* location (GPS, BLE, Wifi)
Inhalt"The most profound technologies are those that disappear. They weave themselves into the fabric of everyday life until they are indistinguishable from it" — Mark Weiser, 1991.

This is the premise of Ubiquitous Computing, a vision that is slowly becoming reality as everything is a device and we can interact with information and with each other anywhere, mediated through miniature technology. Along with this change, interaction modalities have changed, too, from explicit input on keyboards and mice to implicit and passively observed input through sensors in the environment (e.g., speakers, cameras, temperature/occupancy detectors) and those we now wear on our bodies (e.g., health sensors, activity sensors, miniature computers we call smartwatches).

In this course, we will look at the technical side of Ubicomp, particularly
– sensing (incl. 'signals', sampling, data acquisition methods, controlled user studies, uncontrolled studies in-the-wild),
– processing (incl. frequencies, feature extraction, detection), and
– sense making: input sensing (touch & gesture), activity sensing (motion), monitoring cardiovascular health, affective state, neurological conditions (with basics on cardiovascular physiology + PPG, PulseOx, ECG, EDA, BCG, SCG, HRV, BioZ, IPG, PAT, PTT), context & location sensing (GPS/Wifi, motion).

Lectures will be accompanied by practical sessions that focus on sensor modalities and signal processing. Here, we will work on existing data sets and devise methods to record our own data for processing and prediction purposes.

A series of reading assignments, covering both well-established publications in Ubicomp as well as emerging results and methods, will bridge the fundamentals and topics taught in class to academic research and real-world problems.

More information on the course site: https://teaching.siplab.org/ubiquitous_computing/2021/
SkriptCopies of slides will be made available. Lectures will be recorded and made available online.

More information on the course site: https://teaching.siplab.org/ubiquitous_computing/2021/
LiteraturWill be provided in the lecture. To put you in the mood:
Mark Weiser: The Computer for the 21st Century. Scientific American, September 1991, pp. 94-104
252-0817-00LDistributed Systems Laboratory Information W10 KP9PG. Alonso, T. Hoefler, A. Klimovic, A. Singla, R. Wattenhofer, C. Zhang
KurzbeschreibungEntwicklung und / oder Evaluation eines umfangreicheren praktischen Systems mit Technologien aus dem Gebiet der verteilten Systeme. Das Projekt kann aus unterschiedlichen Teilbereichen (von Web-Services bis hin zu ubiquitären Systemen) stammen; typische Technologien umfassen drahtlose Ad-hoc-Netze oder Anwendungen auf Mobiltelefonen.
LernzielErwerb praktischer Kenntnisse bei Entwicklung und / oder Evaluation eines umfangreicheren praktischen Systems mit Technologien aus dem Gebiet der verteilten Systeme.
InhaltEntwicklung und / oder Evaluation eines umfangreicheren praktischen Systems mit Technologien aus dem Gebiet der verteilten Systeme. Das Projekt kann aus unterschiedlichen Teilbereichen (von Web-Services bis hin zu ubiquitären Systemen) stammen; typische Technologien umfassen drahtlose Ad-hoc-Netze oder Anwendungen auf Mobiltelefonen. Zu diesem Praktikum existiert keine Vorlesung. Bei Interesse bitte einen der beteiligten Professoren oder einen Assistenten der Forschungsgruppen kontaktieren.
263-3710-00LMachine Perception Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 200.
W8 KP3V + 2U + 2AO. Hilliges, S. Tang
KurzbeschreibungRecent 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.
LernzielStudents 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.
InhaltWe 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
LiteraturDeep Learning
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.
Information Systems
Kernfächer
NummerTitelTypECTSUmfangDozierende
263-2925-00LProgram Analysis for System Security and Reliability Information W7 KP2V + 1U + 3AM. Vechev
KurzbeschreibungSecurity 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.
InhaltPlease see: https://www.sri.inf.ethz.ch/teaching/pass2021 for detailed course content.
Wahlfächer
NummerTitelTypECTSUmfangDozierende
252-0312-00LUbiquitous Computing Information W6 KP2V + 3AC. Holz
KurzbeschreibungUbiquitous Computing means interacting with information and with each other anywhere, mediated through miniature technology everywhere. We will investigate the technical aspects of Ubicomp, particularly sensing, processing, and sense making: input (touch & gesture), activity, monitoring cardiovascular health and neurological conditions, context & location sensing, affective computing.
LernzielThe course will combine high-level concepts with low-level technical methods needed to sense, detect, and understand them.

High-level:
– input modalities for interactive systems (touch, gesture)
– "activities" and "events" (exercises and other mechanical activities such as movements and resulting vibrations)
– health monitoring (basic cardiovascular physiology)
– location (GPS, urban simulations, smart cities and development)
– affective computing (emotions, mood, personality)

Low-level:
– sampling (Shannon Nyquist) and filtering (FIR, IIR), time and frequency domains (Fourier transforms)
– cross-modal sensor systems, signal synchronization and correlation
– event detection, classification, prediction using basic signal processing as well as learning-based methods
– sensor types: optical, mechanical/acoustic, electromagnetic

– signals modalities and processing of: application (modalities/methods)
* touch detection (resistive sensing, capacitive sensing, diffuse illumination/DI, spectral reflections, frustrated total internal reflection/FTIR, fingerprint scanning, surface-acoustic waves)
* gesture recognition (inertial sensing through accelerometers, gyroscopes)
* activity detection and tracking (inertial, acoustic, vibrotactile for classification, counting, vibrometry)
* occupation and use (electricity monitoring, water consumption, single-point sensing)
* cardiovascular (electrocardioagraphy, photoplethysmography, pulse oximetry, ballistocardiography, blood pressure, pulse transit time, bio impedance)
* affective computing (heart rate variability, R-R intervals, electrodermal activity, sympathetic tone, facial expressions)
* neurological (fatigue, fatigability)
* location (GPS, BLE, Wifi)
Inhalt"The most profound technologies are those that disappear. They weave themselves into the fabric of everyday life until they are indistinguishable from it" — Mark Weiser, 1991.

This is the premise of Ubiquitous Computing, a vision that is slowly becoming reality as everything is a device and we can interact with information and with each other anywhere, mediated through miniature technology. Along with this change, interaction modalities have changed, too, from explicit input on keyboards and mice to implicit and passively observed input through sensors in the environment (e.g., speakers, cameras, temperature/occupancy detectors) and those we now wear on our bodies (e.g., health sensors, activity sensors, miniature computers we call smartwatches).

In this course, we will look at the technical side of Ubicomp, particularly
– sensing (incl. 'signals', sampling, data acquisition methods, controlled user studies, uncontrolled studies in-the-wild),
– processing (incl. frequencies, feature extraction, detection), and
– sense making: input sensing (touch & gesture), activity sensing (motion), monitoring cardiovascular health, affective state, neurological conditions (with basics on cardiovascular physiology + PPG, PulseOx, ECG, EDA, BCG, SCG, HRV, BioZ, IPG, PAT, PTT), context & location sensing (GPS/Wifi, motion).

Lectures will be accompanied by practical sessions that focus on sensor modalities and signal processing. Here, we will work on existing data sets and devise methods to record our own data for processing and prediction purposes.

A series of reading assignments, covering both well-established publications in Ubicomp as well as emerging results and methods, will bridge the fundamentals and topics taught in class to academic research and real-world problems.

More information on the course site: https://teaching.siplab.org/ubiquitous_computing/2021/
SkriptCopies of slides will be made available. Lectures will be recorded and made available online.

More information on the course site: https://teaching.siplab.org/ubiquitous_computing/2021/
LiteraturWill be provided in the lecture. To put you in the mood:
Mark Weiser: The Computer for the 21st Century. Scientific American, September 1991, pp. 94-104
Software Engineering
Kernfächer
NummerTitelTypECTSUmfangDozierende
263-2925-00LProgram Analysis for System Security and Reliability Information W7 KP2V + 1U + 3AM. Vechev
KurzbeschreibungSecurity 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.
InhaltPlease see: https://www.sri.inf.ethz.ch/teaching/pass2021 for detailed course content.
Wahlfächer
NummerTitelTypECTSUmfangDozierende
263-2812-00LProgram Verification Information Belegung eingeschränkt - Details anzeigen
Maximale Teilnehmerzahl: 30.
W5 KP3G + 1AP. Müller, C. Matheja
KurzbeschreibungA 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.
LernzielStudents 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.
InhaltThe 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.
SkriptThe slides will be available online.
LiteraturWill be announced in the lecture.
Voraussetzungen / BesonderesA 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-2815-00LAutomated Software TestingW7 KP2V + 1U + 3AZ. Su
KurzbeschreibungThis 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
InhaltThe 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.
SkriptLecture notes/slides and other lecture materials/handouts will be available online.
LiteraturReading material and links to tools will be published on the course website.
Voraussetzungen / BesonderesThe 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.
Theoretical Computer Science
Kernfächer
NummerTitelTypECTSUmfangDozierende
261-5110-00LOptimization for Data Science Information W10 KP3V + 2U + 4AB. Gärtner, D. Steurer, N. He
KurzbeschreibungThis course provides an in-depth theoretical treatment of optimization methods that are particularly relevant in data science.
LernzielUnderstanding 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.
InhaltThis 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 / BesonderesAs 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.
Wahlfächer
NummerTitelTypECTSUmfangDozierende
252-1424-00LModels of ComputationW6 KP2V + 2U + 1AM. Cook
KurzbeschreibungThis course surveys many different models of computation: Turing Machines, Cellular Automata, Finite State Machines, Graph Automata, Circuits, Tilings, Lambda Calculus, Fractran, Chemical Reaction Networks, Hopfield Networks, String Rewriting Systems, Tag Systems, Diophantine Equations, Register Machines, Primitive Recursive Functions, and more.
LernzielThe goal of this course is to become acquainted with a wide variety of models of computation, to understand how models help us to understand the modeled systems, and to be able to develop and analyze models appropriate for new systems.
InhaltThis course surveys many different models of computation: Turing Machines, Cellular Automata, Finite State Machines, Graph Automata, Circuits, Tilings, Lambda Calculus, Fractran, Chemical Reaction Networks, Hopfield Networks, String Rewriting Systems, Tag Systems, Diophantine Equations, Register Machines, Primitive Recursive Functions, and more.
263-4400-00LAdvanced Graph Algorithms and Optimization Information W8 KP3V + 1U + 3AR. Kyng, M. Probst
KurzbeschreibungThis course will cover a number of advanced topics in optimization and graph algorithms.
LernzielThe course will take students on a deep dive into modern approaches to
graph algorithms using convex optimization techniques.

By studying convex optimization through the lens of graph algorithms,
students should develop a deeper understanding of fundamental
phenomena in optimization.

The course will cover some traditional discrete approaches to various graph
problems, especially flow problems, and then contrast these approaches
with modern, asymptotically faster methods based on combining convex
optimization with spectral and combinatorial graph theory.
InhaltStudents should leave the course understanding key
concepts in optimization such as first and second-order optimization,
convex duality, multiplicative weights and dual-based methods,
acceleration, preconditioning, and non-Euclidean optimization.

Students will also be familiarized with central techniques in the
development of graph algorithms in the past 15 years, including graph
decomposition techniques, sparsification, oblivious routing, and
spectral and combinatorial preconditioning.
Voraussetzungen / BesonderesThis course is targeted toward masters and doctoral students with an
interest in theoretical computer science.

Students should be comfortable with design and analysis of algorithms, probability, and linear algebra.

Having passed the course Algorithms, Probability, and Computing (APC) is highly recommended, but not formally required. If you are not
sure whether you're ready for this class or not, please consult the
instructor.
272-0302-00LApproximations- und Online-Algorithmen Information
Findet dieses Semester nicht statt.
W5 KP2V + 1U + 1A
KurzbeschreibungDiese Lerneinheit behandelt approximative Verfahren für schwere Optimierungsprobleme und algorithmische Ansätze zur Lösung von Online-Problemen sowie die Grenzen dieser Ansätze.
LernzielAuf systematische Weise einen Überblick über die verschiedenen Entwurfsmethoden von approximativen Verfahren für schwere Optimierungsprobleme und Online-Probleme zu gewinnen. Methoden kennenlernen, die Grenzen dieser Ansätze aufweisen.
InhaltApproximationsalgorithmen sind einer der erfolgreichsten Ansätze zur Behandlung schwerer Optimierungsprobleme. Dabei untersucht man die sogenannte Approximationsgüte, also das Verhältnis der Kosten einer berechneten Näherungslösung und der Kosten einer (nicht effizient berechenbaren) optimalen Lösung.
Bei einem Online-Problem ist nicht die gesamte Eingabe von Anfang an bekannt, sondern sie erscheint stückweise und für jeden Teil der Eingabe muss sofort ein entsprechender Teil der endgültigen Ausgabe produziert werden. Die Güte eines Algorithmus für ein Online-Problem misst man mit der competitive ratio, also dem Verhältnis der Kosten der berechneten Lösung und der Kosten einer optimalen Lösung, wie man sie berechnen könnte, wenn die gesamte Eingabe bekannt wäre.

Inhalt dieser Lerneinheit sind
- die Klassifizierung von Optimierungsproblemen nach der erreichbaren Approximationsgüte,
- systematische Methoden zum Entwurf von Approximationsalgorithmen (z. B. Greedy-Strategien, dynamische Programmierung, LP-Relaxierung),
- Methoden zum Nachweis der Nichtapproximierbarkeit,
- klassische Online-Probleme wie Paging oder Scheduling-Probleme und Algorithmen zu ihrer Lösung,
- randomisierte Online-Algorithmen,
- Entwurfs- und Analyseverfahren für Online-Algorithmen,
- Grenzen des "competitive ratio"- Modells und Advice-Komplexität als eine Möglichkeit, die Komplexität von Online-Problemen genauer zu messen.
LiteraturDie Vorlesung orientiert sich teilweise an folgenden Büchern:

J. Hromkovic: Algorithmics for Hard Problems, Springer, 2004

D. Komm: An Introduction to Online Computation: Determinism, Randomization, Advice, Springer, 2016

Zusätzliche Literatur:

A. Borodin, R. El-Yaniv: Online Computation and Competitive Analysis, Cambridge University Press, 1998
401-3052-10LGraph Theory Information W10 KP4V + 1UB. Sudakov
KurzbeschreibungBasics, trees, Caley's formula, matrix tree theorem, connectivity, theorems of Mader and Menger, Eulerian graphs, Hamilton cycles, theorems of Dirac, Ore, Erdös-Chvatal, matchings, theorems of Hall, König, Tutte, planar graphs, Euler's formula, Kuratowski's theorem, graph colorings, Brooks' theorem, 5-colorings of planar graphs, list colorings, Vizing's theorem, Ramsey theory, Turán's theorem
LernzielThe students will get an overview over the most fundamental questions concerning graph theory. We expect them to understand the proof techniques and to use them autonomously on related problems.
SkriptLecture will be only at the blackboard.
LiteraturWest, D.: "Introduction to Graph Theory"
Diestel, R.: "Graph Theory"

Further literature links will be provided in the lecture.
Voraussetzungen / BesonderesStudents are expected to have a mathematical background and should be able to write rigorous proofs.
Visual Computing
Kernfächer
NummerTitelTypECTSUmfangDozierende
252-0538-00LShape Modeling and Geometry Processing Information W8 KP2V + 1U + 4AO. Sorkine Hornung
KurzbeschreibungThis course covers the fundamentals and some of the latest developments in geometric modeling and geometry processing. Topics include surface modeling based on point clouds and polygonal meshes, mesh generation, surface reconstruction, mesh fairing and parameterization, discrete differential geometry, interactive shape editing, topics in digital shape fabrication.
LernzielThe students will learn how to design, program and analyze algorithms and systems for interactive 3D shape modeling and geometry processing.
InhaltRecent advances in 3D geometry processing have created a plenitude of novel concepts for the mathematical representation and interactive manipulation of geometric models. This course covers the fundamentals and some of the latest developments in geometric modeling and geometry processing. Topics include surface modeling based on point clouds and triangle meshes, mesh generation, surface reconstruction, mesh fairing and parameterization, discrete differential geometry, interactive shape editing and digital shape fabrication.
SkriptSlides and course notes
Voraussetzungen / BesonderesPrerequisites:
Visual Computing, Computer Graphics or an equivalent class. Experience with C++ programming. Solid background in linear algebra and analysis. Some knowledge of differential geometry, computational geometry and numerical methods is helpful but not a strict requirement.
Wahlfächer
NummerTitelTypECTSUmfangDozierende
252-0526-00LStatistical Learning Theory Information W8 KP3V + 2U + 2AJ. M. Buhmann, C. Cotrini Jimenez
KurzbeschreibungThe course covers advanced methods of statistical learning:

- Variational methods and optimization.
- Deterministic annealing.
- Clustering for diverse types of data.
- Model validation by information theory.
LernzielThe 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.
SkriptA draft of a script will be provided. Lecture slides will be made available.
LiteraturHastie, 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 / BesonderesKnowledge of machine learning (introduction to machine learning and/or advanced machine learning)
Basic knowledge of statistics.
252-0570-00LGame Programming Laboratory Information
Im Masterstudium können zusätzlich zu den Vertiefungsübergreifenden Fächern nur max. 10 Kreditpunkte über Laboratorien erarbeitet werden. Weitere Laboratorien werden auf dem Beiblatt aufgeführt.
W10 KP9PB. Sumner
KurzbeschreibungDas Ziel dieses Kurses ist ein vertieftes Verständnis der Technologie und der Programmierung von Computer-Spielen. Die Studierenden entwerfen und entwickeln in kleinen Gruppen ein Computer-Spiel und machen sich so vertraut mit der Kunst des Spiel-Programmierens.
LernzielDas Ziel dieses neuen Kurses ist es, die Studenten mit der Technologie und der Kunst des Programmierens von modernen dreidimensionalen Computerspielen vertraut zu machen.
InhaltDies ist ein Kurs, der auf die Technologie von modernen dreidimensionalen Computerspielen eingeht. Während des Kurses werden die Studenten in kleinen Gruppen ein Computerspiel entwerfen und entwickeln. Der Schwerpunkt des Kurses wird auf technischen Aspekten der Spielentwicklung wie Rendering, Kinematographie, Interaktion, Physik, Animation und KI liegen. Zusätzlich werden wir aber auch Wert auf kreative Ideen für fortgeschrittenes Gameplay und visuelle Effekte legen.

Der Kurs wird als Labor durchgeführt. Zusätzlich zu Vorträgen und Übungen wird der Kurs in einen praktischen, hands-on Ansatz durchgeführt. Wir treffen uns einmal wöchentlich um technische Aspekte zu besprechen und den Fortschritt der Entwicklung zu verfolgen. Für die Enwicklung verwenden wir MonoGames. Dies ist eine Ansammlung von Bibliotheken und Werkzeugen um die Spieleentwicklung zu erleichtern. Die Entwicklung wird zunächst auf dem PC stattfinden, das Spiel wird dann im weiteren Verlauf auf der Xbox One Konsole eingesetzt.

Am Ende des Kurses werden die Resultate öffentlich präsentiert.
SkriptGame Design Workshop: A Playcentric Approach to Creating Innovative Games by Tracy Fullerton
Voraussetzungen / BesonderesDie Anzahl der Teilnehmer ist begrenzt.

Voraussetzung für die Teilnahme sind:

- Gute Programmierkenntnisse (Java, C++, C#, o.ä.)

- Erfahrung in Computergrafik: Teilnehmer sollten mindestens die Vorlesung Visual Computing besucht haben. Wir empfehlen auch noch die weiterführenden Kurse Introduction to Computer Graphics, Surface Representations and Geometric Modeling, und Physically-based Simulation in Computer Graphics.
252-0579-00L3D Vision Information W5 KP3G + 1AM. Pollefeys, V. Larsson
KurzbeschreibungThe 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.
LernzielAfter 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.
InhaltThe 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-5706-00LMathematical Foundations of Computer Graphics and Vision Information W5 KP2V + 1U + 1AT. Aydin, A. Djelouah
KurzbeschreibungThis course presents the fundamental mathematical tools and concepts used in computer graphics and vision. Each theoretical topic is introduced in the context of practical vision or graphic problems, showcasing its importance in real-world applications.
LernzielThe main goal is to equip the students with the key mathematical tools necessary to understand state-of-the-art algorithms in vision and graphics. In addition to the theoretical part, the students will learn how to use these mathematical tools to solve a wide range of practical problems in visual computing. After successfully completing this course, the students will be able to apply these mathematical concepts and tools to practical industrial and academic projects in visual computing.
InhaltThe theory behind various mathematical concepts and tools will be introduced, and their practical utility will be showcased in diverse applications in computer graphics and vision. The course will cover topics in sampling, reconstruction, approximation, optimization, robust fitting, differentiation, quadrature and spectral methods. Applications will include 3D surface reconstruction, camera pose estimation, image editing, data projection, character animation, structure-aware geometry processing, and rendering.
263-3710-00LMachine Perception Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 200.
W8 KP3V + 2U + 2AO. Hilliges, S. Tang
KurzbeschreibungRecent 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.
LernzielStudents 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.
InhaltWe 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
LiteraturDeep Learning
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.
263-5701-00LVisualization Information W5 KP2V + 1U + 1AM. Gross, T. Günther
KurzbeschreibungThis lecture provides an introduction into visualization of scientific and abstract data.
LernzielThis lecture provides an introduction into the visualization of scientific and abstract data. The lecture introduces into the two main branches of visualization: scientific visualization and information visualization. The focus is set onto scientific data, demonstrating the usefulness and necessity of computer graphics in other fields than the entertainment industry. The exercises contain theoretical tasks on the mathematical foundations such as numerical integration, differential vector calculus, and flow field analysis, while programming exercises familiarize with the Visualization Tool Kit (VTK). In a course project, the learned methods are applied to visualize one real scientific data set. The provided data sets contain measurements of volcanic eruptions, galaxy simulations, fluid simulations, meteorological cloud simulations and asteroid impact simulations.
InhaltThis lecture opens with human cognition basics, and scalar and vector calculus. Afterwards, this is applied to the visualization of air and fluid flows, including geometry-based, topology-based and feature-based methods. Further, the direct and indirect visualization of volume data is discussed. The lecture ends on the viualization of abstract, non-spatial and multi-dimensional data by means of information visualization.
Voraussetzungen / BesonderesFundamentals of differential calculus. Knowledge on numerical mathematics, computer algebra systems, as well as ordinary and partial differential equations is an asset, but not required.
263-5806-00LComputational Models of Motion Information W8 KP2V + 2U + 3AS. Coros, M. Bächer, B. Thomaszewski
KurzbeschreibungThis course covers fundamentals of physics-based modelling and numerical optimization from the perspective of character animation and robotics applications. The methods discussed in class derive their theoretical underpinnings from applied mathematics, control theory and computational mechanics, and they will be richly illustrated using examples ranging from locomotion controllers and crowd simula
LernzielStudents will learn how to represent, model and algorithmically control the behavior of animated characters and real-life robots. The lectures are accompanied by programming assignments (written in C++) and a capstone project.
InhaltOptimal control and trajectory optimization; multibody systems; kinematics; forward and inverse dynamics; constrained and unconstrained numerical optimization; mass-spring models for crowd simulation; FEM; compliant systems; sim-to-real; robotic manipulation of elastically-deforming objects.
Voraussetzungen / BesonderesExperience with C++ programming, numerical linear algebra and multivariate calculus. Some background in physics-based modeling, kinematics and dynamics is helpful, but not necessary.
227-0560-00LDeep Learning for Autonomous Driving Information Belegung eingeschränkt - Details anzeigen
Registration in this class requires the permission of the instructors.
Class size will be limited to 80 students.
Please send an email to Dengxin Dai <dai@vision.ee.ethz.ch> about your courses/projects that are related to machine learning, computer vision, and Robotics.
W6 KP3V + 2PD. Dai, A. Liniger
KurzbeschreibungAutonomous driving has moved from the realm of science fiction to a very real possibility during the past twenty years, largely due to rapid developments of deep learning approaches, automotive sensors, and microprocessor capacity. This course covers the core techniques required for building a self-driving car, especially the practical use of deep learning through this theme.
LernzielStudents will learn about the fundamental aspects of a self-driving car. They will also learn to use modern automotive sensors and HD navigational maps, and to implement, train and debug their own deep neural networks in order to gain a deep understanding of cutting-edge research in autonomous driving tasks, including perception, localization and control.

After attending this course, students will:
1) understand the core technologies of building a self-driving car;
2) have a good overview over the current state of the art in self-driving cars;
3) be able to critically analyze and evaluate current research in this area;
4) be able to implement basic systems for multiple autonomous driving tasks.
InhaltWe will focus on teaching the following topics centered on autonomous driving: deep learning, automotive sensors, multimodal driving datasets, road scene perception, ego-vehicle localization, path planning, and control.

The course covers the following main areas:

I) Foundation
a) Fundamentals of a self-driving car
b) Fundamentals of deep-learning


II) Perception
a) Semantic segmentation and lane detection
b) Depth estimation with images and sparse LiDAR data
c) 3D object detection with images and LiDAR data
d) Object tracking and Lane Detection

III) Localization
a) GPS-based and Vision-based Localization
b) Visual Odometry and Lidar Odometry

IV) Path Planning and Control
a) Path planning for autonomous driving
b) Motion planning and vehicle control
c) Imitation learning and reinforcement learning for self driving cars

The exercise projects will involve training complex neural networks and applying them on real-world, multimodal driving datasets. In particular, students should be able to develop systems that deal with the following problems:
- Sensor calibration and synchronization to obtain multimodal driving data;
- Semantic segmentation and depth estimation with deep neural networks ;
- 3D object detection and tracking in LiDAR point clouds
SkriptThe lecture slides will be provided as a PDF.
Voraussetzungen / BesonderesThis is an advanced grad-level course. Students must have taken courses on machine learning and computer vision or have acquired equivalent knowledge. Students are expected to have a solid mathematical foundation, in particular in linear algebra, multivariate calculus, and probability. All practical exercises will require basic knowledge of Python and will use libraries such as PyTorch, scikit-learn and scikit-image.
227-1034-00LComputational Vision (University of Zurich)
No enrolment to this course at ETH Zurich. Book the corresponding module directly at UZH.
UZH Module Code: INI402

Mind the enrolment deadlines at UZH:
https://www.uzh.ch/cmsssl/en/studies/application/deadlines.html
W6 KP2V + 1UD. Kiper
KurzbeschreibungThis course focuses on neural computations that underlie visual perception. We study how visual signals are processed in the retina, LGN and visual cortex. We study the morpholgy and functional architecture of cortical circuits responsible for pattern, motion, color, and three-dimensional vision.
LernzielThis course considers the operation of circuits in the process of neural computations. The evolution of neural systems will be considered to demonstrate how neural structures and mechanisms are optimised for energy capture, transduction, transmission and representation of information. Canonical brain circuits will be described as models for the analysis of sensory information. The concept of receptive fields will be introduced and their role in coding spatial and temporal information will be considered. The constraints of the bandwidth of neural channels and the mechanisms of normalization by neural circuits will be discussed.
The visual system will form the basis of case studies in the computation of form, depth, and motion. The role of multiple channels and collective computations for object recognition will
be considered. Coordinate transformations of space and time by cortical and subcortical mechanisms will be analysed. The means by which sensory and motor systems are integrated to allow for adaptive behaviour will be considered.
InhaltThis course considers the operation of circuits in the process of neural computations. The evolution of neural systems will be considered to demonstrate how neural structures and mechanisms are optimised for energy capture, transduction, transmission and representation of information. Canonical brain circuits will be described as models for the analysis of sensory information. The concept of receptive fields will be introduced and their role in coding spatial and temporal information will be considered. The constraints of the bandwidth of neural channels and the mechanisms of normalization by neural circuits will be discussed.
The visual system will form the basis of case studies in the computation of form, depth, and motion. The role of multiple channels and collective computations for object recognition will
be considered. Coordinate transformations of space and time by cortical and subcortical mechanisms will be analysed. The means by which sensory and motor systems are integrated to allow for adaptive behaviour will be considered.
LiteraturBooks: (recommended references, not required)
1. An Introduction to Natural Computation, D. Ballard (Bradford Books, MIT Press) 1997.
2. The Handbook of Brain Theorie and Neural Networks, M. Arbib (editor), (MIT Press) 1995.
Vertiefungsübergreifende Fächer
NummerTitelTypECTSUmfangDozierende
263-0007-00LAdvanced Systems Lab Information Belegung eingeschränkt - Details anzeigen
Only for master students, otherwise a special permission by the study administration of D-INFK is required.
W8 KP3V + 2U + 2AM. Püschel, C. Zhang
KurzbeschreibungThis course introduces the student to the foundations and state-of-the-art techniques in developing high performance software for mathematical functionality occurring in various fields in computer science. The focus is on optimizing for a single core and includes optimizing for the memory hierarchy, for special instruction sets, and the possible use of automatic performance tuning.
LernzielSoftware performance (i.e., runtime) arises through the complex interaction of algorithm, its implementation, the compiler used, and the microarchitecture the program is run on. The first goal of the course is to provide the student with an understanding of this "vertical" interaction, and hence software performance, for mathematical functionality. The second goal is to teach a systematic strategy how to use this knowledge to write fast software for numerical problems. This strategy will be trained in several homeworks and a semester-long group project.
InhaltThe 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 mathematical software development using important functionality such as matrix operations, transforms, filters, and others as examples. The course will explain how to optimize for the memory hierarchy, take advantage of special instruction sets, and other details of current processors that require optimization. The concept of automatic performance tuning is introduced. The focus is on optimization for a single core; thus, the course complements others on parallel and distributed computing.

Finally a general strategy for performance analysis and optimization is introduced that the students will apply in group projects that accompany the course.
Voraussetzungen / BesonderesSolid knowledge of the C programming language and matrix algebra.
263-0008-00LComputational Intelligence Lab
Only for master students, otherwise a special permission by the study administration of D-INFK is required.
W8 KP2V + 2U + 3AT. Hofmann
KurzbeschreibungThis laboratory course teaches fundamental concepts in computational science and machine learning with a special emphasis on matrix factorization and representation learning. The class covers techniques like dimension reduction, data clustering, sparse coding, and deep learning as well as a wide spectrum of related use cases and applications.
LernzielStudents acquire fundamental theoretical concepts and methodologies from machine learning and how to apply these techniques to build intelligent systems that solve real-world problems. They learn to successfully develop solutions to application problems by following the key steps of modeling, algorithm design, implementation and experimental validation.

This lab course has a strong focus on practical assignments. Students work in groups of three to four people, to develop solutions to three application problems: 1. Collaborative filtering and recommender systems, 2. Text sentiment classification, and 3. Road segmentation in aerial imagery.

For each of these problems, students submit their solutions to an online evaluation and ranking system, and get feedback in terms of numerical accuracy and computational speed. In the final part of the course, students combine and extend one of their previous promising solutions, and write up their findings in an extended abstract in the style of a conference paper.

(Disclaimer: The offered projects may be subject to change from year to year.)
Inhaltsee course description
Freie Wahlfächer
Den Studierenden stehen alle MSc Lehrveranstaltungent der ETHZ, der EPFL Lausanne und der Universität Zürich zur individuellen Auswahl offen.
» Auswahl aus sämtlichen Lehrveranstaltungen der ETH Zürich
GESS Wissenschaft im Kontext
» siehe Studiengang GESS Wissenschaft im Kontext: Typ A: Förderung allgemeiner Reflexionsfähigkeiten
» Empfehlungen aus dem Bereich GESS Wissenschaft im Kontext (Typ B) für das D-INFK.
» siehe Studiengang GESS Wissenschaft im Kontext: Sprachkurse ETH/UZH
Industriepraktikum
NummerTitelTypECTSUmfangDozierende
260-0700-00LInternship Belegung eingeschränkt - Details anzeigen
Only for Cyber Security MSc
E-0 KPexterne Veranstalter
KurzbeschreibungZiel eines Praktikums ist es, den Studierenden industrielle Arbeitsumgebungen näher zu bringen. Dabei bietet sich ihnen die Gelegenheit, in aktuelle Projekte der betreffenden Institution involviert zu werden.
Lernzielsiehe oben
Master-Arbeit
NummerTitelTypECTSUmfangDozierende
260-0800-00LMaster's Thesis Belegung eingeschränkt - Details anzeigen
Zur Master-Arbeit wird nur zugelassen, wer:
a. das Bachelor-Studium erfolgreich abgeschlossen hat;
b. allfällige Auflagen für die Zulassung zum Master-Studiengang erfüllt hat.
O30 KP64DProfessor/innen
KurzbeschreibungDie Master-Arbeit bildet den Abschluss des Master-Studiums. Die Studierenden sollen mit der Master-Arbeit ihre Fähigkeit zu selbständiger und wissenschaftlich strukturierter Arbeit nachweisen.
LernzielMit der Master-Arbeit sollen die Studierenden Ihre Fähigkeit zu selbständiger und wissenschaftlich strukturierter Tätigkeit aufzeigen.