Suchergebnis: Katalogdaten im Frühjahrssemester 2019

Informatik Master Information
Vertiefungsübergreifende Fächer
NummerTitelTypECTSUmfangDozierende
263-0008-00LComputational Intelligence Lab
Only for master students, otherwise a special permission by the study administration of D-INFK is required.
O8 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
Vertiefungsfächer
Vertiefung in Computational Science
Kernfächer der Vertiefung in Computational Science
NummerTitelTypECTSUmfangDozierende
263-2300-00LHow To Write Fast Numerical Code Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 84.

Prerequisite: Master student, solid C programming skills.

Takes place the last time in this form.
W6 KP3V + 2UM. Püschel
KurzbeschreibungThis course introduces the student to the foundations and state-of-the-art techniques in developing high performance software for mathematical functionality such as matrix operations, transforms, and others. The focus is on optimizing for a single core. This 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.
Wahlfächer der Vertiefung in Computational Science
NummerTitelTypECTSUmfangDozierende
252-0526-00LStatistical Learning Theory Information W7 KP3V + 2U + 1AJ. M. Buhmann
KurzbeschreibungThe course covers advanced methods of statistical learning :
Statistical learning theory;variational methods and optimization, e.g., maximum entropy techniques, information bottleneck, deterministic and simulated annealing; clustering for vectorial, histogram and relational data; model selection; graphical models.
LernzielThe course surveys recent methods of statistical learning. The fundamentals of machine learning as presented in the course "Introduction to Machine Learning" are expanded and in particular, the theory of statistical learning is discussed.
Inhalt# Theory of estimators: How can we measure the quality of a statistical estimator? We already discussed bias and variance of estimators very briefly, but the interesting part is yet to come.

# Variational methods and optimization: We consider optimization approaches for problems where the optimizer is a probability distribution. Concepts we will discuss in this context include:

* Maximum Entropy
* Information Bottleneck
* Deterministic Annealing

# Clustering: The problem of sorting data into groups without using training samples. This requires a definition of ``similarity'' between data points and adequate optimization procedures.

# Model selection: We have already discussed how to fit a model to a data set in ML I, which usually involved adjusting model parameters for a given type of model. Model selection refers to the question of how complex the chosen model should be. As we already know, simple and complex models both have advantages and drawbacks alike.

# Statistical physics models: approaches for large systems approximate optimization, which originate in the statistical physics (free energy minimization applied to spin glasses and other models); sampling methods based on these models
SkriptA draft of a script will be provided;
transparencies of the lectures 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 / BesonderesRequirements:

knowledge of the Machine Learning course
basic knowledge of statistics, interest in statistical methods.

It is recommended that Introduction to Machine Learning (ML I) is taken first; but with a little extra effort Statistical Learning Theory can be followed without the introductory course.
261-5120-00LMachine Learning for Health Care Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 78.

Previously called Computational Biomedicine II
W4 KP3PG. Rätsch
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.
Seminar in Computational Science
NummerTitelTypECTSUmfangDozierende
252-5704-00LAdvanced Methods in Computer Graphics 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 KP2SM. Gross, O. Sorkine Hornung
KurzbeschreibungThis seminar covers advanced topics in computer graphics with a focus on the latest research results. Topics include modeling, rendering, visualization,
animation, physical simulation, computational photography, and others.
LernzielThe goal is to obtain an in-depth understanding of actual problems and
research topics in the field of computer graphics as well as improve
presentation and critical analysis skills.
261-5113-00LComputational Challenges in Medical Genomics Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 20.
W2 KP2SA. Kahles, G. Rätsch
KurzbeschreibungThis seminar discusses recent relevant contributions to the fields of computational genomics, algorithmic bioinformatics, statistical genetics and related areas. Each participant will hold a presentation and lead the subsequent discussion.
LernzielPreparing and holding a scientific presentation in front of peers is a central part of working in the scientific domain. In this seminar, the participants will learn how to efficiently summarize the relevant parts of a scientific publication, critically reflect its contents, and summarize it for presentation to an audience. The necessary skills to succesfully present the key points of existing research work are the same as needed to communicate own research ideas.
In addition to holding a presentation, each student will both contribute to as well as lead a discussion section on the topics presented in the class.
InhaltThe topics covered in the seminar are related to recent computational challenges that arise from the fields of genomics and biomedicine, including but not limited to genomic variant interpretation, genomic sequence analysis, compressive genomics tasks, single-cell approaches, privacy considerations, statistical frameworks, etc.
Both recently published works contributing novel ideas to the areas mentioned above as well as seminal contributions from the past are amongst the list of selected papers.
Voraussetzungen / BesonderesKnowledge of algorithms and data structures and interest in applications in genomics and computational biomedicine.
Vertiefung in Distributed Systems
Kernfächer der Vertiefung in Distributed Systems
NummerTitelTypECTSUmfangDozierende
227-0558-00LPrinciples of Distributed Computing Information W6 KP2V + 2U + 1AR. 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 W6 KP2V + 2U + 1AT. 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.
Wahlfächer der Vertiefung in Distributed Systems
NummerTitelTypECTSUmfangDozierende
252-0312-00LUbiquitous Computing Information W3 KP2VF. Mattern, S. Mayer
KurzbeschreibungUbiquitous computing integrates tiny wirelessly connected computers and sensors into the environment and everyday objects. Main topics: The vision of ubiquitous computing, trends in technology, smart cards, RFID, Personal Area Networks (Bluetooth), sensor networks, location awareness, privacy and security, application areas, economic and social impact.
LernzielThe vision of ubiquitous computing, trends in technology, smart cards, RFID, Personal Area Networks (Bluetooth), sensor networks, location awareness, privacy and security, application areas, economic and social impact.
SkriptCopies of slides will be made available
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
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 KP9PG. Alonso, T. Hoefler, F. Mattern, T. Roscoe, 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-3501-00LFuture Internet Information
Previously called Advanced Computer Networks
W6 KP1V + 1U + 3AA. Singla
KurzbeschreibungThis 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.
LernzielThe 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.
InhaltThe 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.
SkriptLecture slides will be made available at the course Web site: Link
LiteraturNo textbook is required, but there will be regularly assigned readings from research literature, liked to the course Web site: Link.
Voraussetzungen / BesonderesAn 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-3710-00LMachine Perception Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 150.
W5 KP2V + 1U + 1AO. Hilliges
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 / BesonderesThis 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 150 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 TensorFlow, scikit-learn and scikit-image. We will provide introductions to TensorFlow 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-3826-00LData Stream Processing and Analytics Information W6 KP2V + 2U + 1AV. Kalavri
KurzbeschreibungThe course covers fundamentals of large-scale data stream processing. The focus is on the design and architecture of modern distributed streaming systems as well as algorithms for analyzing data streams.
LernzielThis course has the goal of providing an overview of the data stream processing model and introducing modern platforms and tools for anlayzing massive data streams. By the end of the course, students should be able to use techniques for extracting knowledge from continuous, fast data streams. They will also have gained a deep understanding of the design and implementation of modern distributed stream processors through a series of hands-on exercises.
InhaltModern data-driven applications require continuous, low-latency processing of large-scale, rapid data events such as videos, images, emails, chats, clicks, search queries, financial transactions, traffic records, sensor measurements, etc. Extracting knowledge from these data streams is particularly challenging due to their high speed and massive volume.
Distributed stream processing has recently become highly popular across industry and academia due to its capabilities to both improve established data processing tasks and to facilitate novel applications with real-time requirements. In this course, we will study the design and architecture of modern distributed streaming systems as well as fundamental algorithms for analyzing data streams.
SkriptSchedule and lecture notes will be posted in the course website: Link
Voraussetzungen / BesonderesThe exercise sessions will be a mixture of (1) reviews, discussions, and evaluation of research papers on data stream processing, and (2) programming assignments on implementing data stream mining algorithms and anlysis tasks.

- Basic knowledge of relational data management and distributed systems.

- Basic programming skills in Java and/or Rust is necessary to carry out the practical exercises and final project.
Seminar in Distributed Systems
NummerTitelTypECTSUmfangDozierende
263-2211-00LSeminar in Computer Architecture 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 KP2SO. Mutlu, M. H. K. Alser, J. Gómez Luna
KurzbeschreibungIn this seminar course, we will cover fundamental and cutting-edge research papers in computer architecture. The course will consist of multiple components that are aimed at improving students' technical skills in computer architecture, critical thinking and analysis on computer architecture concepts, as well as technical presentation of concepts and papers in both spoken and written forms.
LernzielThe main objective is to learn how to rigorously analyze and present papers and ideas computer architecture. We will have rigorous presentation and discussion of selected papers during lectures and a written report delivered by each student at the end of the semester.

This course is for those interested in computer architecture. Registered students are expected to attend every lecture and participate in the discussion.
InhaltTopics will center around computer architecture. We will, for example, discuss papers on hardware security; architectural acceleration mechanisms for key applications like machine learning, graph processing and bioinformatics; memory systems; interconnects; processing inside memory; various fundamental and emerging paradigms in computer architecture; hardware/software co-design and cooperation; fault tolerance; energy efficiency; heterogeneous and parallel systems; new execution models, etc.
LiteraturKey papers and articles, on both fundamentals and cutting-edge topics in computer architecture will be provided and discussed. These will be posted on the course website.
263-3712-00LSeminar on Computational Interaction Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 14.

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 KP2SO. Hilliges
KurzbeschreibungComputational Interaction focuses on the use of algorithms to enhance the interaction with a computing system. Papers from scientific venues such as CHI, UIST & SIGGRAPH will be examined in-depth. Student present and discuss the papers to extract techniques and insights that can be applied to software & hardware projects. Topics include user modeling, computational design, and input & output.
LernzielThe goal of the seminar is to familiarize students with exciting new research topics in this important area, but also to teach basic scientific writing and oral presentation skills.
InhaltThe seminar will have a different structure from regular seminars to encourage more discussion and a deeper learning experience. We will use a case-study format where all students read the same paper each week but fulfill different roles and hence prepare with different viewpoints in mind (e.g. "presenter", "historian", "student", etc).

The seminar will cover multiple topics of computational interaction, including:
1) User- and context modeling for UI adaptation
Intent modeling, activity and emotion recognition, and user perception.

2) Computational design
Design mining, design exploration, UI optimization.

3) Computer supported input
Text entry, pointing, gestural input, physiological sensing, eye tracking, and sketching.

4) Computer supported output
Information retrieval, fabrication, mixed reality interfaces, haptics, and gaze contingency

For each topic, a paper will be chosen that represents the state of the art of research or seminal work that inspired and fostered future work. Student will learn how to incorporate computational methods into system that involve software, hardware, and, very importantly, users.

Seminar website: Link
263-3840-00LHardware Architectures for Machine Learning Information
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 KP2SG. Alonso, T. Hoefler, C. Zhang
KurzbeschreibungThe seminar covers recent results in the increasingly important field of hardware acceleration for data science and machine learning, both in dedicated machines or in data centers.
LernzielThe seminar aims at students interested in the system aspects of machine learning, who are willing to bridge the gap across traditional disciplines: machine learning, databases, systems, and computer architecture.
InhaltThe seminar is intended to cover recent results in the increasingly important field of hardware acceleration for data science and machine learning, both in dedicated machines or in data centers.
Voraussetzungen / BesonderesThe seminar should be of special interest to students intending to complete a master's thesis or a doctoral dissertation in related topics.
227-0126-00LAdvanced Topics in Networked Embedded Systems Information W2 KP1SL. Thiele, J. Beutel, Z. Zhou
KurzbeschreibungThe seminar will cover advanced topics in networked embedded systems. A particular focus are cyber-physical systems and sensor networks in various application domains.
LernzielThe goal is to get a deeper understanding on leading edge technologies in the discipline, on classes of applications, and on current as well as future research directions.
InhaltThe seminar enables Master students, PhDs and Postdocs to learn about latest breakthroughs in wireless sensor networks, networked embedded systems and devices, and energy-harvesting in several application domains, including environmental monitoring, tracking, smart buildings and control. Participants are requested to actively participate in the organization and preparation of the seminar.
227-0559-00LSeminar in Deep Reinforcement Learning Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 24.
W2 KP2SR. Wattenhofer, O. Richter
KurzbeschreibungIn this seminar participating students present and discuss recent research papers in the area of deep reinforcement learning. The seminar starts with two introductory lessons introducing the basic concepts. Alongside the seminar a programming challenge is posed in which students can take part to improve their grade.
LernzielSince Google Deepmind presented the Deep Q-Network (DQN) algorithm in 2015 that could play Atari-2600 games at a superhuman level, the field of deep reinforcement learning gained a lot of traction. It sparked media attention with AlphaGo and AlphaZero and is one of the most prominent research areas. Yet many research papers in the area come from one of two sources: Google Deepmind or OpenAI. In this seminar we aim at giving the students an in depth view on the current advances in the area by discussing recent papers as well as discussing current issues and difficulties surrounding deep reinforcement learning.
InhaltTwo introductory courses introducing Q-learning and policy gradient methods. Afterwards participating students present recent papers. For details see: Link
SkriptSlides of presentations will be made available.
LiteraturOpenAI course (Link) plus selected papers.
The paper selection can be found on Link.
Voraussetzungen / BesonderesIt is expected that student have prior knowledge and interest in machine and deep learning, for instance by having attended appropriate courses.
851-0740-00LBig Data, Law, and Policy Belegung eingeschränkt - Details anzeigen
Number of participants limited to 35

Students will be informed by 3.3.2019 at the latest.
W3 KP2SS. Bechtold, T. Roscoe, E. Vayena
KurzbeschreibungThis course introduces students to societal perspectives on the big data revolution. Discussing important contributions from machine learning and data science, the course explores their legal, economic, ethical, and political implications in the past, present, and future.
LernzielThis course is intended both for students of machine learning and data science who want to reflect on the societal implications of their field, and for students from other disciplines who want to explore the societal impact of data sciences. The course will first discuss some of the methodological foundations of machine learning, followed by a discussion of research papers and real-world applications where big data and societal values may clash. Potential topics include the implications of big data for privacy, liability, insurance, health systems, voting, and democratic institutions, as well as the use of predictive algorithms for price discrimination and the criminal justice system. Guest speakers, weekly readings and reaction papers ensure a lively debate among participants from various backgrounds.
Vertiefung in Information Security
Kernfächer der Vertiefung in Information Security
NummerTitelTypECTSUmfangDozierende
252-0407-00LCryptography Foundations Information
Takes place the last time in this form.
W7 KP3V + 2U + 1AU. Maurer
KurzbeschreibungFundamentals and applications of cryptography. Cryptography as a mathematical discipline: reductions, constructive cryptography paradigm, security proofs. The discussed primitives include cryptographic functions, pseudo-randomness, symmetric encryption and authentication, public-key encryption, key agreement, and digital signature schemes. Selected cryptanalytic techniques.
LernzielThe goals are:
(1) understand the basic theoretical concepts and scientific thinking in cryptography;
(2) understand and apply some core cryptographic techniques and security proof methods;
(3) be prepared and motivated to access the scientific literature and attend specialized courses in cryptography.
InhaltSee course description.
Skriptyes.
Voraussetzungen / BesonderesFamiliarity with the basic cryptographic concepts as treated for
example in the course "Information Security" is required but can
in principle also be acquired in parallel to attending the course.
Wahlfächer der Vertiefung in Information Security
NummerTitelTypECTSUmfangDozierende
252-0408-00LCryptographic Protocols Information W5 KP2V + 2UM. 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 W5 KP2V + 1U + 1AM. Vechev
KurzbeschreibungSecurity breaches in modern systems (blockchains, datacenters, AI, etc.) result in billions of losses. We will cover key security issues and how the latest automated techniques can be used to prevent these. The course has a practical focus, also covering systems built by successful ETH Spin-offs (ChainSecurity.com and DeepCode.ai).

More info: Link
Lernziel* Learn about security issues in modern systems -- blockchains, smart contracts, AI-based systems (e.g., autonomous cars), data centers -- and why they are challenging to address.

* Understand how the latest automated analysis techniques work, both discrete and probabilistic.

* Understand how these techniques combine with machine-learning methods, both supervised and unsupervised.

* Understand how to use these methods to build reliable and secure modern systems.

* Learn about new open problems that if solved can lead to research and commercial impact.
InhaltPart I: Security of Blockchains

- We will cover existing blockchains (e.g., Ethereum, Bitcoin), how they work, what the core security issues are, and how these have led to massive financial losses.
- We will show how to extract useful information about smart contracts and transactions using interactive analysis frameworks for querying blockchains (e.g. Google's Ethereum BigQuery).
- We will discuss the state-of-the-art security tools (e.g., Link) for ensuring that smart contracts are free of security vulnerabilities.
- We will study the latest automated reasoning systems (e.g., Dagger) for checking custom (temporal) properties of smart contracts and illustrate their operation on real-world use cases.
- We will study the underlying methods for automated reasoning and testing (e.g., abstract interpretation, symbolic execution, fuzzing) are used to build such tools.

Part II: Machine Learning for Security

- We will discuss how machine learning models for structured prediction are used to address security tasks, including de-obfuscation of binaries (Debin: Link), Android APKs (DeGuard: Link) and JavaScript (JSNice: Link).
- We will study to leverage program abstractions in combination with clustering techniques to learn security rules for cryptography APIs from large codebases.
- We will study how to automatically learn to identify security vulnerabilities related to the handling of untrusted inputs (cross-Site scripting, SQL injection, path traversal, remote code execution) from large codebases.

Part III: Security of Datacenters and Networks

- We will show how to ensure that datacenters and ISPs are secured using declarative reasoning methods (e.g., Datalog). We will also see how to automatically synthesize secure configurations (e.g. using SyNET and NetComplete) which lead to desirable behaviors, thus automating the job of the network operator and avoiding critical errors.
- We will discuss how to apply modern discrete probabilistic inference (e.g., PSI and Bayonet) so to reason about probabilistic network properties (e.g., the probability of a packet reaching a destination if links fail).

Part IV: Security of AI-based Systems

- We will look into the security issues related to modern systems that combine machine learning models (e.g., neural networks) within traditional systems such as cars, airplanes, and medical systems.
- We will learn state-of-the-art techniques for security testing and certifying entire AI-based systems, such as autonomous driving systems.

To gain a deeper understanding, the course will involve a hands-on programming project where the methods studied in the class will be applied.
263-4600-00LFormal Methods for Information Security Information W4 KP2V + 1UR. Sasse, C. Sprenger
KurzbeschreibungThe course focuses on formal methods for the modelling and analysis of security protocols for critical systems, ranging from authentication protocols for network security to electronic voting protocols and online banking.
LernzielThe students will learn the key ideas and theoretical foundations of formal modelling 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.
InhaltThe course treats formal methods mainly for the modelling 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.

In addition to the classical security properties for confidentiality and authentication, we will study strong secrecy and privacy properties. We will discuss electronic voting protocols, and RFID protocols (a staple of the Internet of Things), where these properties are central. The accompanying tutorials provide an opportunity to apply the theory and tools to concrete protocols. Moreover, we will discuss methods to abstract and refine security protocols and the link between symbolic protocol models and cryptographic models.

Furthermore, we will also present a security notion for general systems based on non-interference as well as language-based information flow security where non-interference is enforced via a type system.
263-4630-00LComputer-Aided Modelling and Reasoning Information
In the Master Programme max. 10 credits can be accounted by Labs on top of the Interfocus Courses. Additional Labs will be listed on the Addendum.
W8 KP7PC. Sprenger, D. Traytel
KurzbeschreibungThe "computer-aided modelling and reasoning" lab is a hands-on course about using an interactive theorem prover to construct formal models of algorithms, protocols, and programming languages and to reason about their properties. The lab has two parts: The first introduces various modelling and proof techniques. The second part consists of a project in which the students apply these techniques
LernzielThe students learn to effectively use a theorem prover to create unambiguous models and rigorously analyse them. They learn how to write precise and concise specifications, to exploit the theorem prover as a tool for checking and analysing such models and for taming their complexity, and to extract certified executable implementations from such specifications.
InhaltThe "computer-aided modelling and reasoning" lab is a hands-on course about using an interactive theorem prover to construct formal models of algorithms, protocols, and programming languages and to reason about their properties. The focus is on applying logical methods to concrete problems supported by a theorem prover. The course will demonstrate the challenges of formal rigor, but also the benefits of machine support in modelling, proving and validating.

The lab will have two parts: The first part introduces basic and advanced modelling techniques (functional programs, inductive definitions, modules), the associated proof techniques (term rewriting, resolution, induction, proof automation), and compilation of the models to certified executable code. In the second part, the students work in teams of two on a project assignment in which they apply these techniques: they build a formal model and prove its desired properties. The project lies in the area of programming languages, model checking, or information security.
LiteraturTextbook: Tobias Nipkow, Gerwin Klein. Concrete Semantics, part 1 (Link)
Seminar in Information Security
NummerTitelTypECTSUmfangDozierende
263-2930-00LBlockchain Security Seminar 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 KP2SM. Vechev, D. Drachsler Cohen, P. Tsankov
KurzbeschreibungThis seminar introduces students to the latest research trends in the field of blockchains.
LernzielThe objectives of this seminar are twofold: (1) learning about the blockchain platform, a prominent technology receiving a lot of attention in computer Science and economy and (2) learning to convey and present complex and technical concepts in simple terms, and in particular identifying the core idea underlying the technicalities.
InhaltThis seminar introduces students to the latest research trends in the field of blockchains. The seminar covers the basics of blockchain technology, including motivation for decentralized currency, establishing trust between multiple parties using consensus algorithms, and smart contracts as a means to establish decentralized computation. It also covers security issues arising in blockchains and smart contracts as well as automated techniques for detecting vulnerabilities using programming language techniques.
Vertiefung in Information Systems
Kernfächer der Vertiefung in Information Systems
NummerTitelTypECTSUmfangDozierende
263-2925-00LProgram Analysis for System Security and Reliability Information W5 KP2V + 1U + 1AM. Vechev
KurzbeschreibungSecurity breaches in modern systems (blockchains, datacenters, AI, etc.) result in billions of losses. We will cover key security issues and how the latest automated techniques can be used to prevent these. The course has a practical focus, also covering systems built by successful ETH Spin-offs (ChainSecurity.com and DeepCode.ai).

More info: Link
Lernziel* Learn about security issues in modern systems -- blockchains, smart contracts, AI-based systems (e.g., autonomous cars), data centers -- and why they are challenging to address.

* Understand how the latest automated analysis techniques work, both discrete and probabilistic.

* Understand how these techniques combine with machine-learning methods, both supervised and unsupervised.

* Understand how to use these methods to build reliable and secure modern systems.

* Learn about new open problems that if solved can lead to research and commercial impact.
InhaltPart I: Security of Blockchains

- We will cover existing blockchains (e.g., Ethereum, Bitcoin), how they work, what the core security issues are, and how these have led to massive financial losses.
- We will show how to extract useful information about smart contracts and transactions using interactive analysis frameworks for querying blockchains (e.g. Google's Ethereum BigQuery).
- We will discuss the state-of-the-art security tools (e.g., Link) for ensuring that smart contracts are free of security vulnerabilities.
- We will study the latest automated reasoning systems (e.g., Dagger) for checking custom (temporal) properties of smart contracts and illustrate their operation on real-world use cases.
- We will study the underlying methods for automated reasoning and testing (e.g., abstract interpretation, symbolic execution, fuzzing) are used to build such tools.

Part II: Machine Learning for Security

- We will discuss how machine learning models for structured prediction are used to address security tasks, including de-obfuscation of binaries (Debin: Link), Android APKs (DeGuard: Link) and JavaScript (JSNice: Link).
- We will study to leverage program abstractions in combination with clustering techniques to learn security rules for cryptography APIs from large codebases.
- We will study how to automatically learn to identify security vulnerabilities related to the handling of untrusted inputs (cross-Site scripting, SQL injection, path traversal, remote code execution) from large codebases.

Part III: Security of Datacenters and Networks

- We will show how to ensure that datacenters and ISPs are secured using declarative reasoning methods (e.g., Datalog). We will also see how to automatically synthesize secure configurations (e.g. using SyNET and NetComplete) which lead to desirable behaviors, thus automating the job of the network operator and avoiding critical errors.
- We will discuss how to apply modern discrete probabilistic inference (e.g., PSI and Bayonet) so to reason about probabilistic network properties (e.g., the probability of a packet reaching a destination if links fail).

Part IV: Security of AI-based Systems

- We will look into the security issues related to modern systems that combine machine learning models (e.g., neural networks) within traditional systems such as cars, airplanes, and medical systems.
- We will learn state-of-the-art techniques for security testing and certifying entire AI-based systems, such as autonomous driving systems.

To gain a deeper understanding, the course will involve a hands-on programming project where the methods studied in the class will be applied.
Wahlfächer der Vertiefung in Information Systems
NummerTitelTypECTSUmfangDozierende
252-0312-00LUbiquitous Computing Information W3 KP2VF. Mattern, S. Mayer
KurzbeschreibungUbiquitous computing integrates tiny wirelessly connected computers and sensors into the environment and everyday objects. Main topics: The vision of ubiquitous computing, trends in technology, smart cards, RFID, Personal Area Networks (Bluetooth), sensor networks, location awareness, privacy and security, application areas, economic and social impact.
LernzielThe vision of ubiquitous computing, trends in technology, smart cards, RFID, Personal Area Networks (Bluetooth), sensor networks, location awareness, privacy and security, application areas, economic and social impact.
SkriptCopies of slides will be made available
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-3005-00LNatural Language Understanding Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 200.
W4 KP2V + 1UM. Ciaramita, T. Hofmann
KurzbeschreibungThis 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.
LernzielThe 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.
InhaltThis 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.
LiteraturLectures will make use of textbooks such as the one by Jurafsky and Martin where appropriate, but will also make use of original research and survey papers.
263-5215-00LFairness, Explainability, and Accountability for Machine Learning Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 40.

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 course, will officially fail the course.
W4 KP1V + 2PH. Heidari
Kurzbeschreibung
Lernziel- Familiarize students with the ethical implications of applying Big Data and ML tools to socially-sensitive domains; teach them to think critically about these issues.
- Overview the long-established philosophical, sociological, and economic literature on these subjects.
- Provide students with a tool-box of technical solutions for addressing - at least partially - the ethical and societal issues of ML and Big data.
InhaltAs ML continues to advance and make its way into different aspects of modern life, both the designers and users of the technology need to think seriously about its impact on individuals and society. We will study some of the ethical implications of applying ML tools to socially sensitive domains, such as employment, education, credit ledning, and criminal justice. We will discuss at length what it means for an algorithm to be fair; who should be held responsible when algorithmic decisions negatively impacts certain demographic groups or individuals; and last but not least, how algorithmic decisions can be explained to a non-technical audience. Throughout the course, we will focus on technical solutions that have been recently proposed by the ML community to tackle the above issues. We will critically discuss the advantages and shortcomings of these proposals in comparison with non-technical alternatives.
Voraussetzungen / BesonderesStudents are expected to sufficient knowledge of ML (i.e. they must have taken the "Introduction to Machine Learning" or an equivalent course).
Seminar in Information Systems
NummerTitelTypECTSUmfangDozierende
252-3002-00LAlgorithms for Database Systems Information
Limited number of participants.

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 KP2SP. Penna
KurzbeschreibungQuery processing, optimization, stream-based systems, distributed and parallel databases, non-standard databases.
LernzielDevelop an understanding of selected problems of current interest in the area of algorithms for database systems.
263-3840-00LHardware Architectures for Machine Learning Information
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 KP2SG. Alonso, T. Hoefler, C. Zhang
KurzbeschreibungThe seminar covers recent results in the increasingly important field of hardware acceleration for data science and machine learning, both in dedicated machines or in data centers.
LernzielThe seminar aims at students interested in the system aspects of machine learning, who are willing to bridge the gap across traditional disciplines: machine learning, databases, systems, and computer architecture.
InhaltThe seminar is intended to cover recent results in the increasingly important field of hardware acceleration for data science and machine learning, both in dedicated machines or in data centers.
Voraussetzungen / BesonderesThe seminar should be of special interest to students intending to complete a master's thesis or a doctoral dissertation in related topics.
Vertiefung in Software Engineering
Kernfächer der Vertiefung in Software Engineering
NummerTitelTypECTSUmfangDozierende
263-2925-00LProgram Analysis for System Security and Reliability Information W5 KP2V + 1U + 1AM. Vechev
KurzbeschreibungSecurity breaches in modern systems (blockchains, datacenters, AI, etc.) result in billions of losses. We will cover key security issues and how the latest automated techniques can be used to prevent these. The course has a practical focus, also covering systems built by successful ETH Spin-offs (ChainSecurity.com and DeepCode.ai).

More info: Link
Lernziel* Learn about security issues in modern systems -- blockchains, smart contracts, AI-based systems (e.g., autonomous cars), data centers -- and why they are challenging to address.

* Understand how the latest automated analysis techniques work, both discrete and probabilistic.

* Understand how these techniques combine with machine-learning methods, both supervised and unsupervised.

* Understand how to use these methods to build reliable and secure modern systems.

* Learn about new open problems that if solved can lead to research and commercial impact.
InhaltPart I: Security of Blockchains

- We will cover existing blockchains (e.g., Ethereum, Bitcoin), how they work, what the core security issues are, and how these have led to massive financial losses.
- We will show how to extract useful information about smart contracts and transactions using interactive analysis frameworks for querying blockchains (e.g. Google's Ethereum BigQuery).
- We will discuss the state-of-the-art security tools (e.g., Link) for ensuring that smart contracts are free of security vulnerabilities.
- We will study the latest automated reasoning systems (e.g., Dagger) for checking custom (temporal) properties of smart contracts and illustrate their operation on real-world use cases.
- We will study the underlying methods for automated reasoning and testing (e.g., abstract interpretation, symbolic execution, fuzzing) are used to build such tools.

Part II: Machine Learning for Security

- We will discuss how machine learning models for structured prediction are used to address security tasks, including de-obfuscation of binaries (Debin: Link), Android APKs (DeGuard: Link) and JavaScript (JSNice: Link).
- We will study to leverage program abstractions in combination with clustering techniques to learn security rules for cryptography APIs from large codebases.
- We will study how to automatically learn to identify security vulnerabilities related to the handling of untrusted inputs (cross-Site scripting, SQL injection, path traversal, remote code execution) from large codebases.

Part III: Security of Datacenters and Networks

- We will show how to ensure that datacenters and ISPs are secured using declarative reasoning methods (e.g., Datalog). We will also see how to automatically synthesize secure configurations (e.g. using SyNET and NetComplete) which lead to desirable behaviors, thus automating the job of the network operator and avoiding critical errors.
- We will discuss how to apply modern discrete probabilistic inference (e.g., PSI and Bayonet) so to reason about probabilistic network properties (e.g., the probability of a packet reaching a destination if links fail).

Part IV: Security of AI-based Systems

- We will look into the security issues related to modern systems that combine machine learning models (e.g., neural networks) within traditional systems such as cars, airplanes, and medical systems.
- We will learn state-of-the-art techniques for security testing and certifying entire AI-based systems, such as autonomous driving systems.

To gain a deeper understanding, the course will involve a hands-on programming project where the methods studied in the class will be applied.
Wahlfächer der Vertiefung in Software Engineering
NummerTitelTypECTSUmfangDozierende
263-2300-00LHow To Write Fast Numerical Code Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 84.

Prerequisite: Master student, solid C programming skills.

Takes place the last time in this form.
W6 KP3V + 2UM. Püschel
KurzbeschreibungThis course introduces the student to the foundations and state-of-the-art techniques in developing high performance software for mathematical functionality such as matrix operations, transforms, and others. The focus is on optimizing for a single core. This 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.
263-2812-00LProgram Verification Information Belegung eingeschränkt - Details anzeigen
Maximale Teilnehmerzahl: 30.
W5 KP2V + 1U + 1AA. J. Summers
KurzbeschreibungA hands-on introduction to the theory and construction of deductive software verifiers, covering both cutting-edge methodologies for formal program reasoning, and a perspective over the broad tool stacks making up modern verification tools.
LernzielStudents will earn the necessary skills for designing and developing deductive verification tools which can be applied to modularly analyse 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.

Students will be gain practical experience with reasoning tools at various levels of abstraction, from SAT and SMT solvers at the lowest level, up through intermediate verification languages and tools, to verifiers which target front-end code in executable languages.

By the end of the course, students should have a good working understanding and experience of the issues and decisions involved with designing and building practical verification tools, and the theoretical techniques which underpin them.
InhaltThe course will be organized around building up a "tool stack", starting at the lowest-level with background on SAT and SMT solving techniques, and working upwards through tools at progressively-higher levels of abstraction. The notion of intermediate verification languages will be explored, and the Boogie (Microsoft Research) and Viper (ETH) languages will be used in depth to tackle increasingly ambitious verification tasks.

The course will intermix technical content with hands-on experience; at each level of abstraction, we will understand who to build and use tools which can tackle specific program correctness problems, starting from simple puzzle solvers (Soduko) at the SAT level, and working upwards to full functional correctness of application-level code. This practical work will include three projects (typically worked on in pairs) spread throughout the course, which count towards the final grade. The graded projects are worth 40% in total, individually weighted at 14%, 13% and 13% respectively. The projects are a compulsory performance assessment; in this case, they need not be passed on their own, but will count 40% in all cases towards the final grading. An oral examination (worth the remaining 60% of the final grade) will examine the full technical content covered in the course.
SkriptHandouts (complementing the lecture material) and other materials will be available online.
LiteraturBackground reading material and links to tools will be published on the course website.
Voraussetzungen / BesonderesSome programming experience is essential, as the course contains several practical assignments. 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-4630-00LComputer-Aided Modelling and Reasoning Information
In the Master Programme max. 10 credits can be accounted by Labs on top of the Interfocus Courses. Additional Labs will be listed on the Addendum.
W8 KP7PC. Sprenger, D. Traytel
KurzbeschreibungThe "computer-aided modelling and reasoning" lab is a hands-on course about using an interactive theorem prover to construct formal models of algorithms, protocols, and programming languages and to reason about their properties. The lab has two parts: The first introduces various modelling and proof techniques. The second part consists of a project in which the students apply these techniques
LernzielThe students learn to effectively use a theorem prover to create unambiguous models and rigorously analyse them. They learn how to write precise and concise specifications, to exploit the theorem prover as a tool for checking and analysing such models and for taming their complexity, and to extract certified executable implementations from such specifications.
InhaltThe "computer-aided modelling and reasoning" lab is a hands-on course about using an interactive theorem prover to construct formal models of algorithms, protocols, and programming languages and to reason about their properties. The focus is on applying logical methods to concrete problems supported by a theorem prover. The course will demonstrate the challenges of formal rigor, but also the benefits of machine support in modelling, proving and validating.

The lab will have two parts: The first part introduces basic and advanced modelling techniques (functional programs, inductive definitions, modules), the associated proof techniques (term rewriting, resolution, induction, proof automation), and compilation of the models to certified executable code. In the second part, the students work in teams of two on a project assignment in which they apply these techniques: they build a formal model and prove its desired properties. The project lies in the area of programming languages, model checking, or information security.
LiteraturTextbook: Tobias Nipkow, Gerwin Klein. Concrete Semantics, part 1 (Link)
Seminar in Software Engineering
NummerTitelTypECTSUmfangDozierende
263-2100-00LResearch Topics in Software Engineering 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 KP2ST. Gross
KurzbeschreibungThis seminar introduces students to the latest research trends that help to improve various aspects of software quality.

Topics cover the following areas of research: Compilers, domain-specific languages, concurrency, formal methods, performance optimization, program analysis, program generation, program synthesis, testing, tools, verification
LernzielAt the end of the course, the students should be:

- familiar with a broad range of key research results in the area as well as their applications.

- know how to read and assess high quality research papers

- be able to highlight practical examples/applications, limitations of existing work, and outline potential improvements.
InhaltThe course will be structured as a sequence of presentations of high-quality research papers, spanning both theory and practice. These papers will have typically appeared in top conferences spanning several areas such as POPL, PLDI, OOPSLA, OSDI, ASPLOS, SOSP, AAAI, ICML and others.
LiteraturThe publications to be presented will be announced on the seminar home page at least one week before the first session.
Voraussetzungen / BesonderesPapers will be distributed during the first lecture.
263-2926-00LDeep Learning for Big Code 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 KP2SV. Raychev
KurzbeschreibungThe seminar covers some of the latest and most exciting developments (industrial and research) in the field of Deep Learning for Code, including new methods and latest systems, as well as open challenges and opportunities.
LernzielThe objective of the seminar is to:

- Introduce students to the field of Deep Learning for Big Code.

- Learn how machine learning models can be used to solve practical challenges in software engineering and programming beyond traditional methods.

- Highlight the latest research and work opportunities in industry and academia available on this topic.
InhaltThe last 5 years have seen increased interest in applying advanced machine learning techniques such as deep learning to new kind of data: program code. As the size of open source code increases dramatically (over 980 billion lines of code written by humans), so comes the opportunity for new kind of deep probabilistic methods and commercial systems that leverage this data to revolutionize software creation and address hard problems not previously possible. Examples include: machines writing code, program de-obfuscation for security, code search, and many more.

Interestingly, this new type of data, unlike natural language and images, introduces technical challenges not typically encountered when working with standard datasets (e.g., images, videos, natural language), for instance, finding the right representation over which deep learning operates. This in turn has the potential to drive new kinds of machine learning models with broad applicability.

Because of this, there has been substantial interest over the last few years in both industry (e.g., companies such as Facebook starting, various start-ups in the space such as Link), academia (e.g., Link) and government agencies (e.g., DARPA) on using machine learning to automate various programming tasks.

In this seminar, we will cover some of the latest and most exciting developments in the field of Deep Learning for Code, including new methods and latest systems, as well as open challenges and opportunities.

The seminar is carried out as a set of presentations chosen from a list of available papers. The grade is determined as a function of the presentation, handling questions and answers, and participation.
Voraussetzungen / BesonderesThe seminar is carried out as a set of presentations chosen from a list of available papers. The grade is determined as a function of the presentation, handling questions and answers, and participation.

The seminar is ideally suited for M.Sc. students in Computer Science.
263-2930-00LBlockchain Security Seminar 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 KP2SM. Vechev, D. Drachsler Cohen, P. Tsankov
KurzbeschreibungThis seminar introduces students to the latest research trends in the field of blockchains.
LernzielThe objectives of this seminar are twofold: (1) learning about the blockchain platform, a prominent technology receiving a lot of attention in computer Science and economy and (2) learning to convey and present complex and technical concepts in simple terms, and in particular identifying the core idea underlying the technicalities.
InhaltThis seminar introduces students to the latest research trends in the field of blockchains. The seminar covers the basics of blockchain technology, including motivation for decentralized currency, establishing trust between multiple parties using consensus algorithms, and smart contracts as a means to establish decentralized computation. It also covers security issues arising in blockchains and smart contracts as well as automated techniques for detecting vulnerabilities using programming language techniques.
Vertiefung in Theoretical Computer Science
Kernfächer der Vertiefung in Theoretical Computer Science
NummerTitelTypECTSUmfangDozierende
252-0407-00LCryptography Foundations Information
Takes place the last time in this form.
W7 KP3V + 2U + 1AU. Maurer
KurzbeschreibungFundamentals and applications of cryptography. Cryptography as a mathematical discipline: reductions, constructive cryptography paradigm, security proofs. The discussed primitives include cryptographic functions, pseudo-randomness, symmetric encryption and authentication, public-key encryption, key agreement, and digital signature schemes. Selected cryptanalytic techniques.
LernzielThe goals are:
(1) understand the basic theoretical concepts and scientific thinking in cryptography;
(2) understand and apply some core cryptographic techniques and security proof methods;
(3) be prepared and motivated to access the scientific literature and attend specialized courses in cryptography.
InhaltSee course description.
Skriptyes.
Voraussetzungen / BesonderesFamiliarity with the basic cryptographic concepts as treated for
example in the course "Information Security" is required but can
in principle also be acquired in parallel to attending the course.
261-5110-00LOptimization for Data Science Information W8 KP3V + 2U + 2AB. Gärtner, D. Steurer
KurzbeschreibungThis course teaches an overview of modern optimization methods, with applications in particular for machine learning and data science.
LernzielUnderstanding the theoretical and practical aspects of relevant optimization methods used in data science. Learning general paradigms to deal with optimization problems arising in data science.
InhaltThis course teaches an overview of modern optimization methods, with applications in particular for machine learning and data science.

In the first part of the course, we will discuss how classical first and second order methods such as gradient descent and Newton's method can be adapated to scale to large datasets, in theory and in practice. We also cover some new algorithms and paradigms that have been developed specifically in the context of data science. The emphasis is not so much on the application of these methods (many of which are covered in other courses), but on understanding and analyzing the methods themselves.

In the second part, we discuss convex programming relaxations as a powerful and versatile paradigm for designing efficient algorithms to solve computational problems arising in data science. We will learn about this paradigm and develop a unified perspective on it through the lens of the sum-of-squares semidefinite programming hierarchy. As applications, we are discussing non-negative matrix factorization, compressed sensing and sparse linear regression, matrix completion and phase retrieval, as well as robust estimation.
Voraussetzungen / 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 der Vertiefung in Theoretical Computer Science
NummerTitelTypECTSUmfangDozierende
252-0408-00LCryptographic Protocols Information W5 KP2V + 2UM. 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.
252-1403-00LInvitation to Quantum Informatics Information W3 KP2VS. Wolf
KurzbeschreibungNach einer Einführung wichtiger Grundbegriffe der Quantenphysik, wie etwa Überlagerung, Interferenz und Verschränkung, werden verschiedene Themen behandelt: Quantenalgorithmen, Teleportation, Quanten-Kommunikationskomplexität und "Pseudo-Telepathie", Quantenkryptographie sowie die Grundzüge der Quanten-Informationstheorie.
LernzielDas Ziel dieser Vorlesung ist es, mit den wichtigsten Begriffen vetraut zu werden,
welche fuer die Verbindung zwischen Information und Physik wichtig sind. Der Grundformalismus des Quantenphysik soll erarbeitet, und der Einsatz der entsprechenden Gesetze fuer die Informationsverarbeitung verstanden werden. Insbesondere sollen wichtige Algorithmen dargelegt und analysiert werden, wie der Grover- sowie der Shor-Algorithmus.
InhaltGemäss Landauer kann Information und ihre Verarbeitung nicht völlig losgelöst von der physikalischen Repräsentation betrachtet werden. Die Quanteninformatik befasst sich mit den Konsequenzen und Möglichkeiten der quantenphysikalischen Gesetze für die Informationsverarbeitung. Nach einer Einführung wichtiger Grundbegriffe der Quantenphysik, wie etwa Überlagerung, Interferenz und Verschränkung, werden verschiedene Themen behandelt: Quantenalgorithmen, Teleportation, Quanten-Kommunikationskomplexität und "Pseudo-Telepathie", Quantenkryptographie sowie die Grundzüge der Quanten-Informationstheorie.
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-4506-00LMassively Parallel Algorithms Information W6 KP2V + 1U + 2AM. Ghaffari
KurzbeschreibungData sizes are growing faster than the capacities of single processors. This makes it almost a certainty that the future of computation will rely on parallelism. In this new graduate-level course, we discuss the expanding body of work on the theoretical foundations of modern parallel computation, with an emphasis on the algorithmic tools and techniques for large-scale processing.
LernzielThis course will familiarize the students with the algorithmic tools and techniques in modern parallel computation. In particular, we will discuss the growing body of algorithmic results in the Massively Parallel Computation (MPC) model. This model is a mathematical abstraction of some of the popular large-scale processing settings such as MapReduce, Hadoop, Spark, etc. By the end of the semester, the students will know all the standard tools of this area, as well as the state of the art on a number of the central problems. Our hope is that the course prepares the students for independent research at the frontier of this area, and we will attempt to move in that direction with the course projects.

The course assumes no particular familiarity with parallel computation and should be accesible to any student with sufficient theoretical/algorithmic background. In particular, we expect that all students are comfortable with the basics of algorithmics designs and analysis, as well as probability theory.
InhaltThe course will cover a sampling of the recent developments (and open questions) at the frontier of research in massively/modern parallel computation. the material will be based on compilation of recent papers on this area, which will be provided throughout the semester.
Voraussetzungen / BesonderesThe class does not expect any prior knowledge in parallel algorithms/computing. Our only prerequisite is the undergraduate class Algorithms, Probability, and Computing (APC) or any other course that can be seen as the equivalent. In particular, much of waht we will discuss uses randomized algorithms and therefore, we will assume that the students are familiar with the tools and techniques in randomized algorithms and analysis (to the extent covered in the APC class).
272-0300-00LAlgorithmik für schwere Probleme Information
Diese Lerneinheit beinhaltet die Mentorierte Arbeit Fachwissenschaftliche Vertiefung mit pädagogischem Fokus Informatik A n i c h t !
W4 KP2V + 1UH.‑J. Böckenhauer, R. Kralovic
KurzbeschreibungDiese Lerneinheit beschäftigt sich mit algorithmischen Ansätzen zur Lösung schwerer Probleme, insbesondere mit exakten Algorithmen mit moderat exponentieller Laufzeit und parametrisierten Algorithmen.

Eine umfassende Reflexion über die Bedeutung der vorgestellten Ansätze für den Informatikunterricht an Gymnasien begleitet den Kurs.
LernzielAuf systematische Weise eine Übersicht über die Methoden zur Lösung schwerer Probleme kennen lernen. Vertiefte Kenntnisse im Bereich exakter und parameterisierter Algorithmen erwerben.
InhaltZuerst wird der Begriff der Berechnungsschwere erläutert (für die Informatikstudierenden wiederholt). Dann werden die Methoden zur Lösung schwerer Probleme systematisch dargestellt. Bei jeder Algorithmenentwurfsmethode wird vermittelt, was sie uns garantiert und was sie nicht sichern kann und womit wir für die gewonnene Effizienz bezahlen. Ein Schwerpunkt liegt auf exakten Algorithmen mit moderat exponentieller Laufzeit und auf parametrisierten Algorithmen.
SkriptUnterlagen und Folien werden zur Verfügung gestellt.
LiteraturJ. Hromkovic: Algorithmics for Hard Problems, Springer 2004.

R. Niedermeier: Invitation to Fixed-Parameter Algorithms, 2006.

M. Cygan et al.: Parameterized Algorithms, 2015.

F. Fomin, D. Kratsch: Exact Exponential Algorithms, 2010.
272-0302-00LApproximations- und Online-Algorithmen Information W4 KP2V + 1UH.‑J. Böckenhauer, D. Komm
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-05LGraph Theory Information W5 KP2V + 1UB. Sudakov
KurzbeschreibungBasic notions, trees, spanning trees, Caley's formula, vertex and edge connectivity, blocks, 2-connectivity, Mader's theorem, Menger's theorem, Eulerian graphs, Hamilton cycles, Dirac's theorem, matchings, theorems of Hall, König and Tutte, planar graphs, Euler's formula, basic non-planar graphs, graph colorings, greedy colorings, Brooks' theorem, 5-colorings of planar graphs
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.


NOTICE: This course unit was previously offered as 252-1408-00L Graphs and Algorithms.
401-3903-11LGeometric Integer ProgrammingW6 KP2V + 1UR. Weismantel, J. Paat, M. Schlöter
KurzbeschreibungInteger programming is the task of minimizing a linear function over all the integer points in a polyhedron. This lecture introduces the key concepts of an algorithmic theory for solving such problems.
LernzielThe purpose of the lecture is to provide a geometric treatment of the theory of integer optimization.
InhaltKey topics are:
- lattice theory and the polynomial time solvability of integer optimization problems in fixed dimension,
- the theory of integral generating sets and its connection to totally dual integral systems,
- finite cutting plane algorithms based on lattices and integral generating sets.
Skriptnot available, blackboard presentation
LiteraturBertsimas, Weismantel: Optimization over Integers, Dynamic Ideas 2005.
Schrijver: Theory of linear and integer programming, Wiley, 1986.
Voraussetzungen / Besonderes"Mathematical Optimization" (401-3901-00L)
401-4904-00LCombinatorial Optimization Information W6 KP2V + 1UR. Zenklusen
KurzbeschreibungCombinatorial Optimization deals with efficiently finding a provably strong solution among a finite set of options. This course discusses key combinatorial structures and techniques to design efficient algorithms for combinatorial optimization problems. We put a strong emphasis on polyhedral methods, which proved to be a powerful and unifying tool throughout combinatorial optimization.
LernzielThe goal of this lecture is to get a thorough understanding of various modern combinatorial optimization techniques with an emphasis on polyhedral approaches. Students will learn a general toolbox to tackle a wide range of combinatorial optimization problems.
InhaltKey topics include:
- Polyhedral descriptions;
- Combinatorial uncrossing;
- Ellipsoid method;
- Equivalence between separation and optimization;
- Design of efficient approximation algorithms for hard problems.
SkriptLecture notes will be available online.
Literatur- Bernhard Korte, Jens Vygen: Combinatorial Optimization. 5th edition, Springer, 2012.
- Alexander Schrijver: Combinatorial Optimization: Polyhedra and Efficiency, Springer, 2003. This work has 3 volumes.
Voraussetzungen / BesonderesPrior exposure to Linear Programming can greatly help the understanding of the material. We therefore recommend that students interested in Combinatorial Optimization get familiarized with Linear Programming before taking this lecture.
263-4110-00LInterdisciplinary Algorithms Lab Belegung eingeschränkt - Details anzeigen
Findet dieses Semester nicht statt.
Im Masterstudium können zusätzlich zu den Vertiefungsübergreifenden Fächern nur max. 10 KP mit Laboratorien erarbeitet werden. Weitere Labs werden auf dem Beiblatt aufgeführt.
W5 KP2PA. Steger, D. Steurer
KurzbeschreibungIn this course students will develop solutions for algorithmic problems posed by researchers from other fields.
LernzielStudents will learn that in order to tackle algorithmic problems from an interdisciplinary or applied context one needs to combine a solid understanding of algorithmic methodology with insights into the problem at hand to judge which side constraints are essential and which can be loosened.
Voraussetzungen / BesonderesStudents will work in teams. Ideally, skills of team members complement each other.

Interested Bachelor students can apply for participation by sending an email to Link explaining motivation and transcripts.
272-0301-00LMethoden zum Entwurf von zufallsgesteuerten Algorithmen Information
Findet dieses Semester nicht statt.
Diese Lerneinheit beinhaltet die Mentorierte Arbeit Fachwissenschaftliche Vertiefung mit pädagogischem Fokus Informatik B n i c h t !
W4 KP2V + 1U
KurzbeschreibungDie Studierenden sollen die Entwicklung unserer Vorstellung über Zufall und dessen Rolle verfolgen. Mit Grundkenntnissen der Wahrscheinlichkeitstheorie und grundlegender Arithmetik sollen sie entdecken, dass Zufallssteuerung ein Mittel zur Erreichung unglaublicher Effizienz von Prozessen werden kann. Das Ziel ist, die Methodik des Entwurfs von zufallsgesteuerten Algorithmen zu vermitteln.
LernzielThematische Schwerpunkte
- Modellierung und Klassifizierung von randomisierten Algorithmen
- Die Methode der Überlistung des Gegners: Hashing und randomisierte Online-Algorithmen
- Die Methode der Fingerabdrücke: Kommunikationsprotokolle
- Die Methode der häufigen Zeugen: randomisierter Primzahltest von Solovay und Strassen
- Wahrscheinlichkeitsverstärkung durch Wiederholung
- Randomisierte Algorithmen für Optimierungsprobleme
SkriptJ. Hromkovic: Randomisierte Algorithmen, Teubner 2004.

J.Hromkovic: Design and Analysis of Randomized Algorithms. Springer 2006.

J.Hromkovic: Algorithmics for Hard Problems, Springer 2004.
LiteraturJ. Hromkovic: Randomisierte Algorithmen, Teubner 2004.

J.Hromkovic: Design and Analysis of Randomized Algorithms. Springer 2006.

J.Hromkovic: Algorithmics for Hard Problems, Springer 2004.
Seminar in Theoretical Computer Science
NummerTitelTypECTSUmfangDozierende
252-3002-00LAlgorithms for Database Systems Information
Limited number of participants.

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 KP2SP. Penna
KurzbeschreibungQuery processing, optimization, stream-based systems, distributed and parallel databases, non-standard databases.
LernzielDevelop an understanding of selected problems of current interest in the area of algorithms for database systems.
252-4102-00LSeminar on Randomized Algorithms and Probabilistic Methods
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 KP2SA. Steger
KurzbeschreibungThe aim of the seminar is to study papers which bring the students to the forefront of today's research topics. This semester we will study selected papers of the conference Symposium on Discrete Algorithms (SODA18).
LernzielRead papers from the forefront of today's research; learn how to give a scientific talk.
Voraussetzungen / BesonderesThe seminar is open for both students from mathematics and students from computer science. As prerequisite we require that you passed the course Randomized Algorithms and Probabilistic Methods (or equivalent, if you come from abroad).
252-4202-00LSeminar in Theoretical Computer Science Information
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 KP2SA. Steger, B. Gärtner, M. Ghaffari, M. Hoffmann, J. Lengler, D. Steurer, B. Sudakov
KurzbeschreibungPresentation of recent publications in theoretical computer science, including results by diploma, masters and doctoral candidates.
LernzielTo get an overview of current research in the areas covered by the involved research groups. To present results from the literature.
Voraussetzungen / BesonderesThis seminar takes place as part of the joint research seminar of several theory groups. Intended participation is for students with excellent performance only. Formal minimal requirement is passing of one of the courses Algorithms, Probability, and Computing, Randomized Algorithms and Probabilistic Methods, Geometry: Combinatorics and Algorithms, Advanced Algorithms. (If you cannot fulfill this restriction, because this is your first term at ETH, but you believe that you satisfy equivalent criteria, please send an email with a detailed description of your reasoning to the organizers of the seminar.)
263-4203-00LGeometry: Combinatorics and Algorithms Information
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 KP2SB. Gärtner, M. Hoffmann, C.‑H. Liu, M. Wettstein
KurzbeschreibungThis seminar complements the course Geometry: Combinatorics & Algorithms. Students of the seminar will present original research papers, some classic and some of them very recent.
LernzielEach student is expected to read, understand, and elaborate on a selected research paper. To this end, (s)he should give a 45-min. presentation about the paper. The process includes

* getting an overview of the related literature;
* understanding and working out the background/motivation:
why and where are the questions addressed relevant?
* understanding the contents of the paper in all details;
* selecting parts suitable for the presentation;
* presenting the selected parts in such a way that an audience
with some basic background in geometry and graph theory can easily understand and appreciate it.
InhaltThis seminar is held once a year and complements the course Geometry: Combinatorics & Algorithms. Students of the seminar will present original research papers, some classic and some of them very recent. The seminar is a good preparation for a master, diploma, or semester thesis in the area.
Voraussetzungen / BesonderesPrerequisite: Successful participation in the course "Geometry: Combinatorics & Algorithms" (takes place every HS) is required.
Vertiefung in Visual Computing
Kernfächer der Vertiefung in Visual Computing
NummerTitelTypECTSUmfangDozierende
252-0538-00LShape Modeling and Geometry Processing Information W5 KP2V + 1U + 1AO. Sorkine Hornung
KurzbeschreibungThis course covers some of the latest developments in geometric modeling and digital geometry processing. Topics include surface modeling based on polygonal meshes, mesh generation, surface reconstruction, mesh fairing and simplification, discrete differential geometry, interactive shape editing, topics in digital shape fabrication.
LernzielThe students will learn how to design, program and analyze algorithms and systems for interactive 3D shape modeling and digital geometry processing.
InhaltRecent advances in 3D digital geometry processing have created a plenitude of novel concepts for the mathematical representation and interactive manipulation of geometric models. This course covers some of the latest developments in geometric modeling and digital geometry processing. Topics include surface modeling based on triangle meshes, mesh generation, surface reconstruction, mesh fairing and simplification, discrete differential geometry, interactive shape editing and digital shape fabrication.
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 der Vertiefung in Visual Computing
NummerTitelTypECTSUmfangDozierende
252-0526-00LStatistical Learning Theory Information W7 KP3V + 2U + 1AJ. M. Buhmann
KurzbeschreibungThe course covers advanced methods of statistical learning :
Statistical learning theory;variational methods and optimization, e.g., maximum entropy techniques, information bottleneck, deterministic and simulated annealing; clustering for vectorial, histogram and relational data; model selection; graphical models.
LernzielThe course surveys recent methods of statistical learning. The fundamentals of machine learning as presented in the course "Introduction to Machine Learning" are expanded and in particular, the theory of statistical learning is discussed.
Inhalt# Theory of estimators: How can we measure the quality of a statistical estimator? We already discussed bias and variance of estimators very briefly, but the interesting part is yet to come.

# Variational methods and optimization: We consider optimization approaches for problems where the optimizer is a probability distribution. Concepts we will discuss in this context include:

* Maximum Entropy
* Information Bottleneck
* Deterministic Annealing

# Clustering: The problem of sorting data into groups without using training samples. This requires a definition of ``similarity'' between data points and adequate optimization procedures.

# Model selection: We have already discussed how to fit a model to a data set in ML I, which usually involved adjusting model parameters for a given type of model. Model selection refers to the question of how complex the chosen model should be. As we already know, simple and complex models both have advantages and drawbacks alike.

# Statistical physics models: approaches for large systems approximate optimization, which originate in the statistical physics (free energy minimization applied to spin glasses and other models); sampling methods based on these models
SkriptA draft of a script will be provided;
transparencies of the lectures 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 / BesonderesRequirements:

knowledge of the Machine Learning course
basic knowledge of statistics, interest in statistical methods.

It is recommended that Introduction to Machine Learning (ML I) is taken first; but with a little extra effort Statistical Learning Theory can be followed without the introductory course.
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 neuer 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. Anstelle von traditionellen 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. Wir planen das XNA Game Studio Express von Microsoft zu verwenden, 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 360 Konsole eingesetzt.

Am Ende des Kurses werden die Resultate öffentlich präsentiert.
SkriptOnline XNA Dokumentation.
Voraussetzungen / BesonderesDie Anzahl der Teilnehmer wird begrenzt sein.

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 W4 KP3GM. 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.
263-3710-00LMachine Perception Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 150.
W5 KP2V + 1U + 1AO. Hilliges
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 / BesonderesThis 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 150 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 TensorFlow, scikit-learn and scikit-image. We will provide introductions to TensorFlow 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-5215-00LFairness, Explainability, and Accountability for Machine Learning Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 40.

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 course, will officially fail the course.
W4 KP1V + 2PH. Heidari
Kurzbeschreibung
Lernziel- Familiarize students with the ethical implications of applying Big Data and ML tools to socially-sensitive domains; teach them to think critically about these issues.
- Overview the long-established philosophical, sociological, and economic literature on these subjects.
- Provide students with a tool-box of technical solutions for addressing - at least partially - the ethical and societal issues of ML and Big data.
InhaltAs ML continues to advance and make its way into different aspects of modern life, both the designers and users of the technology need to think seriously about its impact on individuals and society. We will study some of the ethical implications of applying ML tools to socially sensitive domains, such as employment, education, credit ledning, and criminal justice. We will discuss at length what it means for an algorithm to be fair; who should be held responsible when algorithmic decisions negatively impacts certain demographic groups or individuals; and last but not least, how algorithmic decisions can be explained to a non-technical audience. Throughout the course, we will focus on technical solutions that have been recently proposed by the ML community to tackle the above issues. We will critically discuss the advantages and shortcomings of these proposals in comparison with non-technical alternatives.
Voraussetzungen / BesonderesStudents are expected to sufficient knowledge of ML (i.e. they must have taken the "Introduction to Machine Learning" or an equivalent course).
252-5706-00LMathematical Foundations of Computer Graphics and Vision Information W4 KP2V + 1UM. R. Oswald, C. Öztireli
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-5805-00LPhysics-based Modeling for Computational Fabrication and Robotics Information W5 KP2V + 2US. Coros, M. Bächer, K. Shea
KurzbeschreibungThis course covers fundamentals of physics-based modelling and numerical optimization from the perspective of computational fabrication and robotics applications.
LernzielStudents will learn how to represent, model and algorithmically control the behavior of complex physical systems through simulation-based methodologies. The lectures are accompanied by programming assignments (written in C++), hand-on exercises involving digital fabrication technologies, as well as a capstone project.
Inhaltmass-spring and FEM simulation methods; multibody systems; kinematics and dynamics; constrained and unconstrained numerical optimization; PDE-constrained optimization, forward and inverse design; shape and topology optimization; simulation, optimization, fabrication and control for compliant robots; 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-1034-00LComputational Vision (University of Zurich) Information
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:
Link
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.
Seminar in Visual Computing
NummerTitelTypECTSUmfangDozierende
252-5704-00LAdvanced Methods in Computer Graphics 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 KP2SM. Gross, O. Sorkine Hornung
KurzbeschreibungThis seminar covers advanced topics in computer graphics with a focus on the latest research results. Topics include modeling, rendering, visualization,
animation, physical simulation, computational photography, and others.
LernzielThe goal is to obtain an in-depth understanding of actual problems and
research topics in the field of computer graphics as well as improve
presentation and critical analysis skills.
263-5904-00LDeep Learning for Computer Vision: Seminal Work 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 KP2SZ. Cui
KurzbeschreibungThis seminar covers seminal papers on the topic of deep learning for computer vision. The students will present and discuss the papers and gain an understanding of the most influential research in this area - both past and present.
LernzielThe objectives of this seminar are two-fold. Firstly, the aim is to provide a solid understanding of key contributions to the field of deep learning for vision (including a historical perspective as well as recent work). Secondly, the students will learn to critically read and analyse original research papers and judge their impact, as well as how to give a scientific presentation and lead a discussion on their topic.
InhaltThe seminar will start with introductory lectures to provide (1) a compact overview of challenges and relevant machine learning and deep learning research, and (2) a tutorial on critical analysis and presentation of research papers. Each student then chooses one paper from the provided collection to present during the remainder of the seminar. The students will be supported in the preparation of their presentation by the seminar assistants.
SkriptThe selection of research papers will be presented at the beginning of the semester.
LiteraturThe course "Machine Learning" is recommended.
Vertiefung General Studies
Kernfächer der Vertiefung General Studies
NummerTitelTypECTSUmfangDozierende
252-0407-00LCryptography Foundations Information
Takes place the last time in this form.
W7 KP3V + 2U + 1AU. Maurer
KurzbeschreibungFundamentals and applications of cryptography. Cryptography as a mathematical discipline: reductions, constructive cryptography paradigm, security proofs. The discussed primitives include cryptographic functions, pseudo-randomness, symmetric encryption and authentication, public-key encryption, key agreement, and digital signature schemes. Selected cryptanalytic techniques.
LernzielThe goals are:
(1) understand the basic theoretical concepts and scientific thinking in cryptography;
(2) understand and apply some core cryptographic techniques and security proof methods;
(3) be prepared and motivated to access the scientific literature and attend specialized courses in cryptography.
InhaltSee course description.
Skriptyes.
Voraussetzungen / BesonderesFamiliarity with the basic cryptographic concepts as treated for
example in the course "Information Security" is required but can
in principle also be acquired in parallel to attending the course.
252-0538-00LShape Modeling and Geometry Processing Information W5 KP2V + 1U + 1AO. Sorkine Hornung
KurzbeschreibungThis course covers some of the latest developments in geometric modeling and digital geometry processing. Topics include surface modeling based on polygonal meshes, mesh generation, surface reconstruction, mesh fairing and simplification, discrete differential geometry, interactive shape editing, topics in digital shape fabrication.
LernzielThe students will learn how to design, program and analyze algorithms and systems for interactive 3D shape modeling and digital geometry processing.
InhaltRecent advances in 3D digital geometry processing have created a plenitude of novel concepts for the mathematical representation and interactive manipulation of geometric models. This course covers some of the latest developments in geometric modeling and digital geometry processing. Topics include surface modeling based on triangle meshes, mesh generation, surface reconstruction, mesh fairing and simplification, discrete differential geometry, interactive shape editing and digital shape fabrication.
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.
261-5110-00LOptimization for Data Science Information W8 KP3V + 2U + 2AB. Gärtner, D. Steurer
KurzbeschreibungThis course teaches an overview of modern optimization methods, with applications in particular for machine learning and data science.
LernzielUnderstanding the theoretical and practical aspects of relevant optimization methods used in data science. Learning general paradigms to deal with optimization problems arising in data science.
InhaltThis course teaches an overview of modern optimization methods, with applications in particular for machine learning and data science.

In the first part of the course, we will discuss how classical first and second order methods such as gradient descent and Newton's method can be adapated to scale to large datasets, in theory and in practice. We also cover some new algorithms and paradigms that have been developed specifically in the context of data science. The emphasis is not so much on the application of these methods (many of which are covered in other courses), but on understanding and analyzing the methods themselves.

In the second part, we discuss convex programming relaxations as a powerful and versatile paradigm for designing efficient algorithms to solve computational problems arising in data science. We will learn about this paradigm and develop a unified perspective on it through the lens of the sum-of-squares semidefinite programming hierarchy. As applications, we are discussing non-negative matrix factorization, compressed sensing and sparse linear regression, matrix completion and phase retrieval, as well as robust estimation.
Voraussetzungen / 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.
263-2300-00LHow To Write Fast Numerical Code Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 84.

Prerequisite: Master student, solid C programming skills.

Takes place the last time in this form.
W6 KP3V + 2UM. Püschel
KurzbeschreibungThis course introduces the student to the foundations and state-of-the-art techniques in developing high performance software for mathematical functionality such as matrix operations, transforms, and others. The focus is on optimizing for a single core. This 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.
263-2925-00LProgram Analysis for System Security and Reliability Information W5 KP2V + 1U + 1AM. Vechev
KurzbeschreibungSecurity breaches in modern systems (blockchains, datacenters, AI, etc.) result in billions of losses. We will cover key security issues and how the latest automated techniques can be used to prevent these. The course has a practical focus, also covering systems built by successful ETH Spin-offs (ChainSecurity.com and DeepCode.ai).

More info: Link
Lernziel* Learn about security issues in modern systems -- blockchains, smart contracts, AI-based systems (e.g., autonomous cars), data centers -- and why they are challenging to address.

* Understand how the latest automated analysis techniques work, both discrete and probabilistic.

* Understand how these techniques combine with machine-learning methods, both supervised and unsupervised.

* Understand how to use these methods to build reliable and secure modern systems.

* Learn about new open problems that if solved can lead to research and commercial impact.
InhaltPart I: Security of Blockchains

- We will cover existing blockchains (e.g., Ethereum, Bitcoin), how they work, what the core security issues are, and how these have led to massive financial losses.
- We will show how to extract useful information about smart contracts and transactions using interactive analysis frameworks for querying blockchains (e.g. Google's Ethereum BigQuery).
- We will discuss the state-of-the-art security tools (e.g., Link) for ensuring that smart contracts are free of security vulnerabilities.
- We will study the latest automated reasoning systems (e.g., Dagger) for checking custom (temporal) properties of smart contracts and illustrate their operation on real-world use cases.
- We will study the underlying methods for automated reasoning and testing (e.g., abstract interpretation, symbolic execution, fuzzing) are used to build such tools.

Part II: Machine Learning for Security

- We will discuss how machine learning models for structured prediction are used to address security tasks, including de-obfuscation of binaries (Debin: Link), Android APKs (DeGuard: Link) and JavaScript (JSNice: Link).
- We will study to leverage program abstractions in combination with clustering techniques to learn security rules for cryptography APIs from large codebases.
- We will study how to automatically learn to identify security vulnerabilities related to the handling of untrusted inputs (cross-Site scripting, SQL injection, path traversal, remote code execution) from large codebases.

Part III: Security of Datacenters and Networks

- We will show how to ensure that datacenters and ISPs are secured using declarative reasoning methods (e.g., Datalog). We will also see how to automatically synthesize secure configurations (e.g. using SyNET and NetComplete) which lead to desirable behaviors, thus automating the job of the network operator and avoiding critical errors.
- We will discuss how to apply modern discrete probabilistic inference (e.g., PSI and Bayonet) so to reason about probabilistic network properties (e.g., the probability of a packet reaching a destination if links fail).

Part IV: Security of AI-based Systems

- We will look into the security issues related to modern systems that combine machine learning models (e.g., neural networks) within traditional systems such as cars, airplanes, and medical systems.
- We will learn state-of-the-art techniques for security testing and certifying entire AI-based systems, such as autonomous driving systems.

To gain a deeper understanding, the course will involve a hands-on programming project where the methods studied in the class will be applied.
263-3800-00LAdvanced Operating Systems Information W6 KP2V + 2U + 1AT. 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.
227-0558-00LPrinciples of Distributed Computing Information W6 KP2V + 2U + 1AR. 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.)
Wahlfächer der Vertiefung General Studies
NummerTitelTypECTSUmfangDozierende
252-0312-00LUbiquitous Computing Information W3 KP2VF. Mattern, S. Mayer
KurzbeschreibungUbiquitous computing integrates tiny wirelessly connected computers and sensors into the environment and everyday objects. Main topics: The vision of ubiquitous computing, trends in technology, smart cards, RFID, Personal Area Networks (Bluetooth), sensor networks, location awareness, privacy and security, application areas, economic and social impact.
LernzielThe vision of ubiquitous computing, trends in technology, smart cards, RFID, Personal Area Networks (Bluetooth), sensor networks, location awareness, privacy and security, application areas, economic and social impact.
SkriptCopies of slides will be made available
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-0408-00LCryptographic Protocols Information W5 KP2V + 2UM. 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.
252-0526-00LStatistical Learning Theory Information W7 KP3V + 2U + 1AJ. M. Buhmann
KurzbeschreibungThe course covers advanced methods of statistical learning :
Statistical learning theory;variational methods and optimization, e.g., maximum entropy techniques, information bottleneck, deterministic and simulated annealing; clustering for vectorial, histogram and relational data; model selection; graphical models.
LernzielThe course surveys recent methods of statistical learning. The fundamentals of machine learning as presented in the course "Introduction to Machine Learning" are expanded and in particular, the theory of statistical learning is discussed.
Inhalt# Theory of estimators: How can we measure the quality of a statistical estimator? We already discussed bias and variance of estimators very briefly, but the interesting part is yet to come.

# Variational methods and optimization: We consider optimization approaches for problems where the optimizer is a probability distribution. Concepts we will discuss in this context include:

* Maximum Entropy
* Information Bottleneck
* Deterministic Annealing

# Clustering: The problem of sorting data into groups without using training samples. This requires a definition of ``similarity'' between data points and adequate optimization procedures.

# Model selection: We have already discussed how to fit a model to a data set in ML I, which usually involved adjusting model parameters for a given type of model. Model selection refers to the question of how complex the chosen model should be. As we already know, simple and complex models both have advantages and drawbacks alike.

# Statistical physics models: approaches for large systems approximate optimization, which originate in the statistical physics (free energy minimization applied to spin glasses and other models); sampling methods based on these models
SkriptA draft of a script will be provided;
transparencies of the lectures 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 / BesonderesRequirements:

knowledge of the Machine Learning course
basic knowledge of statistics, interest in statistical methods.

It is recommended that Introduction to Machine Learning (ML I) is taken first; but with a little extra effort Statistical Learning Theory can be followed without the introductory course.
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 neuer 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. Anstelle von traditionellen 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. Wir planen das XNA Game Studio Express von Microsoft zu verwenden, 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 360 Konsole eingesetzt.

Am Ende des Kurses werden die Resultate öffentlich präsentiert.
SkriptOnline XNA Dokumentation.
Voraussetzungen / BesonderesDie Anzahl der Teilnehmer wird begrenzt sein.

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 W4 KP3GM. 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-0817-00LDistributed Systems 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 KP9PG. Alonso, T. Hoefler, F. Mattern, T. Roscoe, 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.
252-1403-00LInvitation to Quantum Informatics Information W3 KP2VS. Wolf
KurzbeschreibungNach einer Einführung wichtiger Grundbegriffe der Quantenphysik, wie etwa Überlagerung, Interferenz und Verschränkung, werden verschiedene Themen behandelt: Quantenalgorithmen, Teleportation, Quanten-Kommunikationskomplexität und "Pseudo-Telepathie", Quantenkryptographie sowie die Grundzüge der Quanten-Informationstheorie.
LernzielDas Ziel dieser Vorlesung ist es, mit den wichtigsten Begriffen vetraut zu werden,
welche fuer die Verbindung zwischen Information und Physik wichtig sind. Der Grundformalismus des Quantenphysik soll erarbeitet, und der Einsatz der entsprechenden Gesetze fuer die Informationsverarbeitung verstanden werden. Insbesondere sollen wichtige Algorithmen dargelegt und analysiert werden, wie der Grover- sowie der Shor-Algorithmus.
InhaltGemäss Landauer kann Information und ihre Verarbeitung nicht völlig losgelöst von der physikalischen Repräsentation betrachtet werden. Die Quanteninformatik befasst sich mit den Konsequenzen und Möglichkeiten der quantenphysikalischen Gesetze für die Informationsverarbeitung. Nach einer Einführung wichtiger Grundbegriffe der Quantenphysik, wie etwa Überlagerung, Interferenz und Verschränkung, werden verschiedene Themen behandelt: Quantenalgorithmen, Teleportation, Quanten-Kommunikationskomplexität und "Pseudo-Telepathie", Quantenkryptographie sowie die Grundzüge der Quanten-Informationstheorie.
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.
252-3005-00LNatural Language Understanding Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 200.
W4 KP2V + 1UM. Ciaramita, T. Hofmann
KurzbeschreibungThis 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.
LernzielThe 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.
InhaltThis 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.
LiteraturLectures will make use of textbooks such as the one by Jurafsky and Martin where appropriate, but will also make use of original research and survey papers.
252-5706-00LMathematical Foundations of Computer Graphics and Vision Information W4 KP2V + 1UM. R. Oswald, C. Öztireli
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.
261-5120-00LMachine Learning for Health Care Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 78.

Previously called Computational Biomedicine II
W4 KP3PG. Rätsch
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-2812-00LProgram Verification Information Belegung eingeschränkt - Details anzeigen
Maximale Teilnehmerzahl: 30.
W5 KP2V + 1U + 1AA. J. Summers
KurzbeschreibungA hands-on introduction to the theory and construction of deductive software verifiers, covering both cutting-edge methodologies for formal program reasoning, and a perspective over the broad tool stacks making up modern verification tools.
LernzielStudents will earn the necessary skills for designing and developing deductive verification tools which can be applied to modularly analyse 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.

Students will be gain practical experience with reasoning tools at various levels of abstraction, from SAT and SMT solvers at the lowest level, up through intermediate verification languages and tools, to verifiers which target front-end code in executable languages.

By the end of the course, students should have a good working understanding and experience of the issues and decisions involved with designing and building practical verification tools, and the theoretical techniques which underpin them.
InhaltThe course will be organized around building up a "tool stack", starting at the lowest-level with background on SAT and SMT solving techniques, and working upwards through tools at progressively-higher levels of abstraction. The notion of intermediate verification languages will be explored, and the Boogie (Microsoft Research) and Viper (ETH) languages will be used in depth to tackle increasingly ambitious verification tasks.

The course will intermix technical content with hands-on experience; at each level of abstraction, we will understand who to build and use tools which can tackle specific program correctness problems, starting from simple puzzle solvers (Soduko) at the SAT level, and working upwards to full functional correctness of application-level code. This practical work will include three projects (typically worked on in pairs) spread throughout the course, which count towards the final grade. The graded projects are worth 40% in total, individually weighted at 14%, 13% and 13% respectively. The projects are a compulsory performance assessment; in this case, they need not be passed on their own, but will count 40% in all cases towards the final grading. An oral examination (worth the remaining 60% of the final grade) will examine the full technical content covered in the course.
SkriptHandouts (complementing the lecture material) and other materials will be available online.
LiteraturBackground reading material and links to tools will be published on the course website.
Voraussetzungen / BesonderesSome programming experience is essential, as the course contains several practical assignments. 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-3501-00LFuture Internet Information
Previously called Advanced Computer Networks
W6 KP1V + 1U + 3AA. Singla
KurzbeschreibungThis 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.
LernzielThe 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.
InhaltThe 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.
SkriptLecture slides will be made available at the course Web site: Link
LiteraturNo textbook is required, but there will be regularly assigned readings from research literature, liked to the course Web site: Link.
Voraussetzungen / BesonderesAn 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-3710-00LMachine Perception Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 150.
W5 KP2V + 1U + 1AO. Hilliges
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 / BesonderesThis 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 150 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 TensorFlow, scikit-learn and scikit-image. We will provide introductions to TensorFlow 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-3826-00LData Stream Processing and Analytics Information W6 KP2V + 2U + 1AV. Kalavri
KurzbeschreibungThe course covers fundamentals of large-scale data stream processing. The focus is on the design and architecture of modern distributed streaming systems as well as algorithms for analyzing data streams.
LernzielThis course has the goal of providing an overview of the data stream processing model and introducing modern platforms and tools for anlayzing massive data streams. By the end of the course, students should be able to use techniques for extracting knowledge from continuous, fast data streams. They will also have gained a deep understanding of the design and implementation of modern distributed stream processors through a series of hands-on exercises.
InhaltModern data-driven applications require continuous, low-latency processing of large-scale, rapid data events such as videos, images, emails, chats, clicks, search queries, financial transactions, traffic records, sensor measurements, etc. Extracting knowledge from these data streams is particularly challenging due to their high speed and massive volume.
Distributed stream processing has recently become highly popular across industry and academia due to its capabilities to both improve established data processing tasks and to facilitate novel applications with real-time requirements. In this course, we will study the design and architecture of modern distributed streaming systems as well as fundamental algorithms for analyzing data streams.
SkriptSchedule and lecture notes will be posted in the course website: Link
Voraussetzungen / BesonderesThe exercise sessions will be a mixture of (1) reviews, discussions, and evaluation of research papers on data stream processing, and (2) programming assignments on implementing data stream mining algorithms and anlysis tasks.

- Basic knowledge of relational data management and distributed systems.

- Basic programming skills in Java and/or Rust is necessary to carry out the practical exercises and final project.
263-4506-00LMassively Parallel Algorithms Information W6 KP2V + 1U + 2AM. Ghaffari
KurzbeschreibungData sizes are growing faster than the capacities of single processors. This makes it almost a certainty that the future of computation will rely on parallelism. In this new graduate-level course, we discuss the expanding body of work on the theoretical foundations of modern parallel computation, with an emphasis on the algorithmic tools and techniques for large-scale processing.
LernzielThis course will familiarize the students with the algorithmic tools and techniques in modern parallel computation. In particular, we will discuss the growing body of algorithmic results in the Massively Parallel Computation (MPC) model. This model is a mathematical abstraction of some of the popular large-scale processing settings such as MapReduce, Hadoop, Spark, etc. By the end of the semester, the students will know all the standard tools of this area, as well as the state of the art on a number of the central problems. Our hope is that the course prepares the students for independent research at the frontier of this area, and we will attempt to move in that direction with the course projects.

The course assumes no particular familiarity with parallel computation and should be accesible to any student with sufficient theoretical/algorithmic background. In particular, we expect that all students are comfortable with the basics of algorithmics designs and analysis, as well as probability theory.
InhaltThe course will cover a sampling of the recent developments (and open questions) at the frontier of research in massively/modern parallel computation. the material will be based on compilation of recent papers on this area, which will be provided throughout the semester.
Voraussetzungen / BesonderesThe class does not expect any prior knowledge in parallel algorithms/computing. Our only prerequisite is the undergraduate class Algorithms, Probability, and Computing (APC) or any other course that can be seen as the equivalent. In particular, much of waht we will discuss uses randomized algorithms and therefore, we will assume that the students are familiar with the tools and techniques in randomized algorithms and analysis (to the extent covered in the APC class).
263-4600-00LFormal Methods for Information Security Information W4 KP2V + 1UR. Sasse, C. Sprenger
KurzbeschreibungThe course focuses on formal methods for the modelling and analysis of security protocols for critical systems, ranging from authentication protocols for network security to electronic voting protocols and online banking.
LernzielThe students will learn the key ideas and theoretical foundations of formal modelling 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.
InhaltThe course treats formal methods mainly for the modelling 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.

In addition to the classical security properties for confidentiality and authentication, we will study strong secrecy and privacy properties. We will discuss electronic voting protocols, and RFID protocols (a staple of the Internet of Things), where these properties are central. The accompanying tutorials provide an opportunity to apply the theory and tools to concrete protocols. Moreover, we will discuss methods to abstract and refine security protocols and the link between symbolic protocol models and cryptographic models.

Furthermore, we will also present a security notion for general systems based on non-interference as well as language-based information flow security where non-interference is enforced via a type system.
263-4630-00LComputer-Aided Modelling and Reasoning Information
In the Master Programme max. 10 credits can be accounted by Labs on top of the Interfocus Courses. Additional Labs will be listed on the Addendum.
W8 KP7PC. Sprenger, D. Traytel
KurzbeschreibungThe "computer-aided modelling and reasoning" lab is a hands-on course about using an interactive theorem prover to construct formal models of algorithms, protocols, and programming languages and to reason about their properties. The lab has two parts: The first introduces various modelling and proof techniques. The second part consists of a project in which the students apply these techniques
LernzielThe students learn to effectively use a theorem prover to create unambiguous models and rigorously analyse them. They learn how to write precise and concise specifications, to exploit the theorem prover as a tool for checking and analysing such models and for taming their complexity, and to extract certified executable implementations from such specifications.
InhaltThe "computer-aided modelling and reasoning" lab is a hands-on course about using an interactive theorem prover to construct formal models of algorithms, protocols, and programming languages and to reason about their properties. The focus is on applying logical methods to concrete problems supported by a theorem prover. The course will demonstrate the challenges of formal rigor, but also the benefits of machine support in modelling, proving and validating.

The lab will have two parts: The first part introduces basic and advanced modelling techniques (functional programs, inductive definitions, modules), the associated proof techniques (term rewriting, resolution, induction, proof automation), and compilation of the models to certified executable code. In the second part, the students work in teams of two on a project assignment in which they apply these techniques: they build a formal model and prove its desired properties. The project lies in the area of programming languages, model checking, or information security.
LiteraturTextbook: Tobias Nipkow, Gerwin Klein. Concrete Semantics, part 1 (Link)
263-5215-00LFairness, Explainability, and Accountability for Machine Learning Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 40.

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 course, will officially fail the course.
W4 KP1V + 2PH. Heidari
Kurzbeschreibung
Lernziel- Familiarize students with the ethical implications of applying Big Data and ML tools to socially-sensitive domains; teach them to think critically about these issues.
- Overview the long-established philosophical, sociological, and economic literature on these subjects.
- Provide students with a tool-box of technical solutions for addressing - at least partially - the ethical and societal issues of ML and Big data.
InhaltAs ML continues to advance and make its way into different aspects of modern life, both the designers and users of the technology need to think seriously about its impact on individuals and society. We will study some of the ethical implications of applying ML tools to socially sensitive domains, such as employment, education, credit ledning, and criminal justice. We will discuss at length what it means for an algorithm to be fair; who should be held responsible when algorithmic decisions negatively impacts certain demographic groups or individuals; and last but not least, how algorithmic decisions can be explained to a non-technical audience. Throughout the course, we will focus on technical solutions that have been recently proposed by the ML community to tackle the above issues. We will critically discuss the advantages and shortcomings of these proposals in comparison with non-technical alternatives.
Voraussetzungen / BesonderesStudents are expected to sufficient knowledge of ML (i.e. they must have taken the "Introduction to Machine Learning" or an equivalent course).
263-5805-00LPhysics-based Modeling for Computational Fabrication and Robotics Information W5 KP2V + 2US. Coros, M. Bächer, K. Shea
KurzbeschreibungThis course covers fundamentals of physics-based modelling and numerical optimization from the perspective of computational fabrication and robotics applications.
LernzielStudents will learn how to represent, model and algorithmically control the behavior of complex physical systems through simulation-based methodologies. The lectures are accompanied by programming assignments (written in C++), hand-on exercises involving digital fabrication technologies, as well as a capstone project.
Inhaltmass-spring and FEM simulation methods; multibody systems; kinematics and dynamics; constrained and unconstrained numerical optimization; PDE-constrained optimization, forward and inverse design; shape and topology optimization; simulation, optimization, fabrication and control for compliant robots; 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.
272-0300-00LAlgorithmik für schwere Probleme Information
Diese Lerneinheit beinhaltet die Mentorierte Arbeit Fachwissenschaftliche Vertiefung mit pädagogischem Fokus Informatik A n i c h t !
W4 KP2V + 1UH.‑J. Böckenhauer, R. Kralovic
KurzbeschreibungDiese Lerneinheit beschäftigt sich mit algorithmischen Ansätzen zur Lösung schwerer Probleme, insbesondere mit exakten Algorithmen mit moderat exponentieller Laufzeit und parametrisierten Algorithmen.

Eine umfassende Reflexion über die Bedeutung der vorgestellten Ansätze für den Informatikunterricht an Gymnasien begleitet den Kurs.
LernzielAuf systematische Weise eine Übersicht über die Methoden zur Lösung schwerer Probleme kennen lernen. Vertiefte Kenntnisse im Bereich exakter und parameterisierter Algorithmen erwerben.
InhaltZuerst wird der Begriff der Berechnungsschwere erläutert (für die Informatikstudierenden wiederholt). Dann werden die Methoden zur Lösung schwerer Probleme systematisch dargestellt. Bei jeder Algorithmenentwurfsmethode wird vermittelt, was sie uns garantiert und was sie nicht sichern kann und womit wir für die gewonnene Effizienz bezahlen. Ein Schwerpunkt liegt auf exakten Algorithmen mit moderat exponentieller Laufzeit und auf parametrisierten Algorithmen.
SkriptUnterlagen und Folien werden zur Verfügung gestellt.
LiteraturJ. Hromkovic: Algorithmics for Hard Problems, Springer 2004.

R. Niedermeier: Invitation to Fixed-Parameter Algorithms, 2006.

M. Cygan et al.: Parameterized Algorithms, 2015.

F. Fomin, D. Kratsch: Exact Exponential Algorithms, 2010.
272-0302-00LApproximations- und Online-Algorithmen Information W4 KP2V + 1UH.‑J. Böckenhauer, D. Komm
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-05LGraph Theory Information W5 KP2V + 1UB. Sudakov
KurzbeschreibungBasic notions, trees, spanning trees, Caley's formula, vertex and edge connectivity, blocks, 2-connectivity, Mader's theorem, Menger's theorem, Eulerian graphs, Hamilton cycles, Dirac's theorem, matchings, theorems of Hall, König and Tutte, planar graphs, Euler's formula, basic non-planar graphs, graph colorings, greedy colorings, Brooks' theorem, 5-colorings of planar graphs
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.


NOTICE: This course unit was previously offered as 252-1408-00L Graphs and Algorithms.
401-3903-11LGeometric Integer ProgrammingW6 KP2V + 1UR. Weismantel, J. Paat, M. Schlöter
KurzbeschreibungInteger programming is the task of minimizing a linear function over all the integer points in a polyhedron. This lecture introduces the key concepts of an algorithmic theory for solving such problems.
LernzielThe purpose of the lecture is to provide a geometric treatment of the theory of integer optimization.
InhaltKey topics are:
- lattice theory and the polynomial time solvability of integer optimization problems in fixed dimension,
- the theory of integral generating sets and its connection to totally dual integral systems,
- finite cutting plane algorithms based on lattices and integral generating sets.
Skriptnot available, blackboard presentation
LiteraturBertsimas, Weismantel: Optimization over Integers, Dynamic Ideas 2005.
Schrijver: Theory of linear and integer programming, Wiley, 1986.
Voraussetzungen / Besonderes"Mathematical Optimization" (401-3901-00L)
401-4904-00LCombinatorial Optimization Information W6 KP2V + 1UR. Zenklusen
KurzbeschreibungCombinatorial Optimization deals with efficiently finding a provably strong solution among a finite set of options. This course discusses key combinatorial structures and techniques to design efficient algorithms for combinatorial optimization problems. We put a strong emphasis on polyhedral methods, which proved to be a powerful and unifying tool throughout combinatorial optimization.
LernzielThe goal of this lecture is to get a thorough understanding of various modern combinatorial optimization techniques with an emphasis on polyhedral approaches. Students will learn a general toolbox to tackle a wide range of combinatorial optimization problems.
InhaltKey topics include:
- Polyhedral descriptions;
- Combinatorial uncrossing;
- Ellipsoid method;
- Equivalence between separation and optimization;
- Design of efficient approximation algorithms for hard problems.
SkriptLecture notes will be available online.
Literatur- Bernhard Korte, Jens Vygen: Combinatorial Optimization. 5th edition, Springer, 2012.
- Alexander Schrijver: Combinatorial Optimization: Polyhedra and Efficiency, Springer, 2003. This work has 3 volumes.
Voraussetzungen / BesonderesPrior exposure to Linear Programming can greatly help the understanding of the material. We therefore recommend that students interested in Combinatorial Optimization get familiarized with Linear Programming before taking this lecture.
227-1034-00LComputational Vision (University of Zurich) Information
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:
Link
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.
263-4110-00LInterdisciplinary Algorithms Lab Belegung eingeschränkt - Details anzeigen
Findet dieses Semester nicht statt.
Im Masterstudium können zusätzlich zu den Vertiefungsübergreifenden Fächern nur max. 10 KP mit Laboratorien erarbeitet werden. Weitere Labs werden auf dem Beiblatt aufgeführt.
W5 KP2PA. Steger, D. Steurer
KurzbeschreibungIn this course students will develop solutions for algorithmic problems posed by researchers from other fields.
LernzielStudents will learn that in order to tackle algorithmic problems from an interdisciplinary or applied context one needs to combine a solid understanding of algorithmic methodology with insights into the problem at hand to judge which side constraints are essential and which can be loosened.
Voraussetzungen / BesonderesStudents will work in teams. Ideally, skills of team members complement each other.

Interested Bachelor students can apply for participation by sending an email to Link explaining motivation and transcripts.
272-0301-00LMethoden zum Entwurf von zufallsgesteuerten Algorithmen Information
Findet dieses Semester nicht statt.
Diese Lerneinheit beinhaltet die Mentorierte Arbeit Fachwissenschaftliche Vertiefung mit pädagogischem Fokus Informatik B n i c h t !
W4 KP2V + 1U
KurzbeschreibungDie Studierenden sollen die Entwicklung unserer Vorstellung über Zufall und dessen Rolle verfolgen. Mit Grundkenntnissen der Wahrscheinlichkeitstheorie und grundlegender Arithmetik sollen sie entdecken, dass Zufallssteuerung ein Mittel zur Erreichung unglaublicher Effizienz von Prozessen werden kann. Das Ziel ist, die Methodik des Entwurfs von zufallsgesteuerten Algorithmen zu vermitteln.
LernzielThematische Schwerpunkte
- Modellierung und Klassifizierung von randomisierten Algorithmen
- Die Methode der Überlistung des Gegners: Hashing und randomisierte Online-Algorithmen
- Die Methode der Fingerabdrücke: Kommunikationsprotokolle
- Die Methode der häufigen Zeugen: randomisierter Primzahltest von Solovay und Strassen
- Wahrscheinlichkeitsverstärkung durch Wiederholung
- Randomisierte Algorithmen für Optimierungsprobleme
SkriptJ. Hromkovic: Randomisierte Algorithmen, Teubner 2004.

J.Hromkovic: Design and Analysis of Randomized Algorithms. Springer 2006.

J.Hromkovic: Algorithmics for Hard Problems, Springer 2004.
LiteraturJ. Hromkovic: Randomisierte Algorithmen, Teubner 2004.

J.Hromkovic: Design and Analysis of Randomized Algorithms. Springer 2006.

J.Hromkovic: Algorithmics for Hard Problems, Springer 2004.
Seminar in General Studies
NummerTitelTypECTSUmfangDozierende
252-3002-00LAlgorithms for Database Systems Information
Limited number of participants.

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 KP2SP. Penna
KurzbeschreibungQuery processing, optimization, stream-based systems, distributed and parallel databases, non-standard databases.
LernzielDevelop an understanding of selected problems of current interest in the area of algorithms for database systems.
252-4102-00LSeminar on Randomized Algorithms and Probabilistic Methods
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 KP2SA. Steger
KurzbeschreibungThe aim of the seminar is to study papers which bring the students to the forefront of today's research topics. This semester we will study selected papers of the conference Symposium on Discrete Algorithms (SODA18).
LernzielRead papers from the forefront of today's research; learn how to give a scientific talk.
Voraussetzungen / BesonderesThe seminar is open for both students from mathematics and students from computer science. As prerequisite we require that you passed the course Randomized Algorithms and Probabilistic Methods (or equivalent, if you come from abroad).
252-4202-00LSeminar in Theoretical Computer Science Information
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 KP2SA. Steger, B. Gärtner, M. Ghaffari, M. Hoffmann, J. Lengler, D. Steurer, B. Sudakov
KurzbeschreibungPresentation of recent publications in theoretical computer science, including results by diploma, masters and doctoral candidates.
LernzielTo get an overview of current research in the areas covered by the involved research groups. To present results from the literature.
Voraussetzungen / BesonderesThis seminar takes place as part of the joint research seminar of several theory groups. Intended participation is for students with excellent performance only. Formal minimal requirement is passing of one of the courses Algorithms, Probability, and Computing, Randomized Algorithms and Probabilistic Methods, Geometry: Combinatorics and Algorithms, Advanced Algorithms. (If you cannot fulfill this restriction, because this is your first term at ETH, but you believe that you satisfy equivalent criteria, please send an email with a detailed description of your reasoning to the organizers of the seminar.)
263-3712-00LSeminar on Computational Interaction Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 14.

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 KP2SO. Hilliges
KurzbeschreibungComputational Interaction focuses on the use of algorithms to enhance the interaction with a computing system. Papers from scientific venues such as CHI, UIST & SIGGRAPH will be examined in-depth. Student present and discuss the papers to extract techniques and insights that can be applied to software & hardware projects. Topics include user modeling, computational design, and input & output.
LernzielThe goal of the seminar is to familiarize students with exciting new research topics in this important area, but also to teach basic scientific writing and oral presentation skills.
InhaltThe seminar will have a different structure from regular seminars to encourage more discussion and a deeper learning experience. We will use a case-study format where all students read the same paper each week but fulfill different roles and hence prepare with different viewpoints in mind (e.g. "presenter", "historian", "student", etc).

The seminar will cover multiple topics of computational interaction, including:
1) User- and context modeling for UI adaptation
Intent modeling, activity and emotion recognition, and user perception.

2) Computational design
Design mining, design exploration, UI optimization.

3) Computer supported input
Text entry, pointing, gestural input, physiological sensing, eye tracking, and sketching.

4) Computer supported output
Information retrieval, fabrication, mixed reality interfaces, haptics, and gaze contingency

For each topic, a paper will be chosen that represents the state of the art of research or seminal work that inspired and fostered future work. Student will learn how to incorporate computational methods into system that involve software, hardware, and, very importantly, users.

Seminar website: Link
263-4203-00LGeometry: Combinatorics and Algorithms Information
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 KP2SB. Gärtner, M. Hoffmann, C.‑H. Liu, M. Wettstein
KurzbeschreibungThis seminar complements the course Geometry: Combinatorics & Algorithms. Students of the seminar will present original research papers, some classic and some of them very recent.
LernzielEach student is expected to read, understand, and elaborate on a selected research paper. To this end, (s)he should give a 45-min. presentation about the paper. The process includes

* getting an overview of the related literature;
* understanding and working out the background/motivation:
why and where are the questions addressed relevant?
* understanding the contents of the paper in all details;
* selecting parts suitable for the presentation;
* presenting the selected parts in such a way that an audience
with some basic background in geometry and graph theory can easily understand and appreciate it.
InhaltThis seminar is held once a year and complements the course Geometry: Combinatorics & Algorithms. Students of the seminar will present original research papers, some classic and some of them very recent. The seminar is a good preparation for a master, diploma, or semester thesis in the area.
Voraussetzungen / BesonderesPrerequisite: Successful participation in the course "Geometry: Combinatorics & Algorithms" (takes place every HS) is required.
252-5704-00LAdvanced Methods in Computer Graphics 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 KP2SM. Gross, O. Sorkine Hornung
KurzbeschreibungThis seminar covers advanced topics in computer graphics with a focus on the latest research results. Topics include modeling, rendering, visualization,
animation, physical simulation, computational photography, and others.
LernzielThe goal is to obtain an in-depth understanding of actual problems and
research topics in the field of computer graphics as well as improve
presentation and critical analysis skills.
263-2100-00LResearch Topics in Software Engineering 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 KP2ST. Gross
KurzbeschreibungThis seminar introduces students to the latest research trends that help to improve various aspects of software quality.

Topics cover the following areas of research: Compilers, domain-specific languages, concurrency, formal methods, performance optimization, program analysis, program generation, program synthesis, testing, tools, verification
LernzielAt the end of the course, the students should be:

- familiar with a broad range of key research results in the area as well as their applications.

- know how to read and assess high quality research papers

- be able to highlight practical examples/applications, limitations of existing work, and outline potential improvements.
InhaltThe course will be structured as a sequence of presentations of high-quality research papers, spanning both theory and practice. These papers will have typically appeared in top conferences spanning several areas such as POPL, PLDI, OOPSLA, OSDI, ASPLOS, SOSP, AAAI, ICML and others.
LiteraturThe publications to be presented will be announced on the seminar home page at least one week before the first session.
Voraussetzungen / BesonderesPapers will be distributed during the first lecture.
263-2211-00LSeminar in Computer Architecture 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 KP2SO. Mutlu, M. H. K. Alser, J. Gómez Luna
KurzbeschreibungIn this seminar course, we will cover fundamental and cutting-edge research papers in computer architecture. The course will consist of multiple components that are aimed at improving students' technical skills in computer architecture, critical thinking and analysis on computer architecture concepts, as well as technical presentation of concepts and papers in both spoken and written forms.
LernzielThe main objective is to learn how to rigorously analyze and present papers and ideas computer architecture. We will have rigorous presentation and discussion of selected papers during lectures and a written report delivered by each student at the end of the semester.

This course is for those interested in computer architecture. Registered students are expected to attend every lecture and participate in the discussion.
InhaltTopics will center around computer architecture. We will, for example, discuss papers on hardware security; architectural acceleration mechanisms for key applications like machine learning, graph processing and bioinformatics; memory systems; interconnects; processing inside memory; various fundamental and emerging paradigms in computer architecture; hardware/software co-design and cooperation; fault tolerance; energy efficiency; heterogeneous and parallel systems; new execution models, etc.
LiteraturKey papers and articles, on both fundamentals and cutting-edge topics in computer architecture will be provided and discussed. These will be posted on the course website.
263-2926-00LDeep Learning for Big Code 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 KP2SV. Raychev
KurzbeschreibungThe seminar covers some of the latest and most exciting developments (industrial and research) in the field of Deep Learning for Code, including new methods and latest systems, as well as open challenges and opportunities.
LernzielThe objective of the seminar is to:

- Introduce students to the field of Deep Learning for Big Code.

- Learn how machine learning models can be used to solve practical challenges in software engineering and programming beyond traditional methods.

- Highlight the latest research and work opportunities in industry and academia available on this topic.
InhaltThe last 5 years have seen increased interest in applying advanced machine learning techniques such as deep learning to new kind of data: program code. As the size of open source code increases dramatically (over 980 billion lines of code written by humans), so comes the opportunity for new kind of deep probabilistic methods and commercial systems that leverage this data to revolutionize software creation and address hard problems not previously possible. Examples include: machines writing code, program de-obfuscation for security, code search, and many more.

Interestingly, this new type of data, unlike natural language and images, introduces technical challenges not typically encountered when working with standard datasets (e.g., images, videos, natural language), for instance, finding the right representation over which deep learning operates. This in turn has the potential to drive new kinds of machine learning models with broad applicability.

Because of this, there has been substantial interest over the last few years in both industry (e.g., companies such as Facebook starting, various start-ups in the space such as Link), academia (e.g., Link) and government agencies (e.g., DARPA) on using machine learning to automate various programming tasks.

In this seminar, we will cover some of the latest and most exciting developments in the field of Deep Learning for Code, including new methods and latest systems, as well as open challenges and opportunities.

The seminar is carried out as a set of presentations chosen from a list of available papers. The grade is determined as a function of the presentation, handling questions and answers, and participation.
Voraussetzungen / BesonderesThe seminar is carried out as a set of presentations chosen from a list of available papers. The grade is determined as a function of the presentation, handling questions and answers, and participation.

The seminar is ideally suited for M.Sc. students in Computer Science.
263-2930-00LBlockchain Security Seminar 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 KP2SM. Vechev, D. Drachsler Cohen, P. Tsankov
KurzbeschreibungThis seminar introduces students to the latest research trends in the field of blockchains.
LernzielThe objectives of this seminar are twofold: (1) learning about the blockchain platform, a prominent technology receiving a lot of attention in computer Science and economy and (2) learning to convey and present complex and technical concepts in simple terms, and in particular identifying the core idea underlying the technicalities.
InhaltThis seminar introduces students to the latest research trends in the field of blockchains. The seminar covers the basics of blockchain technology, including motivation for decentralized currency, establishing trust between multiple parties using consensus algorithms, and smart contracts as a means to establish decentralized computation. It also covers security issues arising in blockchains and smart contracts as well as automated techniques for detecting vulnerabilities using programming language techniques.
263-3840-00LHardware Architectures for Machine Learning Information
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 KP2SG. Alonso, T. Hoefler, C. Zhang
KurzbeschreibungThe seminar covers recent results in the increasingly important field of hardware acceleration for data science and machine learning, both in dedicated machines or in data centers.
LernzielThe seminar aims at students interested in the system aspects of machine learning, who are willing to bridge the gap across traditional disciplines: machine learning, databases, systems, and computer architecture.
InhaltThe seminar is intended to cover recent results in the increasingly important field of hardware acceleration for data science and machine learning, both in dedicated machines or in data centers.
Voraussetzungen / BesonderesThe seminar should be of special interest to students intending to complete a master's thesis or a doctoral dissertation in related topics.
263-5904-00LDeep Learning for Computer Vision: Seminal Work 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 KP2SZ. Cui
KurzbeschreibungThis seminar covers seminal papers on the topic of deep learning for computer vision. The students will present and discuss the papers and gain an understanding of the most influential research in this area - both past and present.
LernzielThe objectives of this seminar are two-fold. Firstly, the aim is to provide a solid understanding of key contributions to the field of deep learning for vision (including a historical perspective as well as recent work). Secondly, the students will learn to critically read and analyse original research papers and judge their impact, as well as how to give a scientific presentation and lead a discussion on their topic.
InhaltThe seminar will start with introductory lectures to provide (1) a compact overview of challenges and relevant machine learning and deep learning research, and (2) a tutorial on critical analysis and presentation of research papers. Each student then chooses one paper from the provided collection to present during the remainder of the seminar. The students will be supported in the preparation of their presentation by the seminar assistants.
SkriptThe selection of research papers will be presented at the beginning of the semester.
LiteraturThe course "Machine Learning" is recommended.
227-0126-00LAdvanced Topics in Networked Embedded Systems Information W2 KP1SL. Thiele, J. Beutel, Z. Zhou
KurzbeschreibungThe seminar will cover advanced topics in networked embedded systems. A particular focus are cyber-physical systems and sensor networks in various application domains.
LernzielThe goal is to get a deeper understanding on leading edge technologies in the discipline, on classes of applications, and on current as well as future research directions.
InhaltThe seminar enables Master students, PhDs and Postdocs to learn about latest breakthroughs in wireless sensor networks, networked embedded systems and devices, and energy-harvesting in several application domains, including environmental monitoring, tracking, smart buildings and control. Participants are requested to actively participate in the organization and preparation of the seminar.
227-0559-00LSeminar in Deep Reinforcement Learning Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 24.
W2 KP2SR. Wattenhofer, O. Richter
KurzbeschreibungIn this seminar participating students present and discuss recent research papers in the area of deep reinforcement learning. The seminar starts with two introductory lessons introducing the basic concepts. Alongside the seminar a programming challenge is posed in which students can take part to improve their grade.
LernzielSince Google Deepmind presented the Deep Q-Network (DQN) algorithm in 2015 that could play Atari-2600 games at a superhuman level, the field of deep reinforcement learning gained a lot of traction. It sparked media attention with AlphaGo and AlphaZero and is one of the most prominent research areas. Yet many research papers in the area come from one of two sources: Google Deepmind or OpenAI. In this seminar we aim at giving the students an in depth view on the current advances in the area by discussing recent papers as well as discussing current issues and difficulties surrounding deep reinforcement learning.
InhaltTwo introductory courses introducing Q-learning and policy gradient methods. Afterwards participating students present recent papers. For details see: Link
SkriptSlides of presentations will be made available.
LiteraturOpenAI course (Link) plus selected papers.
The paper selection can be found on Link.
Voraussetzungen / BesonderesIt is expected that student have prior knowledge and interest in machine and deep learning, for instance by having attended appropriate courses.
851-0740-00LBig Data, Law, and Policy Belegung eingeschränkt - Details anzeigen
Number of participants limited to 35

Students will be informed by 3.3.2019 at the latest.
W3 KP2SS. Bechtold, T. Roscoe, E. Vayena
KurzbeschreibungThis course introduces students to societal perspectives on the big data revolution. Discussing important contributions from machine learning and data science, the course explores their legal, economic, ethical, and political implications in the past, present, and future.
LernzielThis course is intended both for students of machine learning and data science who want to reflect on the societal implications of their field, and for students from other disciplines who want to explore the societal impact of data sciences. The course will first discuss some of the methodological foundations of machine learning, followed by a discussion of research papers and real-world applications where big data and societal values may clash. Potential topics include the implications of big data for privacy, liability, insurance, health systems, voting, and democratic institutions, as well as the use of predictive algorithms for price discrimination and the criminal justice system. Guest speakers, weekly readings and reaction papers ensure a lively debate among participants from various backgrounds.
Wahlfächer in der Informatik
Als Wahlfächer in der Informatik gelten alle angebotenen Kurse im Master-Studiengang des D-INFK.
NummerTitelTypECTSUmfangDozierende
252-0820-00LCase Studies from Practice Information W4 KP2V + 1UM. Brandis
KurzbeschreibungThe course is designed to provide students with an understanding of "real-life" computer science challenges in business settings and teach them how to address these.
LernzielBy using case studies that are based on actual IT projects, students will learn how to deal with complex, not straightforward problems. It will help them to apply their theoretical Computer Science background in practice and will teach them fundamental principles of IT management and challenges with IT in practice.
A particular focus is to make the often imprecise and fuzzy problems in practice accessible to factual analysis and reasoning, and to challenge "common wisdom" and hearsay.
InhaltThe course consists of multiple lectures on methods to systematically analyze problems in a business setting and communicate about them as well as about IT management and IT economics, presented by the lecturer, and a number of case studies provided by guest lecturers from either IT companies or IT departments of a diverse range of companies. Students will obtain insights into both established and startup companies, small and big, and different industries.
Presenting companies have included avaloq, Accenture, AdNovum, Bank Julius Bär, Credit Suisse, Deloitte, HP, Hotelcard, IBM Research, McKinsey & Company, Open Web Technology, SAP Research, Selfnation, SIX Group, Teralytics, 28msec, Zühlke and dormakaba, and Marc Brandis Strategic Consulting. The participating companies in spring 2019 will be announced at course start.
Voraussetzungen / BesonderesParticipants should be aware that the provided documents supporting the cases are usually taken directly from the projects and companies being addressed, and thus differ very much in terms of presentation style, terminology, and explicitly provided contextual information.
Earlier participants have found it difficult to solve the exercises completely and to fully grasp the contents taught in the cases, if they were not able to attend the case presentation, and were just relying on the provided documents.
263-0600-00LResearch in Computer Science Belegung eingeschränkt - Details anzeigen
Nur für MSc Informatik.
W5 KP11AProfessor/innen
KurzbeschreibungSelbständige Projektarbeit unter der Leitung eines Informatik-Professors / einer Informatik-Professorin.
LernzielProject done under supervision of a professor in the Department of Computer Science.
Voraussetzungen / BesonderesNur Studierende, die eine der folgenden Bedingungen erfüllen, können mit einem Research Projekt beginnen:
a) 1 Lab (Interfokus Kurs) und 1 Kernfokus Kurs
b) 2 Kernfokus Kurse
c) 2 Labs (Interfokus Kurse)

Eine Aufgabenbeschreibung muss zu Beginn des Projekts beim Studiensekretariat eingereicht werden.
401-3632-00LComputational StatisticsW8 KP3V + 1UM. H. Maathuis
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.
Voraussetzungen / BesonderesAt least one semester of (basic) probability and statistics.

Programming experience is helpful but not required.
Freie Wahlfächer
Den Studierenden steht das gesamte Lehrangebot auf Master-Level der ETH Zürich, der EPF Lausanne und der Universität Zürich zur individuellen Auswahl offen. Lerneinheiten der übrigen Schweizer Universitäten können - nur nach vorgängiger Genehmigung durch den Studiendirektor - ebenfalls gewählt werden.

Weitere Details entnehmen Sie bitte Art. 31 des Studienreglementes 2009 für den Master-Studiengang Informatik.
NummerTitelTypECTSUmfangDozierende
151-3217-00LCoaching studentischer Teams (Basistraining)W1 KP1GM. Lehner, B. Volk
KurzbeschreibungZiel ist die Erweiterung von Wissen und Kompetenzen in Bezug auf Coaching-Fähigkeiten. Teilnehmende sollten aktive Coaches eines Studententeams sein. Themen: Überblick über Rollen und Haltung eines Coaches, Einführung in die Coaching-Methodik. Gegenseitiges Lernen und Reflektieren der eigenen Coaching-Erfahrungen und -fälle.
Lernziel- Grundkenntnisse der Rolle und Denkweise eines Coaches
- Erste Kenntnisse und Reflexion klassischer Coaching Situationen
- Inspiration und gegenseitiges Lernen an konkreten Coachings (Hospitationen)
InhaltGrundkenntnisse der Rolle und Denkweise eines Coaches
- Coaching-Einführung: Definition und Modelle
- Einführung in den Coaching-Prozess und die Phasen der Teamentwicklung
- Coaching-Rollen zwischen Prüfendem, Tutor und "Freund"
Erster Aufbau der persönlichen Coaching-Kompetenzen, z. B aktives Zuhören, Fragestellung, Feedback geben
- Kompetenzen in theoretischen Modellen
- Coaching-Kompetenzen: Übungen und Reflektion
Erste Reflektion und Erfahrungsaustausch über persönliche Coaching-Situationen
- Erfahrungsaustausch in der Vorlesungsgruppe
- Gegenseitige Hospitationen
SkriptFolien und andere Dokumente (z.B. Artikel) werden elektronisch verteilt
(Zugang nur für den Kurs eingeschriebene Studierende).
LiteraturSiehe Skript.
Voraussetzungen / BesonderesNur für Teilnehmer (Studierende. Doktoranden und PostDocs), die die aktiv ein studentisches Projektteam betreuen oder einzelne Studierende coachen.
151-3220-00LCoaching Students (Aufbaukurs 2)W1 KP1GR. P. Haas, I. Goller, B. Volk
KurzbeschreibungZiel ist die Erweiterung von Wissen und Kompetenzen in Bezug auf Coaching-Fähigkeiten. Teilnehmende sollten aktive Coaches eines Studententeams sein. Der Schwerpunkt liegt in der Reflexion des eigenen Tuns als Coach und der Wirkung auf die begleiteten Teams und Studierenen.
Lernziel- Vertiefte Kenntnisse der Rolle und Denkweise eines Coaches
- Reflexion des eigenen Verhaltens als Coach
- Entwicklung persönlicher Coaching-Fertigkeiten
- Situative Erweiterung von Kenntnissen und Fachwissen über anzuwendende Methoden
InhaltVertiefung von Coaching-Methoden und -Situationen an eigenen Fällen, z.B.:
- Kenntnisse der grundsätzlichen Coaching-Methoden studentischer Teams
- Kenntnisse der Anwendung von Methoden innerhalb des Coaching-Prozesses
- Unterstützung von Entscheidungsprozessen
- Sinnvoller Einsatz von Einschätzungen und Meinungen des Coaches
- Erleichterung von Konfliktsituationen
Reflektion und Erfahrungsaustausch über persönliche Coaching-Situationen
- Erfahrungsaustausch in der Vorlesungsgruppe
- Reflexion klassischer Coaching Situationen (inklusive Aufgaben zwischen den Lektionen)
- Reflektion und Erfahrungsaustausch über persönliche Coaching-Situationen (Einzelgespräche)
- Inspiration und gegenseitiges Lernen an konkreten Coachings (Hospitationen)
- Reflexion einer Coaching Intervention (Fallstudie)
SkriptFolien und weiterführende Dokumente (z.B. Artikel) werden elektronisch verteilt
(Zugang nur für den Kurs eingeschriebene Studierende).
LiteraturSiehe Skript.
Voraussetzungen / Besonderes- Nur für Teilnehmer (Studierende. Doktoranden und PostDocs), die aktiv ein studentisches Projektteam betreuen.
- Vorgängiger oder paralleler Besuch des Basistrainings wird vorausgesetzt.
263-0610-00LDirect Doctorate Research Project
Only for Direct Doctorate Students
O15 KP23AProfessor/innen
KurzbeschreibungDirect Doctorate Students join a research group of D-INFK in order to acquire a broader view of the different research groups and areas.
LernzielStudents extend their knowledge of the different research topics and improve their scientific approach of working on an actual research project.
Inhalt2nd semester students join a research group of D-INFK in order to acquire a broader view of the different research groups and areas. The research group chosen must not be identical with the one, in which the thesis project is conducted.
Voraussetzungen / BesonderesPlease be aware that the research project and the master's thesis have to be coached by two different research groups!
263-0620-00LDirect Doctorate Research Plan
Only for Direct Doctorate Students
O15 KP23AProfessor/innen
KurzbeschreibungThe research plan aims at planning and structuring a student's research work and thesis. It further contributes to the student's ability to write research proposals.
LernzielThe student has to present the research plan to the faculty members in order to defend his/her research goals, but also to demonstrate a solid knowledge on the background literature as well as the planned and alternative procedures to follow.
Industriepraktikum
NummerTitelTypECTSUmfangDozierende
252-0700-00LIndustriepraktikum Information Belegung eingeschränkt - Details anzeigen
Nur für MSc Informatik.
W0 KPexterne Veranstalter
KurzbeschreibungIndustriepraktikum in einem Informatikbetrieb, welcher vom Departement Informatik als Praktikumsfirma anerkannt ist. Mindestens 10 Wochen Vollzeitbeschäftigung.
LernzielDas Ziel der mindestens 10- wöchigen Praxis ist es, Studierenden die industriellen Arbeitsumgebungen näher zu bringen. Während dieser Zeit bietet sich ihnen die Gelegenheit, in aktuelle Projekte der Gastinstitution involviert zu werden.
Voraussetzungen / BesonderesVor Beginn des Industriepraktikums muss die Aufgabenstellung zur Bewilligung vorgelegt werden. Nach Abschluss wird eine Arbeitsbestätigung verlangt.
GESS Wissenschaft im Kontext
» siehe Studiengang Wissenschaft im Kontext: Sprachkurse ETH/UZH
» siehe Studiengang Wissenschaft im Kontext: Typ A: Förderung allgemeiner Reflexionsfähigkeiten
» Empfehlungen aus dem Bereich Wissenschaft im Kontext (Typ B) für das D-INFK
Master-Arbeit
NummerTitelTypECTSUmfangDozierende
263-0800-00LMaster's Thesis Information 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;
c. in der Kategorie "Vertiefungsübergreifende Fächer" sind 12 KP;
d. und in der Kategorie "Vertiefungsfächer" sind 26 KP erarbeitet.
O30 KP64DProfessor/innen
KurzbeschreibungThe Master's thesis concludes the study programme. Thesis work should prove the students' ability to independent, structured and scientific working.
LernzielTo work independently and to produce a scientifically structured work under the supervision of a Computer Science Professor.
InhaltIndependent project work supervised by a Computer Science professor. Duration 6 months.