Suchergebnis: Katalogdaten im Herbstsemester 2021
Informatik Master ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
263-3010-00L | Big Data ![]() ![]() | W | 10 KP | 3V + 2U + 4A | G. Fourny | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | The key challenge of the information society is to turn data into information, information into knowledge, knowledge into value. This has become increasingly complex. Data comes in larger volumes, diverse shapes, from different sources. Data is more heterogeneous and less structured than forty years ago. Nevertheless, it still needs to be processed fast, with support for complex operations. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | This combination of requirements, together with the technologies that have emerged in order to address them, is typically referred to as "Big Data." This revolution has led to a completely new way to do business, e.g., develop new products and business models, but also to do science -- which is sometimes referred to as data-driven science or the "fourth paradigm". Unfortunately, the quantity of data produced and available -- now in the Zettabyte range (that's 21 zeros) per year -- keeps growing faster than our ability to process it. Hence, new architectures and approaches for processing it were and are still needed. Harnessing them must involve a deep understanding of data not only in the large, but also in the small. The field of databases evolves at a fast pace. In order to be prepared, to the extent possible, to the (r)evolutions that will take place in the next few decades, the emphasis of the lecture will be on the paradigms and core design ideas, while today's technologies will serve as supporting illustrations thereof. After visiting this lecture, you should have gained an overview and understanding of the Big Data landscape, which is the basis on which one can make informed decisions, i.e., pick and orchestrate the relevant technologies together for addressing each business use case efficiently and consistently. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | This course gives an overview of database technologies and of the most important database design principles that lay the foundations of the Big Data universe. We take the monolithic, one-machine relational stack from the 1970s, smash it down and rebuild it on top of large clusters: starting with distributed storage, and all the way up to syntax, models, validation, processing, indexing, and querying. A broad range of aspects is covered with a focus on how they fit all together in the big picture of the Big Data ecosystem. No data is harmed during this course, however, please be psychologically prepared that our data may not always be in third normal form. - physical storage: distributed file systems (HDFS), object storage(S3), key-value stores - logical storage: document stores (MongoDB), column stores (HBase), graph databases (neo4j), data warehouses (ROLAP) - data formats and syntaxes (XML, JSON, RDF, Turtle, CSV, XBRL, YAML, protocol buffers, Avro) - data shapes and models (tables, trees, graphs, cubes) - type systems and schemas: atomic types, structured types (arrays, maps), set-based type systems (?, *, +) - an overview of functional, declarative programming languages across data shapes (SQL, XQuery, JSONiq, Cypher, MDX) - the most important query paradigms (selection, projection, joining, grouping, ordering, windowing) - paradigms for parallel processing, two-stage (MapReduce) and DAG-based (Spark) - resource management (YARN) - what a data center is made of and why it matters (racks, nodes, ...) - underlying architectures (internal machinery of HDFS, HBase, Spark, neo4j) - optimization techniques (functional and declarative paradigms, query plans, rewrites, indexing) - applications. Large scale analytics and machine learning are outside of the scope of this course. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | Papers from scientific conferences and journals. References will be given as part of the course material during the semester. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | This course, in the autumn semester, is only intended for: - Computer Science students - Data Science students - CBB students with a Computer Science background Mobility students in CS are also welcome and encouraged to attend. If you experience any issue while registering, please contact the study administration and you will be gladly added. For students of all other departements interested in this fascinating topic: I would love to have you visit my lectures as well! So there is a series of two courses specially designed for you: - "Information Systems for Engineers" (SQL, relational databases): this Fall - "Big Data for Engineers" (similar to Big Data, but adapted for non Computer Scientists): Spring 2021 There is no hard dependency, so you can either them in any order, but it may be more enjoyable to start with Information Systems for Engineers. Students who successfully completed Big Data for Engineers are not allowed to enrol in the course Big Data. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-3845-00L | Data Management Systems ![]() | W | 8 KP | 3V + 1U + 3A | G. Alonso | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | The course will cover the implementation aspects of data management systems using relational database engines as a starting point to cover the basic concepts of efficient data processing and then expanding those concepts to modern implementations in data centers and the cloud. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The goal of the course is to convey the fundamental aspects of efficient data management from a systems implementation perspective: storage, access, organization, indexing, consistency, concurrency, transactions, distribution, query compilation vs interpretation, data representations, etc. Using conventional relational engines as a starting point, the course will aim at providing an in depth coverage of the latest technologies used in data centers and the cloud to implement large scale data processing in various forms. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The course will first cover fundamental concepts in data management: storage, locality, query optimization, declarative interfaces, concurrency control and recovery, buffer managers, management of the memory hierarchy, presenting them in a system independent manner. The course will place an special emphasis on understating these basic principles as they are key to understanding what problems existing systems try to address. It will then proceed to explore their implementation in modern relational engines supporting SQL to then expand the range of systems used in the cloud: key value stores, geo-replication, query as a service, serverless, large scale analytics engines, etc. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | The main source of information for the course will be articles and research papers describing the architecture of the systems discussed. The list of papers will be provided at the beginning of the course. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | The course requires to have completed the Data Modeling and Data Bases course at the Bachelor level as it assumes knowledge of databases and SQL. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kompetenzen![]() |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-0535-00L | Advanced Machine Learning ![]() | W | 10 KP | 3V + 2U + 4A | J. M. Buhmann, C. Cotrini Jimenez | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Machine learning algorithms provide analytical methods to search data sets for characteristic patterns. Typical tasks include the classification of data, function fitting and clustering, with applications in image and speech analysis, bioinformatics and exploratory data analysis. This course is accompanied by practical machine learning projects. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | Students will be familiarized with advanced concepts and algorithms for supervised and unsupervised learning; reinforce the statistics knowledge which is indispensible to solve modeling problems under uncertainty. Key concepts are the generalization ability of algorithms and systematic approaches to modeling and regularization. Machine learning projects will provide an opportunity to test the machine learning algorithms on real world data. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The theory of fundamental machine learning concepts is presented in the lecture, and illustrated with relevant applications. Students can deepen their understanding by solving both pen-and-paper and programming exercises, where they implement and apply famous algorithms to real-world data. Topics covered in the lecture include: Fundamentals: What is data? Bayesian Learning Computational learning theory Supervised learning: Ensembles: Bagging and Boosting Max Margin methods Neural networks Unsupservised learning: Dimensionality reduction techniques Clustering Mixture Models Non-parametric density estimation Learning Dynamical Systems | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | No lecture notes, but slides will be made available on the course webpage. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | C. Bishop. Pattern Recognition and Machine Learning. Springer 2007. R. Duda, P. Hart, and D. Stork. Pattern Classification. John Wiley & Sons, second edition, 2001. T. Hastie, R. Tibshirani, and J. Friedman. The Elements of Statistical Learning: Data Mining, Inference and Prediction. Springer, 2001. L. Wasserman. All of Statistics: A Concise Course in Statistical Inference. Springer, 2004. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | The course requires solid basic knowledge in analysis, statistics and numerical methods for CSE as well as practical programming experience for solving assignments. Students should have followed at least "Introduction to Machine Learning" or an equivalent course offered by another institution. PhD students are required to obtain a passing grade in the course (4.0 or higher based on project and exam) to gain credit points. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-1414-00L | System Security ![]() | W | 7 KP | 2V + 2U + 2A | S. Capkun, A. Perrig | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | The first part of the lecture covers individual system aspects starting with tamperproof or tamper-resistant hardware in general over operating system related security mechanisms to application software systems, such as host based intrusion detection systems. In the second part, the focus is on system design and methodologies for building secure systems. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | In this lecture, students learn about the security requirements and capabilities that are expected from modern hardware, operating systems, and other software environments. An overview of available technologies, algorithms and standards is given, with which these requirements can be met. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The first part of the lecture covers individual system's aspects starting with tamperproof or tamperresistant hardware in general over operating system related security mechanisms to application software systems such as host based intrusion detetction systems. The main topics covered are: tamper resistant hardware, CPU support for security, protection mechanisms in the kernel, file system security (permissions / ACLs / network filesystem issues), IPC Security, mechanisms in more modern OS, such as Capabilities and Zones, Libraries and Software tools for security assurance, etc. In the second part, the focus is on system design and methodologies for building secure systems. Topics include: patch management, common software faults (buffer overflows, etc.), writing secure software (design, architecture, QA, testing), compiler-supported security, language-supported security, logging and auditing (BSM audit, dtrace, ...), cryptographic support, and trustworthy computing (TCG, SGX). Along the lectures, model cases will be elaborated and evaluated in the exercises. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-2800-00L | Design of Parallel and High-Performance Computing ![]() ![]() Number of participants limited to 125. | W | 9 KP | 3V + 2U + 3A | T. Hoefler, M. Püschel | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Advanced topics in parallel and high-performance computing. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | Understand concurrency paradigms and models from a higher perspective and acquire skills for designing, structuring and developing possibly large parallel high-performance software systems. Become able to distinguish parallelism in problem space and in machine space. Become familiar with important technical concepts and with concurrency folklore. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | We will cover all aspects of high-performance computing ranging from architecture through programming up to algorithms. We will start with a discussion of caches and cache coherence in practical computer systems. We will dive into parallel programming concepts such as memory models, locks, and lock-free. We will cover performance modeling and parallel design principles as well as basic parallel algorithms. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | This class is intended for the Computer Science Masters curriculum. Students must have basic knowledge in programming in C as well as computer science theory. Students should be familiar with the material covered in the ETH computer science first-year courses "Parallele Programmierung (parallel programming)" and "Algorithmen und Datenstrukturen (algorithm and data structures)" or equivalent courses. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-3210-00L | Deep Learning ![]() ![]() Number of participants limited to 320. | W | 8 KP | 3V + 2U + 2A | F. Perez Cruz, A. Lucchi | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Deep learning is an area within machine learning that deals with algorithms and models that automatically induce multi-level data representations. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | In recent years, deep learning and deep networks have significantly improved the state-of-the-art in many application domains such as computer vision, speech recognition, and natural language processing. This class will cover the mathematical foundations of deep learning and provide insights into model design, training, and validation. The main objective is a profound understanding of why these methods work and how. There will also be a rich set of hands-on tasks and practical projects to familiarize students with this emerging technology. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | This is an advanced level course that requires some basic background in machine learning. More importantly, students are expected to have a very solid mathematical foundation, including linear algebra, multivariate calculus, and probability. The course will make heavy use of mathematics and is not (!) meant to be an extended tutorial of how to train deep networks with tools like Torch or Tensorflow, although that may be a side benefit. The participation in the course is subject to the following condition: - Students must have taken the exam in Advanced Machine Learning (252-0535-00) or have acquired equivalent knowledge, see exhaustive list below: Advanced Machine Learning https://ml2.inf.ethz.ch/courses/aml/ Computational Intelligence Lab http://da.inf.ethz.ch/teaching/2019/CIL/ Introduction to Machine Learning https://las.inf.ethz.ch/teaching/introml-S19 Statistical Learning Theory http://ml2.inf.ethz.ch/courses/slt/ Computational Statistics https://stat.ethz.ch/lectures/ss19/comp-stats.php Probabilistic Artificial Intelligence https://las.inf.ethz.ch/teaching/pai-f18 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-3850-00L | Informal Methods ![]() | W | 5 KP | 2G + 2A | D. Cock | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Formal methods are increasingly a key part of the methodological toolkit of systems programmers - those writing operating systems, databases, and distributed systems. This course is about how to apply concepts, techniques, and principles from formal methods to such software systems, and how to get into the habit of thinking formally about systems design even when writing low-level C code. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | This course is about equipping students whose focus is systems with the insights and conceptual tools provided by formal methods, and thereby enabling them to become better systems programmers. By the end of the course, students should be able to seamlessly integrate basic concepts form formal methods into how they conceive, design, implement, reason about, and debug computer systems. The goal is not to provide a comprehensive introduction to formal methods - this is well covered by other courses in the department. Instead, it is intended to provide students in computer systems (who may or may not have existing background knowledge of formal methods) with a basis for applying formal methods in their work. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | This course does not assume prior knowledge of formal methods, and will start with a quick review of topics such static vs. dynamic reasoning, variants and invariants, program algebra and refinement, etc. However, it is strongly recommended that students have already taken one of the introductory formal methods course at ETH (or equivalents elsewhere) before taking this course - the emphasis is on reinforcing these concepts by applying them, not to teach them from scratch. Instead, the majority of the course will be about how to apply these techniques to actual, practical code in real systems. We will work from real systems code written both by students taking the course, and practical systems developed using formal techniques, in particular the verified seL4 microkernel will be a key case study. We will also focus on informal, pen-and-paper arguments for correctness of programs and systems rather than using theorem provers or automated verification tools; again these latter techniques are well covered in other courses (and recommended as a complement to this one). | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-0535-00L | Advanced Machine Learning ![]() | W | 10 KP | 3V + 2U + 4A | J. M. Buhmann, C. Cotrini Jimenez | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Machine learning algorithms provide analytical methods to search data sets for characteristic patterns. Typical tasks include the classification of data, function fitting and clustering, with applications in image and speech analysis, bioinformatics and exploratory data analysis. This course is accompanied by practical machine learning projects. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | Students will be familiarized with advanced concepts and algorithms for supervised and unsupervised learning; reinforce the statistics knowledge which is indispensible to solve modeling problems under uncertainty. Key concepts are the generalization ability of algorithms and systematic approaches to modeling and regularization. Machine learning projects will provide an opportunity to test the machine learning algorithms on real world data. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The theory of fundamental machine learning concepts is presented in the lecture, and illustrated with relevant applications. Students can deepen their understanding by solving both pen-and-paper and programming exercises, where they implement and apply famous algorithms to real-world data. Topics covered in the lecture include: Fundamentals: What is data? Bayesian Learning Computational learning theory Supervised learning: Ensembles: Bagging and Boosting Max Margin methods Neural networks Unsupservised learning: Dimensionality reduction techniques Clustering Mixture Models Non-parametric density estimation Learning Dynamical Systems | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | No lecture notes, but slides will be made available on the course webpage. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | C. Bishop. Pattern Recognition and Machine Learning. Springer 2007. R. Duda, P. Hart, and D. Stork. Pattern Classification. John Wiley & Sons, second edition, 2001. T. Hastie, R. Tibshirani, and J. Friedman. The Elements of Statistical Learning: Data Mining, Inference and Prediction. Springer, 2001. L. Wasserman. All of Statistics: A Concise Course in Statistical Inference. Springer, 2004. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | The course requires solid basic knowledge in analysis, statistics and numerical methods for CSE as well as practical programming experience for solving assignments. Students should have followed at least "Introduction to Machine Learning" or an equivalent course offered by another institution. PhD students are required to obtain a passing grade in the course (4.0 or higher based on project and exam) to gain credit points. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-3210-00L | Deep Learning ![]() ![]() Number of participants limited to 320. | W | 8 KP | 3V + 2U + 2A | F. Perez Cruz, A. Lucchi | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Deep learning is an area within machine learning that deals with algorithms and models that automatically induce multi-level data representations. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | In recent years, deep learning and deep networks have significantly improved the state-of-the-art in many application domains such as computer vision, speech recognition, and natural language processing. This class will cover the mathematical foundations of deep learning and provide insights into model design, training, and validation. The main objective is a profound understanding of why these methods work and how. There will also be a rich set of hands-on tasks and practical projects to familiarize students with this emerging technology. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | This is an advanced level course that requires some basic background in machine learning. More importantly, students are expected to have a very solid mathematical foundation, including linear algebra, multivariate calculus, and probability. The course will make heavy use of mathematics and is not (!) meant to be an extended tutorial of how to train deep networks with tools like Torch or Tensorflow, although that may be a side benefit. The participation in the course is subject to the following condition: - Students must have taken the exam in Advanced Machine Learning (252-0535-00) or have acquired equivalent knowledge, see exhaustive list below: Advanced Machine Learning https://ml2.inf.ethz.ch/courses/aml/ Computational Intelligence Lab http://da.inf.ethz.ch/teaching/2019/CIL/ Introduction to Machine Learning https://las.inf.ethz.ch/teaching/introml-S19 Statistical Learning Theory http://ml2.inf.ethz.ch/courses/slt/ Computational Statistics https://stat.ethz.ch/lectures/ss19/comp-stats.php Probabilistic Artificial Intelligence https://las.inf.ethz.ch/teaching/pai-f18 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-5210-00L | Probabilistic Artificial Intelligence ![]() ![]() | W | 8 KP | 3V + 2U + 2A | A. Krause | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | This course introduces core modeling techniques and algorithms from machine learning, optimization and control for reasoning and decision making under uncertainty, and study applications in areas such as robotics. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | How can we build systems that perform well in uncertain environments? How can we develop systems that exhibit "intelligent" behavior, without prescribing explicit rules? How can we build systems that learn from experience in order to improve their performance? We will study core modeling techniques and algorithms from statistics, optimization, planning, and control and study applications in areas such as robotics. The course is designed for graduate students. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | Topics covered: - Probability - Probabilistic inference (variational inference, MCMC) - Bayesian learning (Gaussian processes, Bayesian deep learning) - Probabilistic planning (MDPs, POMPDPs) - Multi-armed bandits and Bayesian optimization - Reinforcement learning | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Solid basic knowledge in statistics, algorithms and programming. The material covered in the course "Introduction to Machine Learning" is considered as a prerequisite. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-3005-00L | Natural Language Processing ![]() ![]() Number of participants limited to 400. | W | 5 KP | 2V + 2U + 1A | R. Cotterell | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | This course presents topics in natural language processing with an emphasis on modern techniques, primarily focusing on statistical and deep learning approaches. The course provides an overview of the primary areas of research in language processing as well as a detailed exploration of the models and techniques used both in research and in commercial natural language systems. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The objective of the course is to learn the basic concepts in the statistical processing of natural languages. The course will be project-oriented so that the students can also gain hands-on experience with state-of-the-art tools and techniques. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | This course presents an introduction to general topics and techniques used in natural language processing today, primarily focusing on statistical approaches. The course provides an overview of the primary areas of research in language processing as well as a detailed exploration of the models and techniques used both in research and in commercial natural language systems. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | Lectures 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. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
261-5100-00L | Computational Biomedicine ![]() ![]() Number of participants limited to 120. | W | 5 KP | 2V + 1U + 1A | V. Boeva, G. Rätsch | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | The course critically reviews central problems in Biomedicine and discusses the technical foundations and solutions for these problems. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | Over the past years, rapid technological advancements have transformed classical disciplines such as biology and medicine into fields of apllied data science. While the sheer amount of the collected data often makes computational approaches inevitable for analysis, it is the domain specific structure and close relation to research and clinic, that call for accurate, robust and efficient algorithms. In this course we will critically review central problems in Biomedicine and will discuss the technical foundations and solutions for these problems. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The course will consist of three topic clusters that will cover different aspects of data science problems in Biomedicine: 1) String algorithms for the efficient representation, search, comparison, composition and compression of large sets of strings, mostly originating from DNA or RNA Sequencing. This includes genome assembly, efficient index data structures for strings and graphs, alignment techniques as well as quantitative approaches. 2) Statistical models and algorithms for the assessment and functional analysis of individual genomic variations. this includes the identification of variants, prediction of functional effects, imputation and integration problems as well as the association with clinical phenotypes. 3) Models for organization and representation of large scale biomedical data. This includes ontolgy concepts, biomedical databases, sequence annotation and data compression. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Data Structures & Algorithms, Introduction to Machine Learning, Statistics/Probability, Programming in Python, Unix Command Line | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-2400-00L | Reliable and Trustworthy Artificial Intelligence ![]() | W | 6 KP | 2V + 2U + 1A | M. Vechev | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Creating reliable and explainable probabilistic models is a fundamental challenge to solving the artificial intelligence problem. This course covers some of the latest and most exciting advances that bring us closer to constructing such models. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The main objective of this course is to expose students to the latest and most exciting research in the area of explainable and interpretable artificial intelligence, a topic of fundamental and increasing importance. Upon completion of the course, the students should have mastered the underlying methods and be able to apply them to a variety of problems. To facilitate deeper understanding, an important part of the course will be a group hands-on programming project where students will build a system based on the learned material. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | This comprehensive course covers some of the latest and most important research advances (over the last 3 years) underlying the creation of safe, trustworthy, and reliable AI (more information here: https://www.sri.inf.ethz.ch/teaching/reliableai21): * Adversarial Attacks on Deep Learning (noise-based, geometry attacks, sound attacks, physical attacks, autonomous driving, out-of-distribution) * Defenses against attacks * Combining gradient-based optimization with logic for encoding background knowledge * Complete Certification of deep neural networks via automated reasoning (e.g., via numerical relaxations, mixed-integer solvers). * Probabilistic certification of deep neural networks * Training deep neural networks to be provably robust via automated reasoning * Fairness (different notions of fairness, certifiably fair representation learning) * Federated Learning (introduction, security considerations) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | While not a formal requirement, the course assumes familiarity with basics of machine learning (especially linear algebra, gradient descent, and neural networks as well as basic probability theory). These topics are usually covered in “Intro to ML” classes at most institutions (e.g., “Introduction to Machine Learning” at ETH). For solving assignments, some programming experience in Python is expected. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-4500-00L | Advanced Algorithms ![]() Takes place for the last time. | W | 9 KP | 3V + 2U + 3A | M. Ghaffari, G. Zuzic | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | This is a graduate-level course on algorithm design (and analysis). It covers a range of topics and techniques in approximation algorithms, sketching and streaming algorithms, and online algorithms. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | This course familiarizes the students with some of the main tools and techniques in modern subareas of algorithm design. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The lectures will cover a range of topics, tentatively including the following: graph sparsifications while preserving cuts or distances, various approximation algorithms techniques and concepts, metric embeddings and probabilistic tree embeddings, online algorithms, multiplicative weight updates, streaming algorithms, sketching algorithms, and derandomization. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | https://people.inf.ethz.ch/gmohsen/AA21/ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | This course is designed for masters and doctoral students and it especially targets those interested in theoretical computer science, but it should also be accessible to last-year bachelor students. Sufficient comfort with both (A) Algorithm Design & Analysis and (B) Probability & Concentrations. E.g., having passed the course Algorithms, Probability, and Computing (APC) is highly recommended, though not required formally. If you are not sure whether you're ready for this class or not, please consult the instructor. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-5005-00L | Artificial Intelligence in Education ![]() ![]() Number of participants limited to 75. | W | 5 KP | 2V + 1U + 1A | M. Sachan, T. Sinha | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Artificial Intelligence (AI) methods have shown to have a profound impact in educational technologies, where the great variety of tasks and data types enable us to get benefit of AI techniques in many different ways. We will review relevant methods and applications of AI in various educational technologies, and work on problem sets and projects to solve problems in education with the help of AI. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The course will be centered around exploring methodological and system-focused perspectives on designing AI systems for education and analyzing educational data using AI methods. Students will be expected to a) engage in presentations and active in-class discussion, b) work on problem-sets exemplifying the use of educational data mining techniques, and c) undertake a final course project with feedback from instructors. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The course will start with a general introduction to AI, where we will cover supervised and unsupervised learning techniques (e.g.,classification and regression models, feature selection and preprocessing of data, clustering, dimensionality reduction and text mining techniques) with a focus on application of these techniques in educational data mining. After the introduction of the basic methodologies, we will continue with the most relevant applications of AI in educational technologies (e.g., intelligent tutoring and student personalization, scaffolding open-ended discovery learning, socially-aware AI and learning at scale with AI systems). In the final part of the course, we will cover challenges associated with using AI in student facing settings. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | Lecture slides will be made available at the course Web site. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | No textbook is required, but there will be regularly assigned readings from research literature, linked to the course website. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | There are no prerequisites for this class. However, it will help if the student has taken an undergraduate or graduate level class in statistics, data science or machine learning. This class is appropriate for advanced undergraduates and master students in Computer Science as well as PhD students in other departments. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-5255-00L | Foundations of Reinforcement Learning ![]() ![]() Number of participants limited to 190. Last cancellation/deregistration date for this graded semester performance: Thursday, 28 October 2021! Please note that after that date no deregistration will be accepted and the course will be considered as "fail". | W | 5 KP | 2V + 2A | N. He | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Reinforcement learning (RL) has been in the limelight of many recent breakthroughs in artificial intelligence. This course focuses on theoretical and algorithmic foundations of reinforcement learning, through the lens of optimization, modern approximation, and learning theory. The course targets M.S. students with strong research interests in reinforcement learning, optimization, and control. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | This course aims to provide students with an advanced introduction of RL theory and algorithms as well as bring them near the frontier of this active research field. By the end of the course, students will be able to - Identify the strengths and limitations of various reinforcement learning algorithms; - Formulate and solve sequential decision-making problems by applying relevant reinforcement learning tools; - Generalize or discover “new” applications, algorithms, or theories of reinforcement learning towards conducting independent research on the topic. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | Basic topics include fundamentals of Markov decision processes, approximate dynamic programming, linear programming and primal-dual perspectives of RL, model-based and model-free RL, policy gradient and actor-critic algorithms, Markov games and multi-agent RL. If time allows, we will also discuss advanced topics such as batch RL, inverse RL, causal RL, etc. The course keeps strong emphasis on in-depth understanding of the mathematical modeling and theoretical properties of RL algorithms. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | Lecture notes will be posted on Moodle. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | Dynamic Programming and Optimal Control, Vol I & II, Dimitris Bertsekas Reinforcement Learning: An Introduction, Second Edition, Richard Sutton and Andrew Barto. Algorithms for Reinforcement Learning, Csaba Czepesvári. Reinforcement Learning: Theory and Algorithms, Alekh Agarwal, Nan Jiang, Sham M. Kakade. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Students are expected to have strong mathematical background in linear algebra, probability theory, optimization, and machine learning. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-5902-00L | Computer Vision ![]() | W | 8 KP | 3V + 1U + 3A | M. Pollefeys, S. Tang, F. Yu | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | The goal of this course is to provide students with a good understanding of computer vision and image analysis techniques. The main concepts and techniques will be studied in depth and practical algorithms and approaches will be discussed and explored through the exercises. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The objectives of this course are: 1. To introduce the fundamental problems of computer vision. 2. To introduce the main concepts and techniques used to solve those. 3. To enable participants to implement solutions for reasonably complex problems. 4. To enable participants to make sense of the computer vision literature. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | Camera models and calibration, invariant features, Multiple-view geometry, Model fitting, Stereo Matching, Segmentation, 2D Shape matching, Shape from Silhouettes, Optical flow, Structure from motion, Tracking, Object recognition, Object category recognition | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | It is recommended that students have taken the Visual Computing lecture or a similar course introducing basic image processing concepts before taking this course. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-0237-00L | Concepts of Object-Oriented Programming ![]() | W | 8 KP | 3V + 2U + 2A | P. Müller | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Course that focuses on an in-depth understanding of object-oriented programming and compares designs of object-oriented programming languages. Topics include different flavors of type systems, inheritance models, encapsulation in the presence of aliasing, object and class initialization, program correctness, reflection | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | After this course, students will: Have a deep understanding of advanced concepts of object-oriented programming and their support through various language features. Be able to understand language concepts on a semantic level and be able to compare and evaluate language designs. Be able to learn new languages more rapidly. Be aware of many subtle problems of object-oriented programming and know how to avoid them. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The main goal of this course is to convey a deep understanding of the key concepts of sequential object-oriented programming and their support in different programming languages. This is achieved by studying how important challenges are addressed through language features and programming idioms. In particular, the course discusses alternative language designs by contrasting solutions in languages such as C++, C#, Eiffel, Java, Python, and Scala. The course also introduces novel ideas from research languages that may influence the design of future mainstream languages. The topics discussed in the course include among others: The pros and cons of different flavors of type systems (for instance, static vs. dynamic typing, nominal vs. structural, syntactic vs. behavioral typing) The key problems of single and multiple inheritance and how different languages address them Generic type systems, in particular, Java generics, C# generics, and C++ templates The situations in which object-oriented programming does not provide encapsulation, and how to avoid them The pitfalls of object initialization, exemplified by a research type system that prevents null pointer dereferencing How to maintain the consistency of data structures | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | Will be announced in the lecture. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Prerequisites: Mastering at least one object-oriented programming language (this course will NOT provide an introduction to object-oriented programming); programming experience | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-0463-00L | Security Engineering ![]() | W | 7 KP | 2V + 2U + 2A | S. Krstic | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Subject of the class are engineering techniques for developing secure systems. We examine concepts, methods and tools, applied within the different activities of the SW development process to improve security of the system. Topics: security requirements&risk analysis, system modeling&model-based development methods, implementation-level security, and evaluation criteria for secure systems | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | Security engineering is an evolving discipline that unifies two important areas: software engineering and security. Software Engineering addresses the development and application of methods for systematically developing, operating, and maintaining, complex, high-quality software. Security, on the other hand, is concerned with assuring and verifying properties of a system that relate to confidentiality, integrity, and availability of data. The goal of this class is to survey engineering techniques for developing secure systems. We will examine concepts, methods, and tools that can be applied within the different activities of the software development process, in order to improve the security of the resulting systems. Topics covered include * security requirements & risk analysis, * system modeling and model-based development methods, * implementation-level security, and * evaluation criteria for the development of secure systems | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | Security engineering is an evolving discipline that unifies two important areas: software engineering and security. Software Engineering addresses the development and application of methods for systematically developing, operating, and maintaining, complex, high-quality software. Security, on the other hand, is concerned with assuring and verifying properties of a system that relate to confidentiality, integrity, and availability of data. The goal of this class is to survey engineering techniques for developing secure systems. We will examine concepts, methods, and tools that can be applied within the different activities of the software development process, in order to improve the security of the resulting systems. Topics covered include * security requirements & risk analysis, * system modeling and model-based development methods, * implementation-level security, and * evaluation criteria for the development of secure systems Modules taught: 1. Introduction - Introduction of Infsec group and speakers - Security meets SW engineering: an introduction - The activities of SW engineering, and where security fits in - Overview of this class 2. Requirements Engineering: Security Requirements and some Analysis - Overview: functional and non-functional requirements - Use cases, misuse cases, sequence diagrams - Safety and security 3. Modeling in the design activities - Structure, behavior, and data flow - Class diagrams, statecharts 4. Model-driven security for access control (Part I) - SecureUML as a language for access control - Combining Design Modeling Languages with SecureUML - Semantics, i.e., what does it all mean, - Generation - Examples and experience 5. Model-driven security (Part II) - Continuation of above topics 6. Security patterns (design and implementation) 7. Implementation-level security - Buffer overflows - Input checking - Injection attacks 8. Code scanning - Static code analysis basics - Theoretical and practical challenges - Analysis algorithms - Common bug pattern search and specification - Dataflow analysis 9. Testing - Overview and basics - Model-based testing - Testing security properties 10. Risk analysis and management - "Risk": assets, threats, vulnerabilities, risk - Risk assessment: quantitative and qualitative - Safeguards - Generic risk analysis procedure - The OCTAVE approach - Example of qualitative risk assessment 11. Threat modeling - Overview - Safety engineering basics: FMEA and FTA - Security impact analysis in the design phase - Modeling security threats: attack trees - Examples and experience 12. Evaluation criteria - NIST special papers - ISO/IEC 27000 - Common criteria - BSI baseline protection 13. Guest lecture - TBA | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | - Ross Anderson: Security Engineering, Wiley, 2001. - Matt Bishop: Computer Security, Pearson Education, 2003. - Ian Sommerville: Software Engineering, 6th ed., Addison-Wesley, 2001. - John Viega, Gary McGraw: Building Secure Software, Addison-Wesley, 2002. - Further relevant books and journal/conference articles will be announced in the lecture. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Prerequisite: Class on Information Security | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-1414-00L | System Security ![]() | W | 7 KP | 2V + 2U + 2A | S. Capkun, A. Perrig | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | The first part of the lecture covers individual system aspects starting with tamperproof or tamper-resistant hardware in general over operating system related security mechanisms to application software systems, such as host based intrusion detection systems. In the second part, the focus is on system design and methodologies for building secure systems. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | In this lecture, students learn about the security requirements and capabilities that are expected from modern hardware, operating systems, and other software environments. An overview of available technologies, algorithms and standards is given, with which these requirements can be met. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The first part of the lecture covers individual system's aspects starting with tamperproof or tamperresistant hardware in general over operating system related security mechanisms to application software systems such as host based intrusion detetction systems. The main topics covered are: tamper resistant hardware, CPU support for security, protection mechanisms in the kernel, file system security (permissions / ACLs / network filesystem issues), IPC Security, mechanisms in more modern OS, such as Capabilities and Zones, Libraries and Software tools for security assurance, etc. In the second part, the focus is on system design and methodologies for building secure systems. Topics include: patch management, common software faults (buffer overflows, etc.), writing secure software (design, architecture, QA, testing), compiler-supported security, language-supported security, logging and auditing (BSM audit, dtrace, ...), cryptographic support, and trustworthy computing (TCG, SGX). Along the lectures, model cases will be elaborated and evaluated in the exercises. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-2800-00L | Design of Parallel and High-Performance Computing ![]() ![]() Number of participants limited to 125. | W | 9 KP | 3V + 2U + 3A | T. Hoefler, M. Püschel | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Advanced topics in parallel and high-performance computing. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | Understand concurrency paradigms and models from a higher perspective and acquire skills for designing, structuring and developing possibly large parallel high-performance software systems. Become able to distinguish parallelism in problem space and in machine space. Become familiar with important technical concepts and with concurrency folklore. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | We will cover all aspects of high-performance computing ranging from architecture through programming up to algorithms. We will start with a discussion of caches and cache coherence in practical computer systems. We will dive into parallel programming concepts such as memory models, locks, and lock-free. We will cover performance modeling and parallel design principles as well as basic parallel algorithms. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | This class is intended for the Computer Science Masters curriculum. Students must have basic knowledge in programming in C as well as computer science theory. Students should be familiar with the material covered in the ETH computer science first-year courses "Parallele Programmierung (parallel programming)" and "Algorithmen und Datenstrukturen (algorithm and data structures)" or equivalent courses. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-4640-00L | Network Security ![]() | W | 8 KP | 2V + 2U + 3A | A. Perrig, S. Frei, M. Legner, K. Paterson | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Some of today's most damaging attacks on computer systems involve exploitation of network infrastructure, either as the target of attack or as a vehicle to attack end systems. This course provides an in-depth study of network attack techniques and methods to defend against them. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | - Students are familiar with fundamental network-security concepts. - Students can assess current threats that Internet services and networked devices face, and can evaluate appropriate countermeasures. - Students can identify and assess vulnerabilities in software systems and network protocols. - Students have an in-depth understanding of a range of important state-of-the-art security technologies. - Students can implement network-security protocols based on cryptographic libraries. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The course will cover topics spanning four broad themes with a focus on the first two themes: (1) network defense mechanisms such as public-key infrastructures, TLS, VPNs, anonymous-communication systems, secure routing protocols, secure DNS systems, and network intrusion-detection systems; (2) network attacks such as hijacking, spoofing, denial-of-service (DoS), and distributed denial-of-service (DDoS) attacks; (3) analysis and inference topics such as traffic monitoring and network forensics; and (4) new technologies related to next-generation networks. In addition, several guest lectures will provide in-depth insights into specific current real-world network-security topics. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | This lecture is intended for students with an interest in securing Internet communication services and network devices. Students are assumed to have knowledge in networking as taught in a communication networks lecture like 252-0064-00L or 227-0120-00L. Basic knowledge of information security or applied cryptography as taught in 252-0211-00L or 263-4660-00L is beneficial, but an overview of the most important cryptographic primitives will be provided at the beginning of the course. The course will involve several graded course projects. Students are expected to be familiar with a general-purpose or network programming language such as C/C++, Go, Python, or Rust. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kompetenzen![]() |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-1411-00L | Security of Wireless Networks ![]() | W | 6 KP | 2V + 1U + 2A | S. Capkun, K. Kostiainen | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Core Elements: Wireless communication channel, Wireless network architectures and protocols, Attacks on wireless networks, Protection techniques. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | After this course, the students should be able to: describe and classify security goals and attacks in wireless networks; describe security architectures of the following wireless systems and networks: 802.11, GSM/UMTS, RFID, ad hoc/sensor networks; reason about security protocols for wireless network; implement mechanisms to secure 802.11 networks. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | Wireless channel basics. Wireless electronic warfare: jamming and target tracking. Basic security protocols in cellular, WLAN and multi-hop networks. Recent advances in security of multi-hop networks; RFID privacy challenges and solutions. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-2400-00L | Reliable and Trustworthy Artificial Intelligence ![]() | W | 6 KP | 2V + 2U + 1A | M. Vechev | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Creating reliable and explainable probabilistic models is a fundamental challenge to solving the artificial intelligence problem. This course covers some of the latest and most exciting advances that bring us closer to constructing such models. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The main objective of this course is to expose students to the latest and most exciting research in the area of explainable and interpretable artificial intelligence, a topic of fundamental and increasing importance. Upon completion of the course, the students should have mastered the underlying methods and be able to apply them to a variety of problems. To facilitate deeper understanding, an important part of the course will be a group hands-on programming project where students will build a system based on the learned material. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | This comprehensive course covers some of the latest and most important research advances (over the last 3 years) underlying the creation of safe, trustworthy, and reliable AI (more information here: https://www.sri.inf.ethz.ch/teaching/reliableai21): * Adversarial Attacks on Deep Learning (noise-based, geometry attacks, sound attacks, physical attacks, autonomous driving, out-of-distribution) * Defenses against attacks * Combining gradient-based optimization with logic for encoding background knowledge * Complete Certification of deep neural networks via automated reasoning (e.g., via numerical relaxations, mixed-integer solvers). * Probabilistic certification of deep neural networks * Training deep neural networks to be provably robust via automated reasoning * Fairness (different notions of fairness, certifiably fair representation learning) * Federated Learning (introduction, security considerations) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | While not a formal requirement, the course assumes familiarity with basics of machine learning (especially linear algebra, gradient descent, and neural networks as well as basic probability theory). These topics are usually covered in “Intro to ML” classes at most institutions (e.g., “Introduction to Machine Learning” at ETH). For solving assignments, some programming experience in Python is expected. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-4657-00L | Advanced Encryption Schemes | W | 5 KP | 2V + 1U + 1A | R. Gay | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Public-Key Encryption has had a significant impact by enabling remote parties to communicate securely via an insecure channel. Latest schemes go further by providing a fine-grained access to the encrypted data. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The student is comfortable with formal security definitions and proof techniques used to analyze the security of the latest encryption schemes with advanced features. This prepares the student to start reading research papers on the field. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | We will start by presenting the notion of Public-Key Encryption with its various security guarantees and some constructions. Then we will look into encryption schemes with fine-grained access control to the encrypted data, such as identity-based encryption or attribute-based encryption and present different methodology to prove their security. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | Links to relevant research papers will be given in the course materials. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | It is recommended for students to have prior exposure to cryptography, e.g.the D-INFK course "Digital Signatures" or "Applied Cryptography". | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-4665-00L | Zero-Knowledge Proofs ![]() Number of participants limited to 50. | W | 5 KP | 2V + 1U + 1A | J. Bootle | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | This course is a detailed introduction to zero-knowledge proof protocols. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | To understand various methods of constructing zero-knowledge proof protocols, and be able to analyse their security properties. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The course will discuss interactive zero-knowledge proofs based on various commitment schemes, and explore connections to other areas like secure multi-party computation. The course may also describe some more advanced constructions of non-interactive proofs. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | The course notes will be written in English. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Students should have taken a first course in Cryptography (as taught in the Information Security course at Bachelor’s level). Confidence with algebra and probability is desirable. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
227-0579-00L | Hardware Security | W | 7 KP | 2V + 2U + 2A | K. Razavi | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | This course covers the security of commodity computer hardware (e.g., CPU, DRAM, etc.) with a special focus on cutting-edge hands-on research. The aim of the course is familiarizing the students with hardware security and more specifically microarchitectural and circuit-level attacks and defenses through lectures, reviewing and discussing papers, and executing some of these advanced attacks. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | By the end of the course, the students will be familiar with the state of the art in commodity computer hardware attacks and defenses. More specifically, the students will learn about: - security problems of commodity hardware that we use everyday and how you can defend against them. - relevant computer architecture and operating system aspects of these issues. - hands-on techniques for performing hardware attacks. - writing critical reviews and constructive discussions with peers on this topic. This is the course where you get credit points by building some of the most advanced exploits on the planet! The luckiest team will collect a Best Demo Award at the end of the course. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | Slides, relevant literature and manuals will be made available during the course. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Knowledge of systems programming and computer architecture is a plus. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-0417-00L | Randomized Algorithms and Probabilistic Methods | W | 10 KP | 3V + 2U + 4A | A. Steger | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Las Vegas & Monte Carlo algorithms; inequalities of Markov, Chebyshev, Chernoff; negative correlation; Markov chains: convergence, rapidly mixing; generating functions; Examples include: min cut, median, balls and bins, routing in hypercubes, 3SAT, card shuffling, random walks | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | After this course students will know fundamental techniques from probabilistic combinatorics for designing randomized algorithms and will be able to apply them to solve typical problems in these areas. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | Randomized Algorithms are algorithms that "flip coins" to take certain decisions. This concept extends the classical model of deterministic algorithms and has become very popular and useful within the last twenty years. In many cases, randomized algorithms are faster, simpler or just more elegant than deterministic ones. In the course, we will discuss basic principles and techniques and derive from them a number of randomized methods for problems in different areas. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | Yes. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | - Randomized Algorithms, Rajeev Motwani and Prabhakar Raghavan, Cambridge University Press (1995) - Probability and Computing, Michael Mitzenmacher and Eli Upfal, Cambridge University Press (2005) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-0535-00L | Advanced Machine Learning ![]() | W | 10 KP | 3V + 2U + 4A | J. M. Buhmann, C. Cotrini Jimenez | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Machine learning algorithms provide analytical methods to search data sets for characteristic patterns. Typical tasks include the classification of data, function fitting and clustering, with applications in image and speech analysis, bioinformatics and exploratory data analysis. This course is accompanied by practical machine learning projects. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | Students will be familiarized with advanced concepts and algorithms for supervised and unsupervised learning; reinforce the statistics knowledge which is indispensible to solve modeling problems under uncertainty. Key concepts are the generalization ability of algorithms and systematic approaches to modeling and regularization. Machine learning projects will provide an opportunity to test the machine learning algorithms on real world data. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The theory of fundamental machine learning concepts is presented in the lecture, and illustrated with relevant applications. Students can deepen their understanding by solving both pen-and-paper and programming exercises, where they implement and apply famous algorithms to real-world data. Topics covered in the lecture include: Fundamentals: What is data? Bayesian Learning Computational learning theory Supervised learning: Ensembles: Bagging and Boosting Max Margin methods Neural networks Unsupservised learning: Dimensionality reduction techniques Clustering Mixture Models Non-parametric density estimation Learning Dynamical Systems | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | No lecture notes, but slides will be made available on the course webpage. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | C. Bishop. Pattern Recognition and Machine Learning. Springer 2007. R. Duda, P. Hart, and D. Stork. Pattern Classification. John Wiley & Sons, second edition, 2001. T. Hastie, R. Tibshirani, and J. Friedman. The Elements of Statistical Learning: Data Mining, Inference and Prediction. Springer, 2001. L. Wasserman. All of Statistics: A Concise Course in Statistical Inference. Springer, 2004. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | The course requires solid basic knowledge in analysis, statistics and numerical methods for CSE as well as practical programming experience for solving assignments. Students should have followed at least "Introduction to Machine Learning" or an equivalent course offered by another institution. PhD students are required to obtain a passing grade in the course (4.0 or higher based on project and exam) to gain credit points. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-1425-00L | Geometry: Combinatorics and Algorithms ![]() | W | 8 KP | 3V + 2U + 2A | B. Gärtner, E. Welzl, M. Hoffmann, M. Wettstein | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Geometric structures are useful in many areas, and there is a need to understand their structural properties, and to work with them algorithmically. The lecture addresses theoretical foundations concerning geometric structures. Central objects of interest are triangulations. We study combinatorial (Does a certain object exist?) and algorithmic questions (Can we find a certain object efficiently?) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The goal is to make students familiar with fundamental concepts, techniques and results in combinatorial and computational geometry, so as to enable them to model, analyze, and solve theoretical and practical problems in the area and in various application domains. In particular, we want to prepare students for conducting independent research, for instance, within the scope of a thesis project. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | Planar and geometric graphs, embeddings and their representation (Whitney's Theorem, canonical orderings, DCEL), polygon triangulations and the art gallery theorem, convexity in R^d, planar convex hull algorithms (Jarvis Wrap, Graham Scan, Chan's Algorithm), point set triangulations, Delaunay triangulations (Lawson flips, lifting map, randomized incremental construction), Voronoi diagrams, the Crossing Lemma and incidence bounds, line arrangements (duality, Zone Theorem, ham-sandwich cuts), 3-SUM hardness, counting planar triangulations. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | yes | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | Mark de Berg, Marc van Kreveld, Mark Overmars, Otfried Cheong, Computational Geometry: Algorithms and Applications, Springer, 3rd ed., 2008. Satyan Devadoss, Joseph O'Rourke, Discrete and Computational Geometry, Princeton University Press, 2011. Stefan Felsner, Geometric Graphs and Arrangements: Some Chapters from Combinatorial Geometry, Teubner, 2004. Jiri Matousek, Lectures on Discrete Geometry, Springer, 2002. Takao Nishizeki, Md. Saidur Rahman, Planar Graph Drawing, World Scientific, 2004. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Prerequisites: The course assumes basic knowledge of discrete mathematics and algorithms, as supplied in the first semesters of Bachelor Studies at ETH. Outlook: In the following spring semester there is a seminar "Geometry: Combinatorics and Algorithms" that builds on this course. There are ample possibilities for Semester-, Bachelor- and Master Thesis projects in the area. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-4500-00L | Advanced Algorithms ![]() Takes place for the last time. | W | 9 KP | 3V + 2U + 3A | M. Ghaffari, G. Zuzic | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | This is a graduate-level course on algorithm design (and analysis). It covers a range of topics and techniques in approximation algorithms, sketching and streaming algorithms, and online algorithms. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | This course familiarizes the students with some of the main tools and techniques in modern subareas of algorithm design. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The lectures will cover a range of topics, tentatively including the following: graph sparsifications while preserving cuts or distances, various approximation algorithms techniques and concepts, metric embeddings and probabilistic tree embeddings, online algorithms, multiplicative weight updates, streaming algorithms, sketching algorithms, and derandomization. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | https://people.inf.ethz.ch/gmohsen/AA21/ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | This course is designed for masters and doctoral students and it especially targets those interested in theoretical computer science, but it should also be accessible to last-year bachelor students. Sufficient comfort with both (A) Algorithm Design & Analysis and (B) Probability & Concentrations. E.g., having passed the course Algorithms, Probability, and Computing (APC) is highly recommended, though not required formally. If you are not sure whether you're ready for this class or not, please consult the instructor. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-1407-00L | Algorithmic Game Theory ![]() | W | 7 KP | 3V + 2U + 1A | P. Penna | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Game theory provides a formal model to study the behavior and interaction of self-interested users and programs in large-scale distributed computer systems without central control. The course discusses algorithmic aspects of game theory. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | Learning the basic concepts of game theory and mechanism design, acquiring the computational paradigm of self-interested agents, and using these concepts in the computational and algorithmic setting. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The Internet is a typical example of a large-scale distributed computer system without central control, with users that are typically only interested in their own good. For instance, they are interested in getting high bandwidth for themselves, but don't care about others, and the same is true for computational load or download rates. Game theory provides a mathematical model for the behavior and interaction of such selfish users and programs. Classic game theory dates back to the 1930s and typically does not consider algorithmic aspects at all. Only a few years back, algorithms and game theory have been considered together, in an attempt to reconcile selfish behavior of independent agents with the common good. This course discusses algorithmic aspects of game-theoretic models, with a focus on recent algorithmic and mathematical developments. Rather than giving an overview of such developments, the course aims to study selected important topics in depth. Outline: - Introduction to classic game-theoretic concepts. - Existence of stable solutions (equilibria), algorithms for computing equilibria, computational complexity. - Speed of convergence of natural game playing dynamics such as best-response dynamics or regret minimization. - Techniques for bounding the quality-loss due to selfish behavior versus optimal outcomes under central control (a.k.a. the 'Price of Anarchy'). - Design and analysis of mechanisms that induce truthful behavior or near-optimal outcomes at equilibrium. - Selected current research topics, such as Google's Sponsored Search Auction, the U.S. FCC Spectrum Auction, Kidney Exchange. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | Lecture notes will be usually posted on the website shortly after each lecture. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | "Algorithmic Game Theory", edited by N. Nisan, T. Roughgarden, E. Tardos, and V. Vazirani, Cambridge University Press, 2008; "Game Theory and Strategy", Philip D. Straffin, The Mathematical Association of America, 5th printing, 2004 Several copies of both books are available in the Computer Science library. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Audience: Although this is a Computer Science course, we encourage the participation from all students who are interested in this topic. Requirements: You should enjoy precise mathematical reasoning. You need to have passed a course on algorithms and complexity. No knowledge of game theory is required. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
227-0417-00L | Information Theory I | W | 6 KP | 4G | A. Lapidoth | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | This course covers the basic concepts of information theory and of communication theory. Topics covered include the entropy rate of a source, mutual information, typical sequences, the asymptotic equi-partition property, Huffman coding, channel capacity, the channel coding theorem, the source-channel separation theorem, and feedback capacity. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The fundamentals of Information Theory including Shannon's source coding and channel coding theorems | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The entropy rate of a source, Typical sequences, the asymptotic equi-partition property, the source coding theorem, Huffman coding, Arithmetic coding, channel capacity, the channel coding theorem, the source-channel separation theorem, feedback capacity | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | T.M. Cover and J. Thomas, Elements of Information Theory (second edition) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
401-3055-64L | Algebraic Methods in Combinatorics ![]() | W | 6 KP | 2V + 1U | B. Sudakov | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Combinatorics is a fundamental mathematical discipline as well as an essential component of many mathematical areas, and its study has experienced an impressive growth in recent years. This course provides a gentle introduction to Algebraic methods, illustrated by examples and focusing on basic ideas and connections to other areas. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The students will get an overview of various algebraic methods for solving combinatorial problems. We expect them to understand the proof techniques and to use them autonomously on related problems. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | Combinatorics is a fundamental mathematical discipline as well as an essential component of many mathematical areas, and its study has experienced an impressive growth in recent years. While in the past many of the basic combinatorial results were obtained mainly by ingenuity and detailed reasoning, the modern theory has grown out of this early stage and often relies on deep, well-developed tools. One of the main general techniques that played a crucial role in the development of Combinatorics was the application of algebraic methods. The most fruitful such tool is the dimension argument. Roughly speaking, the method can be described as follows. In order to bound the cardinality of of a discrete structure A one maps its elements to vectors in a linear space, and shows that the set A is mapped to linearly independent vectors. It then follows that the cardinality of A is bounded by the dimension of the corresponding linear space. This simple idea is surprisingly powerful and has many famous applications. This course provides a gentle introduction to Algebraic methods, illustrated by examples and focusing on basic ideas and connections to other areas. The topics covered in the class will include (but are not limited to): Basic dimension arguments, Spaces of polynomials and tensor product methods, Eigenvalues of graphs and their application, the Combinatorial Nullstellensatz and the Chevalley-Warning theorem. Applications such as: Solution of Kakeya problem in finite fields, counterexample to Borsuk's conjecture, chromatic number of the unit distance graph of Euclidean space, explicit constructions of Ramsey graphs and many others. The course website can be found at https://moodle-app2.let.ethz.ch/course/view.php?id=15757 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | Lectures will be on the blackboard only, but there will be a set of typeset lecture notes which follow the class closely. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Students are expected to have a mathematical background and should be able to write rigorous proofs. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
401-3901-00L | Linear & Combinatorial Optimization ![]() | W | 11 KP | 4V + 2U | R. Zenklusen | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Mathematical treatment of optimization techniques for linear and combinatorial optimization problems. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The goal of this course is to get a thorough understanding of various classical mathematical optimization techniques for linear and combinatorial optimization problems, with an emphasis on polyhedral approaches. In particular, we want students to develop a good understanding of some important problem classes in the field, of structural mathematical results linked to these problems, and of solution approaches based on such structural insights. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | Key topics include: - Linear programming and polyhedra; - Flows and cuts; - Combinatorial optimization problems and polyhedral techniques; - Equivalence between optimization and separation. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | - Bernhard Korte, Jens Vygen: Combinatorial Optimization. 6th edition, Springer, 2018. - Alexander Schrijver: Combinatorial Optimization: Polyhedra and Efficiency. Springer, 2003. This work has 3 volumes. - Ravindra K. Ahuja, Thomas L. Magnanti, James B. Orlin. Network Flows: Theory, Algorithms, and Applications. Prentice Hall, 1993. - Alexander Schrijver: Theory of Linear and Integer Programming. John Wiley, 1986. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Solid background in linear algebra. Former course title: Mathematical Optimization. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kompetenzen![]() |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-0543-01L | Computer Graphics ![]() Findet dieses Semester nicht statt. | W | 8 KP | 3V + 2U + 2A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | This course covers some of the fundamental concepts of computer graphics generation of photorealistic images from digital representations of 3D scenes and image-based methods for recovering digital scene representations from captured images. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | At the end of the course the students will be able to build a rendering system. The students will study the basic principles of rendering and image synthesis. In addition, the course is intended to stimulate the students' curiosity to explore the field of computer graphics in subsequent courses or on their own. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | This course covers fundamental concepts of modern computer graphics. Students will learn about 3D object representations and the details of how to generate photorealistic images from digital representations of 3D scenes. Starting with an introduction to 3D shape modeling, geometry representation and texture mapping, we will move on to the physics of light transport, acceleration structures, appearance modeling and Monte Carlo integration. We will apply these principles for computing light transport of direct and global illumination due to surfaces and participating media. We will end with an overview of modern image-based capture and image synthesis methods, covering topics such as geometry and material capture, light-fields and depth-image based rendering. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | no | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | Books: High Dynamic Range Imaging: Acquisition, Display, and Image-Based Lighting Multiple view geometry in computer vision Physically Based Rendering: From Theory to Implementation | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Prerequisites: Fundamentals of calculus and linear algebra, basic concepts of algorithms and data structures, programming skills in C++, Visual Computing course recommended. The programming assignments will be in C++. This will not be taught in the class. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-5902-00L | Computer Vision ![]() | W | 8 KP | 3V + 1U + 3A | M. Pollefeys, S. Tang, F. Yu | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | The goal of this course is to provide students with a good understanding of computer vision and image analysis techniques. The main concepts and techniques will be studied in depth and practical algorithms and approaches will be discussed and explored through the exercises. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The objectives of this course are: 1. To introduce the fundamental problems of computer vision. 2. To introduce the main concepts and techniques used to solve those. 3. To enable participants to implement solutions for reasonably complex problems. 4. To enable participants to make sense of the computer vision literature. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | Camera models and calibration, invariant features, Multiple-view geometry, Model fitting, Stereo Matching, Segmentation, 2D Shape matching, Shape from Silhouettes, Optical flow, Structure from motion, Tracking, Object recognition, Object category recognition | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | It is recommended that students have taken the Visual Computing lecture or a similar course introducing basic image processing concepts before taking this course. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-0546-00L | Physically-Based Simulation in Computer Graphics ![]() | W | 5 KP | 2V + 1U + 1A | V. da Costa de Azevedo, B. Solenthaler, B. Thomaszewski | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Die Vorlesung gibt eine Einführung in das Gebiet der physikalisch basierten Animation in der Computer Graphik und einen Überblick über fundamentale Methoden und Algorithmen. In den praktischen Übungen werden drei Aufgabenblätter in kleinen Gruppen bearbeitet. Zudem sollen in einem Programmierprojekt die Vorlesungsinhalte in einem 3D Spiel oder einer vergleichbaren Anwendung umgesetzt werden. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | Die Vorlesung gibt eine Einführung in das Gebiet der physikalisch basierten Animation in der Computer Graphik und einen Überblick über fundamentale Methoden und Algorithmen. In den praktischen Übungen werden drei Aufgabenblätter in kleinen Gruppen bearbeitet. Zudem sollen in einem Programmierprojekt die Vorlesungsinhalte in einem 3D Spiel oder einer vergleichbaren Anwendung umgesetzt werden. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | In der Vorlesung werden Themen aus dem Gebiet der physikalisch-basierten Modellierung wie Partikel-Systeme, Feder-Masse Modelle, die Methoden der Finiten Differenzen und der Finiten Elemente behandelt. Diese Methoden und Techniken werden verwendet um deformierbare Objekte oder Flüssigkeiten zu simulieren mit Anwendungen in Animationsfilmen, 3D Computerspielen oder medizinischen Systemen. Es werden auch Themen wie Starrkörperdynamik, Kollisionsdetektion und Charakteranimation behandelt. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Basiskenntnisse in Analysis und Physik, Algorithmen und Datenstrukturen und der Programmierung in C++. Kenntnisse auf den Gebieten Numerische Mathematik sowie Gewoehnliche und Partielle Differentialgleichungen sind von Vorteil, werden aber nicht vorausgesetzt. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-5905-00L | Mixed Reality ![]() | W | 5 KP | 3G + 1A | I. Armeni, F. Bogo, M. Pollefeys | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | The goal of this course is an introduction and hands-on experience on latest mixed reality technology at the cross-section of 3D computer graphics and vision, human machine interaction, as well as gaming technology. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | After attending this course, students will: 1. Understand the foundations of 3D graphics, Computer Vision, and Human-Machine Interaction 2. Have a clear understanding on how to build mixed reality apps 3. Have a good overview of state-of-the-art Mixed Reality 4. Be able to critically analyze and asses current research in this area. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The course introduces latest mixed reality technology and provides introductory elements for a number of related fields including: Introduction to Mixed Reality / Augmented Reality / Virtual Reality Introduction to 3D Computer Graphics, 3D Computer Vision. This will take place 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 mixed reality topics, where small groups of students will work on a particular project with the goal to design, develop and deploy a mixed reality application. The project topics are flexible and can reach from proof-of-concept vision/graphics/HMI research, to apps that support teaching with interactive augmented reality, or game development. The default platform will be Microsoft HoloLens in combination with C# and Unity3D - other platforms are also possible to use, such as tablets and phones. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Prerequisites include: - Good programming skills (C# / C++ / Java etc.) - Computer graphics/vision experience: Students should have taken, at a minimum, Visual Computing. Higher level courses are recommended, such as Introduction to Computer Graphics, 3D Vision, Computer Vision. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-3811-00L | Case Studies from Practice Seminar ![]() 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. | W | 4 KP | 2S | M. Brandis | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Participants will learn how to analyze and solve IT problems in practice in a systematic way, present findings to decision bodies, and defend their conclusions. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | Participants understand the different viewpoints for IT-decisions in practice, including technical and business aspects, can effectively analyze IT questions from the different viewpoints and facilitate decision making. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | Participants learn how to systematically approach an IT problem in practice. They work in groups of three to solve a case from a participating company in depth, studying provided materials, searching for additional information, analyzing all in depth, interviewing members from the company or discussing findings with them to obtain further insights, and presenting and defending their conclusion to company representatives, the lecturer, and all other participants of the seminar. Participants also learn how to challenge presentations from other teams, and obtain an overview of learnings from the cases other teams worked on. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | Methodologies to analyze the cases and create final presentations. Short overview of each case. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Successful completion of Lecture "Case Studies from Practice". | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-4601-00L | Current Topics in Information Security ![]() ![]() 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. | W | 2 KP | 2S | S. Capkun, K. Paterson, A. Perrig, S. Shinde | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | The seminar covers various topics in information security: security protocols (models, specification & verification), trust management, access control, non-interference, side-channel attacks, identity-based cryptography, host-based attack detection, anomaly detection in backbone networks, key-management for sensor networks. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The main goals of the seminar are the independent study of scientific literature and assessment of its contributions as well as learning and practicing presentation techniques. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The seminar covers various topics in information security, including network security, cryptography and security protocols. The participants are expected to read a scientific paper and present it in a 35-40 min talk. At the beginning of the semester a short introduction to presentation techniques will be given. Selected Topics - security protocols: models, specification & verification - trust management, access control and non-interference - side-channel attacks - identity-based cryptography - host-based attack detection - anomaly detection in backbone networks - key-management for sensor networks | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | The reading list will be published on the course web site. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-5051-00L | Advanced Topics in Machine Learning ![]() ![]() Number of participants limited to 40. The deadline for deregistering expires at the end of the fourth week of the semester. Students who are still registered after that date, but do not attend the seminar, will officially fail the seminar. | W | 2 KP | 2S | J. M. Buhmann, R. Cotterell, J. Vogt, F. Yang | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | In this seminar, recent papers of the pattern recognition and machine learning literature are presented and discussed. Possible topics cover statistical models in computer vision, graphical models and machine learning. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The seminar "Advanced Topics in Machine Learning" familiarizes students with recent developments in pattern recognition and machine learning. Original articles have to be presented and critically reviewed. The students will learn how to structure a scientific presentation in English which covers the key ideas of a scientific paper. An important goal of the seminar presentation is to summarize the essential ideas of the paper in sufficient depth while omitting details which are not essential for the understanding of the work. The presentation style will play an important role and should reach the level of professional scientific presentations. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The seminar will cover a number of recent papers which have emerged as important contributions to the pattern recognition and machine learning literature. The topics will vary from year to year but they are centered on methodological issues in machine learning like new learning algorithms, ensemble methods or new statistical models for machine learning applications. Frequently, papers are selected from computer vision or bioinformatics - two fields, which relies more and more on machine learning methodology and statistical models. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | The papers will be presented in the first session of the seminar. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-5701-00L | Advanced Topics in Computer Graphics and Vision ![]() ![]() Number of participants limited to 24. The deadline for deregistering expires at the end of the third week of the semester. Students who are still registered after that date, but do not attend the seminar, will officially fail the seminar. | W | 2 KP | 2S | M. Pollefeys, O. Sorkine Hornung, S. Tang | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | This seminar covers advanced topics in computer graphics, such as modeling, rendering, animation, real-time graphics, physical simulation, and computational photography. Each time the course is offered, a collection of research papers is selected and each student presents one paper to the class and leads a discussion about the paper and related topics. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The goal is to get an in-depth understanding of actual problems and research topics in the field of computer graphics as well as improve presentations and critical analysis skills. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | This seminar covers advanced topics in computer graphics, including both seminal research papers as well as the latest research results. Each time the course is offered, a collection of research papers are selected covering topics such as modeling, rendering, animation, real-time graphics, physical simulation, and computational photography. Each student presents one paper to the class and leads a discussion about the paper and related topics. All students read the papers and participate in the discussion. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | no script | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | Individual research papers are selected each term. See http://graphics.ethz.ch/ for the current list. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-2100-00L | Research Topics in Software Engineering ![]() ![]() 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. | W | 2 KP | 2S | P. Müller, M. Püschel | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | This seminar is an opportunity to become familiar with current research in software engineering and more generally with the methods and challenges of scientific research. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | Each student will be asked to study some papers from the recent software engineering literature and review them. This is an exercise in critical review and analysis. Active participation is required (a presentation of a paper as well as participation in discussions). | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The aim of this seminar is to introduce students to recent research results in the area of programming languages and software engineering. To accomplish that, students will study and present research papers in the area as well as participate in paper discussions. The papers will span topics in both theory and practice, including papers on program verification, program analysis, testing, programming language design, and development tools. A particular focus will be on domain-specific languages. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | The publications to be presented will be announced on the seminar home page at least one week before the first session. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Organizational note: the seminar will meet only when there is a scheduled presentation. Please consult the seminar's home page for information. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-3504-00L | Hardware Acceleration for Data Processing ![]() ![]() 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. | W | 2 KP | 2S | G. Alonso | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | The seminar will cover topics related to data processing using new hardware in general and hardware accelerators (GPU, FPGA, specialized processors) in particular. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The seminar will cover topics related to data processing using new hardware in general and hardware accelerators (GPU, FPGA, specialized processors) in particular. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The general application areas are big data and machine learning. The systems covered will include systems from computer architecture, high performance computing, data appliances, and data centers. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Students taking this seminar should have the necessary background in systems and low level programming. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-3713-00L | Advanced Topics in Human-Centric Computer Vision ![]() ![]() Numbers of participants limited to 20. The deadline for deregistering expires at the end of the third week of the semester. Students who are still registered after that date, but do not attend the seminar, will officially fail the seminar. | W | 2 KP | 2S | O. Hilliges | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | In this seminar we will discuss state-of-the-art literature on human-centric computer vision topics including but not limited to human pose estimation, hand and eye-gaze estimation as well as generative modeliing of detailed human activities. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The learning objective is to analyze selected research papers published at top computer vision and machine learning venues. A key focus will be placed on identifying and discussing open problems and novel solutions in this space. The seminar will achieve this via several components: reading papers, technical presentations, writing analysis and critique summaries, class discussions, and exploration of potential research topics. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The goal of the seminar is not only to familiarize students with exciting new research topics, but also to teach basic scientific writing and oral presentation skills. The seminar will have a different structure from regular seminars to encourage more discussion and a deeper learning experience. We will treat papers as case studies and discuss them in-depth in the seminar. Once per semester, every student will have to take one of the following roles: Presenter: Give a presentation about the paper that you read in depth. Reviewer: Perform a critical review of the paper. All other students: read the paper and submit questions they have about the paper before the presentation. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Participation will be limited subject to available topics. Furthermore, students will have to submit a motivation paragraph. Participants will be selected based on this paragraph. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kompetenzen![]() |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-4410-00L | Seminar on Advanced Graph Algorithms and Optimization ![]() ![]() Number of participants limited to 6! 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. | W | 2 KP | 2S | R. Kyng | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | This seminar aims to familiarize students with current research topics in fast graph algorithms and optimization. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | Read papers on cutting edge research topics; learn how to give a scientific talk. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | We will study recent papers that made significant contributions in the areas in fast graph algorithms and optimization. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | As prerequisite we require that you passed the course "Advanced Graph Algorithms and Optimization". In exceptional cases, students who passed one of the courses "Randomized Algorithms and Probabilistic Methods", "Optimization for Data Science", or "Advanced Algorithms" may also participate, at the discretion of the lecturer. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-5156-00L | Beyond iid Learning: Causality, Dynamics, and Interactions ![]() ![]() Number of participants limited to 60. 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. | W | 2 KP | 2S | M. Mühlebach, A. Krause, B. Schölkopf | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Many machine learning problems go beyond supervised learning on independent data points and require an understanding of the underlying causal mechanisms, the interactions between the learning algorithms and their environment, and adaptation to temporal changes. The course highlights some of these challenges and relates them to state-of-the-art research. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The goal of this seminar is to gain experience with machine learning research and foster interdisciplinary thinking. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The seminar will be divided into two parts. The first part summarizes the basics of statistical learning theory, game theory, causal inference, and dynamical systems in four lectures. This sets the stage for the second part, where distinguished speakers will present selected aspects in greater detail and link them to their current research. Keywords: Causal inference, adaptive decision-making, reinforcement learning, game theory, meta learning, interactions with humans. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | Further information will be published on the course website: https://beyond-iid-learning.xyz/ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | BSc in computer science or related field (engineering, physics, mathematics). Passed at least one learning course, such as ``Introduction to Machine Learning" or ``Probabilistic Artificial Intelligence". | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-0811-00L | Applied Security Laboratory ![]() ![]() | W | 8 KP | 7P | C. Sprenger | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Hands-on course on applied aspects of information security. Applied information security, operating system security, OS hardening, computer forensics, web application security, project work, design, implementation, and configuration of security mechanisms, risk analysis, system review. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The Applied Security Laboratory addresses four major topics: operating system security (hardening, vulnerability scanning, access control, logging), application security with an emphasis on web applications (web server setup, common web exploits, authentication, session handling, code security), computer forensics, and risk analysis and risk management. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | This course emphasizes applied aspects of Information Security. The students will study a number of topics in a hands-on fashion and carry out experiments in order to better understand the need for secure implementation and configuration of IT systems and to assess the effectivity and impact of security measures. This part is based on a book and virtual machines that include example applications, questions, and answers. The students will also complete an independent project: based on a set of functional requirements, they will design and implement a prototypical IT system. In addition, they will conduct a thorough security analysis and devise appropriate security measures for their systems. Finally, they will carry out a technical and conceptual review of another system. All project work will be performed in teams and must be properly documented. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | The course is based on the book "Applied Information Security - A Hands-on Approach". More information: http://www.infsec.ethz.ch/appliedlabbook | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | Recommended reading includes: * Pfleeger, Pfleeger: Security in Computing, Third Edition, Prentice Hall, available online from within ETH * Garfinkel, Schwartz, Spafford: Practical Unix & Internet Security, O'Reilly & Associates. * Various: OWASP Guide to Building Secure Web Applications, available online * Huseby: Innocent Code -- A Security Wake-Up Call for Web Programmers, John Wiley & Sons. * Scambray, Schema: Hacking Exposed Web Applications, McGraw-Hill. * O'Reilly, Loukides: Unix Power Tools, O'Reilly & Associates. * Frisch: Essential System Administration, O'Reilly & Associates. * NIST: Risk Management Guide for Information Technology Systems, available online as PDF * BSI: IT-Grundschutzhandbuch, available online | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | * The lab allows flexible working since there are only few mandatory meetings during the semester. * The lab covers a variety of different techniques. Thus, participating students should have a solid foundation in the following areas: information security, operating system administration (especially Unix/Linux), and networking. Students are also expected to have a basic understanding of HTML, PHP, JavaScript, and MySQL because several examples are implemented in these languages. * Students must be prepared to spend more than three hours per week to complete the lab assignments and the project. This applies particularly to students who do not meet the recommended requirements given above. Successful participants of the course receive 8 credits as compensation for their effort. * All participants must sign the lab's charter and usage policy during the introduction lecture. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-0817-00L | Distributed Systems Laboratory | W | 10 KP | 9P | G. Alonso, T. Hoefler, A. Klimovic, T. Roscoe, R. Wattenhofer, C. Zhang | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | This course involves the participation in a substantial development and/or evaluation project involving distributed systems technology. There are projects available in a wide range of areas: from web services to ubiquitous computing including wireless networks, ad-hoc networks, RFID, and distributed applications on smartphones. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | Gain hands-on-experience with real products and the latest technology in distributed systems. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | This course involves the participation in a substantial development and/or evaluation project involving distributed systems technology. There are projects available in a wide range of areas: from web services to ubiquitous computing including as well wireless networks, ad-hoc networks, and distributed application on smartphones. The goal of the project is for the students to gain hands-on-experience with real products and the latest technology in distributed systems. There is no lecture associated to the course. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-0650-00L | Praktische Arbeit ![]() | W | 8 KP | 17A | Betreuer/innen | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Practical work shall foster the student's ability to solve technological scientific problems by applying acquired knowledge and social competencies. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | see above | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | Practical work refers either to a semester project or a lab course, which is conducted under the supervision of a professor of the department of computer science. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-0546-00L | Physically-Based Simulation in Computer Graphics ![]() | W | 5 KP | 2V + 1U + 1A | V. da Costa de Azevedo, B. Solenthaler, B. Thomaszewski | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Die Vorlesung gibt eine Einführung in das Gebiet der physikalisch basierten Animation in der Computer Graphik und einen Überblick über fundamentale Methoden und Algorithmen. In den praktischen Übungen werden drei Aufgabenblätter in kleinen Gruppen bearbeitet. Zudem sollen in einem Programmierprojekt die Vorlesungsinhalte in einem 3D Spiel oder einer vergleichbaren Anwendung umgesetzt werden. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | Die Vorlesung gibt eine Einführung in das Gebiet der physikalisch basierten Animation in der Computer Graphik und einen Überblick über fundamentale Methoden und Algorithmen. In den praktischen Übungen werden drei Aufgabenblätter in kleinen Gruppen bearbeitet. Zudem sollen in einem Programmierprojekt die Vorlesungsinhalte in einem 3D Spiel oder einer vergleichbaren Anwendung umgesetzt werden. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | In der Vorlesung werden Themen aus dem Gebiet der physikalisch-basierten Modellierung wie Partikel-Systeme, Feder-Masse Modelle, die Methoden der Finiten Differenzen und der Finiten Elemente behandelt. Diese Methoden und Techniken werden verwendet um deformierbare Objekte oder Flüssigkeiten zu simulieren mit Anwendungen in Animationsfilmen, 3D Computerspielen oder medizinischen Systemen. Es werden auch Themen wie Starrkörperdynamik, Kollisionsdetektion und Charakteranimation behandelt. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Basiskenntnisse in Analysis und Physik, Algorithmen und Datenstrukturen und der Programmierung in C++. Kenntnisse auf den Gebieten Numerische Mathematik sowie Gewoehnliche und Partielle Differentialgleichungen sind von Vorteil, werden aber nicht vorausgesetzt. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-0543-01L | Computer Graphics ![]() Findet dieses Semester nicht statt. | W | 8 KP | 3V + 2U + 2A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | This course covers some of the fundamental concepts of computer graphics generation of photorealistic images from digital representations of 3D scenes and image-based methods for recovering digital scene representations from captured images. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | At the end of the course the students will be able to build a rendering system. The students will study the basic principles of rendering and image synthesis. In addition, the course is intended to stimulate the students' curiosity to explore the field of computer graphics in subsequent courses or on their own. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | This course covers fundamental concepts of modern computer graphics. Students will learn about 3D object representations and the details of how to generate photorealistic images from digital representations of 3D scenes. Starting with an introduction to 3D shape modeling, geometry representation and texture mapping, we will move on to the physics of light transport, acceleration structures, appearance modeling and Monte Carlo integration. We will apply these principles for computing light transport of direct and global illumination due to surfaces and participating media. We will end with an overview of modern image-based capture and image synthesis methods, covering topics such as geometry and material capture, light-fields and depth-image based rendering. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | no | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | Books: High Dynamic Range Imaging: Acquisition, Display, and Image-Based Lighting Multiple view geometry in computer vision Physically Based Rendering: From Theory to Implementation | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Prerequisites: Fundamentals of calculus and linear algebra, basic concepts of algorithms and data structures, programming skills in C++, Visual Computing course recommended. The programming assignments will be in C++. This will not be taught in the class. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-5905-00L | Mixed Reality ![]() | W | 5 KP | 3G + 1A | I. Armeni, F. Bogo, M. Pollefeys | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | The goal of this course is an introduction and hands-on experience on latest mixed reality technology at the cross-section of 3D computer graphics and vision, human machine interaction, as well as gaming technology. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | After attending this course, students will: 1. Understand the foundations of 3D graphics, Computer Vision, and Human-Machine Interaction 2. Have a clear understanding on how to build mixed reality apps 3. Have a good overview of state-of-the-art Mixed Reality 4. Be able to critically analyze and asses current research in this area. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The course introduces latest mixed reality technology and provides introductory elements for a number of related fields including: Introduction to Mixed Reality / Augmented Reality / Virtual Reality Introduction to 3D Computer Graphics, 3D Computer Vision. This will take place 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 mixed reality topics, where small groups of students will work on a particular project with the goal to design, develop and deploy a mixed reality application. The project topics are flexible and can reach from proof-of-concept vision/graphics/HMI research, to apps that support teaching with interactive augmented reality, or game development. The default platform will be Microsoft HoloLens in combination with C# and Unity3D - other platforms are also possible to use, such as tablets and phones. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Prerequisites include: - Good programming skills (C# / C++ / Java etc.) - Computer graphics/vision experience: Students should have taken, at a minimum, Visual Computing. Higher level courses are recommended, such as Introduction to Computer Graphics, 3D Vision, Computer Vision. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-3210-00L | Deep Learning ![]() ![]() Number of participants limited to 320. | W | 8 KP | 3V + 2U + 2A | F. Perez Cruz, A. Lucchi | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Deep learning is an area within machine learning that deals with algorithms and models that automatically induce multi-level data representations. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | In recent years, deep learning and deep networks have significantly improved the state-of-the-art in many application domains such as computer vision, speech recognition, and natural language processing. This class will cover the mathematical foundations of deep learning and provide insights into model design, training, and validation. The main objective is a profound understanding of why these methods work and how. There will also be a rich set of hands-on tasks and practical projects to familiarize students with this emerging technology. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | This is an advanced level course that requires some basic background in machine learning. More importantly, students are expected to have a very solid mathematical foundation, including linear algebra, multivariate calculus, and probability. The course will make heavy use of mathematics and is not (!) meant to be an extended tutorial of how to train deep networks with tools like Torch or Tensorflow, although that may be a side benefit. The participation in the course is subject to the following condition: - Students must have taken the exam in Advanced Machine Learning (252-0535-00) or have acquired equivalent knowledge, see exhaustive list below: Advanced Machine Learning https://ml2.inf.ethz.ch/courses/aml/ Computational Intelligence Lab http://da.inf.ethz.ch/teaching/2019/CIL/ Introduction to Machine Learning https://las.inf.ethz.ch/teaching/introml-S19 Statistical Learning Theory http://ml2.inf.ethz.ch/courses/slt/ Computational Statistics https://stat.ethz.ch/lectures/ss19/comp-stats.php Probabilistic Artificial Intelligence https://las.inf.ethz.ch/teaching/pai-f18 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-5902-00L | Computer Vision ![]() | W | 8 KP | 3V + 1U + 3A | M. Pollefeys, S. Tang, F. Yu | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | The goal of this course is to provide students with a good understanding of computer vision and image analysis techniques. The main concepts and techniques will be studied in depth and practical algorithms and approaches will be discussed and explored through the exercises. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The objectives of this course are: 1. To introduce the fundamental problems of computer vision. 2. To introduce the main concepts and techniques used to solve those. 3. To enable participants to implement solutions for reasonably complex problems. 4. To enable participants to make sense of the computer vision literature. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | Camera models and calibration, invariant features, Multiple-view geometry, Model fitting, Stereo Matching, Segmentation, 2D Shape matching, Shape from Silhouettes, Optical flow, Structure from motion, Tracking, Object recognition, Object category recognition | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | It is recommended that students have taken the Visual Computing lecture or a similar course introducing basic image processing concepts before taking this course. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-5905-00L | Mixed Reality ![]() | W | 5 KP | 3G + 1A | I. Armeni, F. Bogo, M. Pollefeys | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | The goal of this course is an introduction and hands-on experience on latest mixed reality technology at the cross-section of 3D computer graphics and vision, human machine interaction, as well as gaming technology. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | After attending this course, students will: 1. Understand the foundations of 3D graphics, Computer Vision, and Human-Machine Interaction 2. Have a clear understanding on how to build mixed reality apps 3. Have a good overview of state-of-the-art Mixed Reality 4. Be able to critically analyze and asses current research in this area. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The course introduces latest mixed reality technology and provides introductory elements for a number of related fields including: Introduction to Mixed Reality / Augmented Reality / Virtual Reality Introduction to 3D Computer Graphics, 3D Computer Vision. This will take place 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 mixed reality topics, where small groups of students will work on a particular project with the goal to design, develop and deploy a mixed reality application. The project topics are flexible and can reach from proof-of-concept vision/graphics/HMI research, to apps that support teaching with interactive augmented reality, or game development. The default platform will be Microsoft HoloLens in combination with C# and Unity3D - other platforms are also possible to use, such as tablets and phones. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Prerequisites include: - Good programming skills (C# / C++ / Java etc.) - Computer graphics/vision experience: Students should have taken, at a minimum, Visual Computing. Higher level courses are recommended, such as Introduction to Computer Graphics, 3D Vision, Computer Vision. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-0535-00L | Advanced Machine Learning ![]() | W | 10 KP | 3V + 2U + 4A | J. M. Buhmann, C. Cotrini Jimenez | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Machine learning algorithms provide analytical methods to search data sets for characteristic patterns. Typical tasks include the classification of data, function fitting and clustering, with applications in image and speech analysis, bioinformatics and exploratory data analysis. This course is accompanied by practical machine learning projects. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | Students will be familiarized with advanced concepts and algorithms for supervised and unsupervised learning; reinforce the statistics knowledge which is indispensible to solve modeling problems under uncertainty. Key concepts are the generalization ability of algorithms and systematic approaches to modeling and regularization. Machine learning projects will provide an opportunity to test the machine learning algorithms on real world data. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The theory of fundamental machine learning concepts is presented in the lecture, and illustrated with relevant applications. Students can deepen their understanding by solving both pen-and-paper and programming exercises, where they implement and apply famous algorithms to real-world data. Topics covered in the lecture include: Fundamentals: What is data? Bayesian Learning Computational learning theory Supervised learning: Ensembles: Bagging and Boosting Max Margin methods Neural networks Unsupservised learning: Dimensionality reduction techniques Clustering Mixture Models Non-parametric density estimation Learning Dynamical Systems | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | No lecture notes, but slides will be made available on the course webpage. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | C. Bishop. Pattern Recognition and Machine Learning. Springer 2007. R. Duda, P. Hart, and D. Stork. Pattern Classification. John Wiley & Sons, second edition, 2001. T. Hastie, R. Tibshirani, and J. Friedman. The Elements of Statistical Learning: Data Mining, Inference and Prediction. Springer, 2001. L. Wasserman. All of Statistics: A Concise Course in Statistical Inference. Springer, 2004. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | The course requires solid basic knowledge in analysis, statistics and numerical methods for CSE as well as practical programming experience for solving assignments. Students should have followed at least "Introduction to Machine Learning" or an equivalent course offered by another institution. PhD students are required to obtain a passing grade in the course (4.0 or higher based on project and exam) to gain credit points. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-2800-00L | Design of Parallel and High-Performance Computing ![]() ![]() Number of participants limited to 125. | W | 9 KP | 3V + 2U + 3A | T. Hoefler, M. Püschel | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Advanced topics in parallel and high-performance computing. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | Understand concurrency paradigms and models from a higher perspective and acquire skills for designing, structuring and developing possibly large parallel high-performance software systems. Become able to distinguish parallelism in problem space and in machine space. Become familiar with important technical concepts and with concurrency folklore. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | We will cover all aspects of high-performance computing ranging from architecture through programming up to algorithms. We will start with a discussion of caches and cache coherence in practical computer systems. We will dive into parallel programming concepts such as memory models, locks, and lock-free. We will cover performance modeling and parallel design principles as well as basic parallel algorithms. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | This class is intended for the Computer Science Masters curriculum. Students must have basic knowledge in programming in C as well as computer science theory. Students should be familiar with the material covered in the ETH computer science first-year courses "Parallele Programmierung (parallel programming)" and "Algorithmen und Datenstrukturen (algorithm and data structures)" or equivalent courses. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-3010-00L | Big Data ![]() ![]() | W | 10 KP | 3V + 2U + 4A | G. Fourny | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | The key challenge of the information society is to turn data into information, information into knowledge, knowledge into value. This has become increasingly complex. Data comes in larger volumes, diverse shapes, from different sources. Data is more heterogeneous and less structured than forty years ago. Nevertheless, it still needs to be processed fast, with support for complex operations. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | This combination of requirements, together with the technologies that have emerged in order to address them, is typically referred to as "Big Data." This revolution has led to a completely new way to do business, e.g., develop new products and business models, but also to do science -- which is sometimes referred to as data-driven science or the "fourth paradigm". Unfortunately, the quantity of data produced and available -- now in the Zettabyte range (that's 21 zeros) per year -- keeps growing faster than our ability to process it. Hence, new architectures and approaches for processing it were and are still needed. Harnessing them must involve a deep understanding of data not only in the large, but also in the small. The field of databases evolves at a fast pace. In order to be prepared, to the extent possible, to the (r)evolutions that will take place in the next few decades, the emphasis of the lecture will be on the paradigms and core design ideas, while today's technologies will serve as supporting illustrations thereof. After visiting this lecture, you should have gained an overview and understanding of the Big Data landscape, which is the basis on which one can make informed decisions, i.e., pick and orchestrate the relevant technologies together for addressing each business use case efficiently and consistently. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | This course gives an overview of database technologies and of the most important database design principles that lay the foundations of the Big Data universe. We take the monolithic, one-machine relational stack from the 1970s, smash it down and rebuild it on top of large clusters: starting with distributed storage, and all the way up to syntax, models, validation, processing, indexing, and querying. A broad range of aspects is covered with a focus on how they fit all together in the big picture of the Big Data ecosystem. No data is harmed during this course, however, please be psychologically prepared that our data may not always be in third normal form. - physical storage: distributed file systems (HDFS), object storage(S3), key-value stores - logical storage: document stores (MongoDB), column stores (HBase), graph databases (neo4j), data warehouses (ROLAP) - data formats and syntaxes (XML, JSON, RDF, Turtle, CSV, XBRL, YAML, protocol buffers, Avro) - data shapes and models (tables, trees, graphs, cubes) - type systems and schemas: atomic types, structured types (arrays, maps), set-based type systems (?, *, +) - an overview of functional, declarative programming languages across data shapes (SQL, XQuery, JSONiq, Cypher, MDX) - the most important query paradigms (selection, projection, joining, grouping, ordering, windowing) - paradigms for parallel processing, two-stage (MapReduce) and DAG-based (Spark) - resource management (YARN) - what a data center is made of and why it matters (racks, nodes, ...) - underlying architectures (internal machinery of HDFS, HBase, Spark, neo4j) - optimization techniques (functional and declarative paradigms, query plans, rewrites, indexing) - applications. Large scale analytics and machine learning are outside of the scope of this course. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | Papers from scientific conferences and journals. References will be given as part of the course material during the semester. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | This course, in the autumn semester, is only intended for: - Computer Science students - Data Science students - CBB students with a Computer Science background Mobility students in CS are also welcome and encouraged to attend. If you experience any issue while registering, please contact the study administration and you will be gladly added. For students of all other departements interested in this fascinating topic: I would love to have you visit my lectures as well! So there is a series of two courses specially designed for you: - "Information Systems for Engineers" (SQL, relational databases): this Fall - "Big Data for Engineers" (similar to Big Data, but adapted for non Computer Scientists): Spring 2021 There is no hard dependency, so you can either them in any order, but it may be more enjoyable to start with Information Systems for Engineers. Students who successfully completed Big Data for Engineers are not allowed to enrol in the course Big Data. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-3210-00L | Deep Learning ![]() ![]() Number of participants limited to 320. | W | 8 KP | 3V + 2U + 2A | F. Perez Cruz, A. Lucchi | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Deep learning is an area within machine learning that deals with algorithms and models that automatically induce multi-level data representations. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | In recent years, deep learning and deep networks have significantly improved the state-of-the-art in many application domains such as computer vision, speech recognition, and natural language processing. This class will cover the mathematical foundations of deep learning and provide insights into model design, training, and validation. The main objective is a profound understanding of why these methods work and how. There will also be a rich set of hands-on tasks and practical projects to familiarize students with this emerging technology. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | This is an advanced level course that requires some basic background in machine learning. More importantly, students are expected to have a very solid mathematical foundation, including linear algebra, multivariate calculus, and probability. The course will make heavy use of mathematics and is not (!) meant to be an extended tutorial of how to train deep networks with tools like Torch or Tensorflow, although that may be a side benefit. The participation in the course is subject to the following condition: - Students must have taken the exam in Advanced Machine Learning (252-0535-00) or have acquired equivalent knowledge, see exhaustive list below: Advanced Machine Learning https://ml2.inf.ethz.ch/courses/aml/ Computational Intelligence Lab http://da.inf.ethz.ch/teaching/2019/CIL/ Introduction to Machine Learning https://las.inf.ethz.ch/teaching/introml-S19 Statistical Learning Theory http://ml2.inf.ethz.ch/courses/slt/ Computational Statistics https://stat.ethz.ch/lectures/ss19/comp-stats.php Probabilistic Artificial Intelligence https://las.inf.ethz.ch/teaching/pai-f18 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-3845-00L | Data Management Systems ![]() | W | 8 KP | 3V + 1U + 3A | G. Alonso | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | The course will cover the implementation aspects of data management systems using relational database engines as a starting point to cover the basic concepts of efficient data processing and then expanding those concepts to modern implementations in data centers and the cloud. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The goal of the course is to convey the fundamental aspects of efficient data management from a systems implementation perspective: storage, access, organization, indexing, consistency, concurrency, transactions, distribution, query compilation vs interpretation, data representations, etc. Using conventional relational engines as a starting point, the course will aim at providing an in depth coverage of the latest technologies used in data centers and the cloud to implement large scale data processing in various forms. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The course will first cover fundamental concepts in data management: storage, locality, query optimization, declarative interfaces, concurrency control and recovery, buffer managers, management of the memory hierarchy, presenting them in a system independent manner. The course will place an special emphasis on understating these basic principles as they are key to understanding what problems existing systems try to address. It will then proceed to explore their implementation in modern relational engines supporting SQL to then expand the range of systems used in the cloud: key value stores, geo-replication, query as a service, serverless, large scale analytics engines, etc. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | The main source of information for the course will be articles and research papers describing the architecture of the systems discussed. The list of papers will be provided at the beginning of the course. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | The course requires to have completed the Data Modeling and Data Bases course at the Bachelor level as it assumes knowledge of databases and SQL. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kompetenzen![]() |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-3850-00L | Informal Methods ![]() | W | 5 KP | 2G + 2A | D. Cock | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Formal methods are increasingly a key part of the methodological toolkit of systems programmers - those writing operating systems, databases, and distributed systems. This course is about how to apply concepts, techniques, and principles from formal methods to such software systems, and how to get into the habit of thinking formally about systems design even when writing low-level C code. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | This course is about equipping students whose focus is systems with the insights and conceptual tools provided by formal methods, and thereby enabling them to become better systems programmers. By the end of the course, students should be able to seamlessly integrate basic concepts form formal methods into how they conceive, design, implement, reason about, and debug computer systems. The goal is not to provide a comprehensive introduction to formal methods - this is well covered by other courses in the department. Instead, it is intended to provide students in computer systems (who may or may not have existing background knowledge of formal methods) with a basis for applying formal methods in their work. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | This course does not assume prior knowledge of formal methods, and will start with a quick review of topics such static vs. dynamic reasoning, variants and invariants, program algebra and refinement, etc. However, it is strongly recommended that students have already taken one of the introductory formal methods course at ETH (or equivalents elsewhere) before taking this course - the emphasis is on reinforcing these concepts by applying them, not to teach them from scratch. Instead, the majority of the course will be about how to apply these techniques to actual, practical code in real systems. We will work from real systems code written both by students taking the course, and practical systems developed using formal techniques, in particular the verified seL4 microkernel will be a key case study. We will also focus on informal, pen-and-paper arguments for correctness of programs and systems rather than using theorem provers or automated verification tools; again these latter techniques are well covered in other courses (and recommended as a complement to this one). | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-0463-00L | Security Engineering ![]() | W | 7 KP | 2V + 2U + 2A | S. Krstic | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Subject of the class are engineering techniques for developing secure systems. We examine concepts, methods and tools, applied within the different activities of the SW development process to improve security of the system. Topics: security requirements&risk analysis, system modeling&model-based development methods, implementation-level security, and evaluation criteria for secure systems | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | Security engineering is an evolving discipline that unifies two important areas: software engineering and security. Software Engineering addresses the development and application of methods for systematically developing, operating, and maintaining, complex, high-quality software. Security, on the other hand, is concerned with assuring and verifying properties of a system that relate to confidentiality, integrity, and availability of data. The goal of this class is to survey engineering techniques for developing secure systems. We will examine concepts, methods, and tools that can be applied within the different activities of the software development process, in order to improve the security of the resulting systems. Topics covered include * security requirements & risk analysis, * system modeling and model-based development methods, * implementation-level security, and * evaluation criteria for the development of secure systems | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | Security engineering is an evolving discipline that unifies two important areas: software engineering and security. Software Engineering addresses the development and application of methods for systematically developing, operating, and maintaining, complex, high-quality software. Security, on the other hand, is concerned with assuring and verifying properties of a system that relate to confidentiality, integrity, and availability of data. The goal of this class is to survey engineering techniques for developing secure systems. We will examine concepts, methods, and tools that can be applied within the different activities of the software development process, in order to improve the security of the resulting systems. Topics covered include * security requirements & risk analysis, * system modeling and model-based development methods, * implementation-level security, and * evaluation criteria for the development of secure systems Modules taught: 1. Introduction - Introduction of Infsec group and speakers - Security meets SW engineering: an introduction - The activities of SW engineering, and where security fits in - Overview of this class 2. Requirements Engineering: Security Requirements and some Analysis - Overview: functional and non-functional requirements - Use cases, misuse cases, sequence diagrams - Safety and security 3. Modeling in the design activities - Structure, behavior, and data flow - Class diagrams, statecharts 4. Model-driven security for access control (Part I) - SecureUML as a language for access control - Combining Design Modeling Languages with SecureUML - Semantics, i.e., what does it all mean, - Generation - Examples and experience 5. Model-driven security (Part II) - Continuation of above topics 6. Security patterns (design and implementation) 7. Implementation-level security - Buffer overflows - Input checking - Injection attacks 8. Code scanning - Static code analysis basics - Theoretical and practical challenges - Analysis algorithms - Common bug pattern search and specification - Dataflow analysis 9. Testing - Overview and basics - Model-based testing - Testing security properties 10. Risk analysis and management - "Risk": assets, threats, vulnerabilities, risk - Risk assessment: quantitative and qualitative - Safeguards - Generic risk analysis procedure - The OCTAVE approach - Example of qualitative risk assessment 11. Threat modeling - Overview - Safety engineering basics: FMEA and FTA - Security impact analysis in the design phase - Modeling security threats: attack trees - Examples and experience 12. Evaluation criteria - NIST special papers - ISO/IEC 27000 - Common criteria - BSI baseline protection 13. Guest lecture - TBA | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | - Ross Anderson: Security Engineering, Wiley, 2001. - Matt Bishop: Computer Security, Pearson Education, 2003. - Ian Sommerville: Software Engineering, 6th ed., Addison-Wesley, 2001. - John Viega, Gary McGraw: Building Secure Software, Addison-Wesley, 2002. - Further relevant books and journal/conference articles will be announced in the lecture. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Prerequisite: Class on Information Security | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-1411-00L | Security of Wireless Networks ![]() | W | 6 KP | 2V + 1U + 2A | S. Capkun, K. Kostiainen | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Core Elements: Wireless communication channel, Wireless network architectures and protocols, Attacks on wireless networks, Protection techniques. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | After this course, the students should be able to: describe and classify security goals and attacks in wireless networks; describe security architectures of the following wireless systems and networks: 802.11, GSM/UMTS, RFID, ad hoc/sensor networks; reason about security protocols for wireless network; implement mechanisms to secure 802.11 networks. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | Wireless channel basics. Wireless electronic warfare: jamming and target tracking. Basic security protocols in cellular, WLAN and multi-hop networks. Recent advances in security of multi-hop networks; RFID privacy challenges and solutions. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-1414-00L | System Security ![]() | W | 7 KP | 2V + 2U + 2A | S. Capkun, A. Perrig | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | The first part of the lecture covers individual system aspects starting with tamperproof or tamper-resistant hardware in general over operating system related security mechanisms to application software systems, such as host based intrusion detection systems. In the second part, the focus is on system design and methodologies for building secure systems. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | In this lecture, students learn about the security requirements and capabilities that are expected from modern hardware, operating systems, and other software environments. An overview of available technologies, algorithms and standards is given, with which these requirements can be met. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The first part of the lecture covers individual system's aspects starting with tamperproof or tamperresistant hardware in general over operating system related security mechanisms to application software systems such as host based intrusion detetction systems. The main topics covered are: tamper resistant hardware, CPU support for security, protection mechanisms in the kernel, file system security (permissions / ACLs / network filesystem issues), IPC Security, mechanisms in more modern OS, such as Capabilities and Zones, Libraries and Software tools for security assurance, etc. In the second part, the focus is on system design and methodologies for building secure systems. Topics include: patch management, common software faults (buffer overflows, etc.), writing secure software (design, architecture, QA, testing), compiler-supported security, language-supported security, logging and auditing (BSM audit, dtrace, ...), cryptographic support, and trustworthy computing (TCG, SGX). Along the lectures, model cases will be elaborated and evaluated in the exercises. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-4640-00L | Network Security ![]() | W | 8 KP | 2V + 2U + 3A | A. Perrig, S. Frei, M. Legner, K. Paterson | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Some of today's most damaging attacks on computer systems involve exploitation of network infrastructure, either as the target of attack or as a vehicle to attack end systems. This course provides an in-depth study of network attack techniques and methods to defend against them. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | - Students are familiar with fundamental network-security concepts. - Students can assess current threats that Internet services and networked devices face, and can evaluate appropriate countermeasures. - Students can identify and assess vulnerabilities in software systems and network protocols. - Students have an in-depth understanding of a range of important state-of-the-art security technologies. - Students can implement network-security protocols based on cryptographic libraries. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The course will cover topics spanning four broad themes with a focus on the first two themes: (1) network defense mechanisms such as public-key infrastructures, TLS, VPNs, anonymous-communication systems, secure routing protocols, secure DNS systems, and network intrusion-detection systems; (2) network attacks such as hijacking, spoofing, denial-of-service (DoS), and distributed denial-of-service (DDoS) attacks; (3) analysis and inference topics such as traffic monitoring and network forensics; and (4) new technologies related to next-generation networks. In addition, several guest lectures will provide in-depth insights into specific current real-world network-security topics. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | This lecture is intended for students with an interest in securing Internet communication services and network devices. Students are assumed to have knowledge in networking as taught in a communication networks lecture like 252-0064-00L or 227-0120-00L. Basic knowledge of information security or applied cryptography as taught in 252-0211-00L or 263-4660-00L is beneficial, but an overview of the most important cryptographic primitives will be provided at the beginning of the course. The course will involve several graded course projects. Students are expected to be familiar with a general-purpose or network programming language such as C/C++, Go, Python, or Rust. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kompetenzen![]() |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-4657-00L | Advanced Encryption Schemes | W | 5 KP | 2V + 1U + 1A | R. Gay | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Public-Key Encryption has had a significant impact by enabling remote parties to communicate securely via an insecure channel. Latest schemes go further by providing a fine-grained access to the encrypted data. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The student is comfortable with formal security definitions and proof techniques used to analyze the security of the latest encryption schemes with advanced features. This prepares the student to start reading research papers on the field. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | We will start by presenting the notion of Public-Key Encryption with its various security guarantees and some constructions. Then we will look into encryption schemes with fine-grained access control to the encrypted data, such as identity-based encryption or attribute-based encryption and present different methodology to prove their security. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | Links to relevant research papers will be given in the course materials. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | It is recommended for students to have prior exposure to cryptography, e.g.the D-INFK course "Digital Signatures" or "Applied Cryptography". | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-4665-00L | Zero-Knowledge Proofs ![]() Number of participants limited to 50. | W | 5 KP | 2V + 1U + 1A | J. Bootle | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | This course is a detailed introduction to zero-knowledge proof protocols. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | To understand various methods of constructing zero-knowledge proof protocols, and be able to analyse their security properties. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The course will discuss interactive zero-knowledge proofs based on various commitment schemes, and explore connections to other areas like secure multi-party computation. The course may also describe some more advanced constructions of non-interactive proofs. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | The course notes will be written in English. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Students should have taken a first course in Cryptography (as taught in the Information Security course at Bachelor’s level). Confidence with algebra and probability is desirable. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
227-0579-00L | Hardware Security | W | 7 KP | 2V + 2U + 2A | K. Razavi | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | This course covers the security of commodity computer hardware (e.g., CPU, DRAM, etc.) with a special focus on cutting-edge hands-on research. The aim of the course is familiarizing the students with hardware security and more specifically microarchitectural and circuit-level attacks and defenses through lectures, reviewing and discussing papers, and executing some of these advanced attacks. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | By the end of the course, the students will be familiar with the state of the art in commodity computer hardware attacks and defenses. More specifically, the students will learn about: - security problems of commodity hardware that we use everyday and how you can defend against them. - relevant computer architecture and operating system aspects of these issues. - hands-on techniques for performing hardware attacks. - writing critical reviews and constructive discussions with peers on this topic. This is the course where you get credit points by building some of the most advanced exploits on the planet! The luckiest team will collect a Best Demo Award at the end of the course. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | Slides, relevant literature and manuals will be made available during the course. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Knowledge of systems programming and computer architecture is a plus. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-0535-00L | Advanced Machine Learning ![]() | W | 10 KP | 3V + 2U + 4A | J. M. Buhmann, C. Cotrini Jimenez | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Machine learning algorithms provide analytical methods to search data sets for characteristic patterns. Typical tasks include the classification of data, function fitting and clustering, with applications in image and speech analysis, bioinformatics and exploratory data analysis. This course is accompanied by practical machine learning projects. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | Students will be familiarized with advanced concepts and algorithms for supervised and unsupervised learning; reinforce the statistics knowledge which is indispensible to solve modeling problems under uncertainty. Key concepts are the generalization ability of algorithms and systematic approaches to modeling and regularization. Machine learning projects will provide an opportunity to test the machine learning algorithms on real world data. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The theory of fundamental machine learning concepts is presented in the lecture, and illustrated with relevant applications. Students can deepen their understanding by solving both pen-and-paper and programming exercises, where they implement and apply famous algorithms to real-world data. Topics covered in the lecture include: Fundamentals: What is data? Bayesian Learning Computational learning theory Supervised learning: Ensembles: Bagging and Boosting Max Margin methods Neural networks Unsupservised learning: Dimensionality reduction techniques Clustering Mixture Models Non-parametric density estimation Learning Dynamical Systems | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | No lecture notes, but slides will be made available on the course webpage. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | C. Bishop. Pattern Recognition and Machine Learning. Springer 2007. R. Duda, P. Hart, and D. Stork. Pattern Classification. John Wiley & Sons, second edition, 2001. T. Hastie, R. Tibshirani, and J. Friedman. The Elements of Statistical Learning: Data Mining, Inference and Prediction. Springer, 2001. L. Wasserman. All of Statistics: A Concise Course in Statistical Inference. Springer, 2004. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | The course requires solid basic knowledge in analysis, statistics and numerical methods for CSE as well as practical programming experience for solving assignments. Students should have followed at least "Introduction to Machine Learning" or an equivalent course offered by another institution. PhD students are required to obtain a passing grade in the course (4.0 or higher based on project and exam) to gain credit points. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-3005-00L | Natural Language Processing ![]() ![]() Number of participants limited to 400. | W | 5 KP | 2V + 2U + 1A | R. Cotterell | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | This course presents topics in natural language processing with an emphasis on modern techniques, primarily focusing on statistical and deep learning approaches. The course provides an overview of the primary areas of research in language processing as well as a detailed exploration of the models and techniques used both in research and in commercial natural language systems. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The objective of the course is to learn the basic concepts in the statistical processing of natural languages. The course will be project-oriented so that the students can also gain hands-on experience with state-of-the-art tools and techniques. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | This course presents an introduction to general topics and techniques used in natural language processing today, primarily focusing on statistical approaches. The course provides an overview of the primary areas of research in language processing as well as a detailed exploration of the models and techniques used both in research and in commercial natural language systems. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | Lectures 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-2400-00L | Reliable and Trustworthy Artificial Intelligence ![]() | W | 6 KP | 2V + 2U + 1A | M. Vechev | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Creating reliable and explainable probabilistic models is a fundamental challenge to solving the artificial intelligence problem. This course covers some of the latest and most exciting advances that bring us closer to constructing such models. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The main objective of this course is to expose students to the latest and most exciting research in the area of explainable and interpretable artificial intelligence, a topic of fundamental and increasing importance. Upon completion of the course, the students should have mastered the underlying methods and be able to apply them to a variety of problems. To facilitate deeper understanding, an important part of the course will be a group hands-on programming project where students will build a system based on the learned material. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | This comprehensive course covers some of the latest and most important research advances (over the last 3 years) underlying the creation of safe, trustworthy, and reliable AI (more information here: https://www.sri.inf.ethz.ch/teaching/reliableai21): * Adversarial Attacks on Deep Learning (noise-based, geometry attacks, sound attacks, physical attacks, autonomous driving, out-of-distribution) * Defenses against attacks * Combining gradient-based optimization with logic for encoding background knowledge * Complete Certification of deep neural networks via automated reasoning (e.g., via numerical relaxations, mixed-integer solvers). * Probabilistic certification of deep neural networks * Training deep neural networks to be provably robust via automated reasoning * Fairness (different notions of fairness, certifiably fair representation learning) * Federated Learning (introduction, security considerations) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | While not a formal requirement, the course assumes familiarity with basics of machine learning (especially linear algebra, gradient descent, and neural networks as well as basic probability theory). These topics are usually covered in “Intro to ML” classes at most institutions (e.g., “Introduction to Machine Learning” at ETH). For solving assignments, some programming experience in Python is expected. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-3210-00L | Deep Learning ![]() ![]() Number of participants limited to 320. | W | 8 KP | 3V + 2U + 2A | F. Perez Cruz, A. Lucchi | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Deep learning is an area within machine learning that deals with algorithms and models that automatically induce multi-level data representations. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | In recent years, deep learning and deep networks have significantly improved the state-of-the-art in many application domains such as computer vision, speech recognition, and natural language processing. This class will cover the mathematical foundations of deep learning and provide insights into model design, training, and validation. The main objective is a profound understanding of why these methods work and how. There will also be a rich set of hands-on tasks and practical projects to familiarize students with this emerging technology. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | This is an advanced level course that requires some basic background in machine learning. More importantly, students are expected to have a very solid mathematical foundation, including linear algebra, multivariate calculus, and probability. The course will make heavy use of mathematics and is not (!) meant to be an extended tutorial of how to train deep networks with tools like Torch or Tensorflow, although that may be a side benefit. The participation in the course is subject to the following condition: - Students must have taken the exam in Advanced Machine Learning (252-0535-00) or have acquired equivalent knowledge, see exhaustive list below: Advanced Machine Learning https://ml2.inf.ethz.ch/courses/aml/ Computational Intelligence Lab http://da.inf.ethz.ch/teaching/2019/CIL/ Introduction to Machine Learning https://las.inf.ethz.ch/teaching/introml-S19 Statistical Learning Theory http://ml2.inf.ethz.ch/courses/slt/ Computational Statistics https://stat.ethz.ch/lectures/ss19/comp-stats.php Probabilistic Artificial Intelligence https://las.inf.ethz.ch/teaching/pai-f18 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-5005-00L | Artificial Intelligence in Education ![]() ![]() Number of participants limited to 75. | W | 5 KP | 2V + 1U + 1A | M. Sachan, T. Sinha | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Artificial Intelligence (AI) methods have shown to have a profound impact in educational technologies, where the great variety of tasks and data types enable us to get benefit of AI techniques in many different ways. We will review relevant methods and applications of AI in various educational technologies, and work on problem sets and projects to solve problems in education with the help of AI. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The course will be centered around exploring methodological and system-focused perspectives on designing AI systems for education and analyzing educational data using AI methods. Students will be expected to a) engage in presentations and active in-class discussion, b) work on problem-sets exemplifying the use of educational data mining techniques, and c) undertake a final course project with feedback from instructors. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The course will start with a general introduction to AI, where we will cover supervised and unsupervised learning techniques (e.g.,classification and regression models, feature selection and preprocessing of data, clustering, dimensionality reduction and text mining techniques) with a focus on application of these techniques in educational data mining. After the introduction of the basic methodologies, we will continue with the most relevant applications of AI in educational technologies (e.g., intelligent tutoring and student personalization, scaffolding open-ended discovery learning, socially-aware AI and learning at scale with AI systems). In the final part of the course, we will cover challenges associated with using AI in student facing settings. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | Lecture slides will be made available at the course Web site. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | No textbook is required, but there will be regularly assigned readings from research literature, linked to the course website. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | There are no prerequisites for this class. However, it will help if the student has taken an undergraduate or graduate level class in statistics, data science or machine learning. This class is appropriate for advanced undergraduates and master students in Computer Science as well as PhD students in other departments. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-5210-00L | Probabilistic Artificial Intelligence ![]() ![]() | W | 8 KP | 3V + 2U + 2A | A. Krause | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | This course introduces core modeling techniques and algorithms from machine learning, optimization and control for reasoning and decision making under uncertainty, and study applications in areas such as robotics. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | How can we build systems that perform well in uncertain environments? How can we develop systems that exhibit "intelligent" behavior, without prescribing explicit rules? How can we build systems that learn from experience in order to improve their performance? We will study core modeling techniques and algorithms from statistics, optimization, planning, and control and study applications in areas such as robotics. The course is designed for graduate students. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | Topics covered: - Probability - Probabilistic inference (variational inference, MCMC) - Bayesian learning (Gaussian processes, Bayesian deep learning) - Probabilistic planning (MDPs, POMPDPs) - Multi-armed bandits and Bayesian optimization - Reinforcement learning | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Solid basic knowledge in statistics, algorithms and programming. The material covered in the course "Introduction to Machine Learning" is considered as a prerequisite. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-5255-00L | Foundations of Reinforcement Learning ![]() ![]() Number of participants limited to 190. Last cancellation/deregistration date for this graded semester performance: Thursday, 28 October 2021! Please note that after that date no deregistration will be accepted and the course will be considered as "fail". | W | 5 KP | 2V + 2A | N. He | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Reinforcement learning (RL) has been in the limelight of many recent breakthroughs in artificial intelligence. This course focuses on theoretical and algorithmic foundations of reinforcement learning, through the lens of optimization, modern approximation, and learning theory. The course targets M.S. students with strong research interests in reinforcement learning, optimization, and control. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | This course aims to provide students with an advanced introduction of RL theory and algorithms as well as bring them near the frontier of this active research field. By the end of the course, students will be able to - Identify the strengths and limitations of various reinforcement learning algorithms; - Formulate and solve sequential decision-making problems by applying relevant reinforcement learning tools; - Generalize or discover “new” applications, algorithms, or theories of reinforcement learning towards conducting independent research on the topic. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | Basic topics include fundamentals of Markov decision processes, approximate dynamic programming, linear programming and primal-dual perspectives of RL, model-based and model-free RL, policy gradient and actor-critic algorithms, Markov games and multi-agent RL. If time allows, we will also discuss advanced topics such as batch RL, inverse RL, causal RL, etc. The course keeps strong emphasis on in-depth understanding of the mathematical modeling and theoretical properties of RL algorithms. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | Lecture notes will be posted on Moodle. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | Dynamic Programming and Optimal Control, Vol I & II, Dimitris Bertsekas Reinforcement Learning: An Introduction, Second Edition, Richard Sutton and Andrew Barto. Algorithms for Reinforcement Learning, Csaba Czepesvári. Reinforcement Learning: Theory and Algorithms, Alekh Agarwal, Nan Jiang, Sham M. Kakade. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Students are expected to have strong mathematical background in linear algebra, probability theory, optimization, and machine learning. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-1411-00L | Security of Wireless Networks ![]() | W | 6 KP | 2V + 1U + 2A | S. Capkun, K. Kostiainen | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Core Elements: Wireless communication channel, Wireless network architectures and protocols, Attacks on wireless networks, Protection techniques. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | After this course, the students should be able to: describe and classify security goals and attacks in wireless networks; describe security architectures of the following wireless systems and networks: 802.11, GSM/UMTS, RFID, ad hoc/sensor networks; reason about security protocols for wireless network; implement mechanisms to secure 802.11 networks. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | Wireless channel basics. Wireless electronic warfare: jamming and target tracking. Basic security protocols in cellular, WLAN and multi-hop networks. Recent advances in security of multi-hop networks; RFID privacy challenges and solutions. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-4640-00L | Network Security ![]() | W | 8 KP | 2V + 2U + 3A | A. Perrig, S. Frei, M. Legner, K. Paterson | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Some of today's most damaging attacks on computer systems involve exploitation of network infrastructure, either as the target of attack or as a vehicle to attack end systems. This course provides an in-depth study of network attack techniques and methods to defend against them. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | - Students are familiar with fundamental network-security concepts. - Students can assess current threats that Internet services and networked devices face, and can evaluate appropriate countermeasures. - Students can identify and assess vulnerabilities in software systems and network protocols. - Students have an in-depth understanding of a range of important state-of-the-art security technologies. - Students can implement network-security protocols based on cryptographic libraries. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The course will cover topics spanning four broad themes with a focus on the first two themes: (1) network defense mechanisms such as public-key infrastructures, TLS, VPNs, anonymous-communication systems, secure routing protocols, secure DNS systems, and network intrusion-detection systems; (2) network attacks such as hijacking, spoofing, denial-of-service (DoS), and distributed denial-of-service (DDoS) attacks; (3) analysis and inference topics such as traffic monitoring and network forensics; and (4) new technologies related to next-generation networks. In addition, several guest lectures will provide in-depth insights into specific current real-world network-security topics. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | This lecture is intended for students with an interest in securing Internet communication services and network devices. Students are assumed to have knowledge in networking as taught in a communication networks lecture like 252-0064-00L or 227-0120-00L. Basic knowledge of information security or applied cryptography as taught in 252-0211-00L or 263-4660-00L is beneficial, but an overview of the most important cryptographic primitives will be provided at the beginning of the course. The course will involve several graded course projects. Students are expected to be familiar with a general-purpose or network programming language such as C/C++, Go, Python, or Rust. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kompetenzen![]() |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
227-0575-00L | Advanced Topics in Communication Networks ![]() | W | 6 KP | 2V + 2U | L. Vanbever | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | This course covers advanced topics and technologies in computer networks, both theoretically and practically. It is offered each Fall semester, with rotating topics. Repetition for credit is possible with consent of the instructor. In the Fall 2021, the course will cover advanced topics in Internet routing and forwarding. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The goals of this course is to provide students with a deeper understanding of the existing and upcoming Internet routing and forwarding technologies used in large-scale computer networks such as Internet Service Providers (e.g., Swisscom or Deutsche Telekom), Content Delivery Networks (e.g., Netflix) and Data Centers (e.g., Google). Besides covering the fundamentals, the course will be “hands-on” and will enable students to play with the technologies in realistic network environments, and even implement some of them on their own during labs and a final group project. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The course will cover advanced topics in Internet routing and forwarding such as: - Tunneling - Hierarchical routing - Traffic Engineering and Load Balancing - Virtual Private Networks - Quality of Service/Queuing/Scheduling - Fast Convergence - Network virtualization - Network programmability (OpenFlow, P4) - Network measurements The course will be divided in two main blocks. The first block (~8 weeks) will interleave classical lectures with practical exercises and labs. The second block (~6 weeks) will consist of a practical project which will be performed in small groups (~3 students). During the second block, lecture slots will be replaced by feedback sessions where students will be able to ask questions and get feedback about their project. The last week of the semester will be dedicated to student presentations and demonstrations. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | Lecture notes and material will be made available before each course on the course website. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | Relevant references will be made available through the course website. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Prerequisites: Communication Networks (227-0120-00L) or equivalents / good programming skills (in any language) are expected as both the exercices and the final project will involve coding. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kompetenzen![]() |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-0237-00L | Concepts of Object-Oriented Programming ![]() | W | 8 KP | 3V + 2U + 2A | P. Müller | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Course that focuses on an in-depth understanding of object-oriented programming and compares designs of object-oriented programming languages. Topics include different flavors of type systems, inheritance models, encapsulation in the presence of aliasing, object and class initialization, program correctness, reflection | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | After this course, students will: Have a deep understanding of advanced concepts of object-oriented programming and their support through various language features. Be able to understand language concepts on a semantic level and be able to compare and evaluate language designs. Be able to learn new languages more rapidly. Be aware of many subtle problems of object-oriented programming and know how to avoid them. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The main goal of this course is to convey a deep understanding of the key concepts of sequential object-oriented programming and their support in different programming languages. This is achieved by studying how important challenges are addressed through language features and programming idioms. In particular, the course discusses alternative language designs by contrasting solutions in languages such as C++, C#, Eiffel, Java, Python, and Scala. The course also introduces novel ideas from research languages that may influence the design of future mainstream languages. The topics discussed in the course include among others: The pros and cons of different flavors of type systems (for instance, static vs. dynamic typing, nominal vs. structural, syntactic vs. behavioral typing) The key problems of single and multiple inheritance and how different languages address them Generic type systems, in particular, Java generics, C# generics, and C++ templates The situations in which object-oriented programming does not provide encapsulation, and how to avoid them The pitfalls of object initialization, exemplified by a research type system that prevents null pointer dereferencing How to maintain the consistency of data structures | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | Will be announced in the lecture. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Prerequisites: Mastering at least one object-oriented programming language (this course will NOT provide an introduction to object-oriented programming); programming experience | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-2400-00L | Reliable and Trustworthy Artificial Intelligence ![]() | W | 6 KP | 2V + 2U + 1A | M. Vechev | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Creating reliable and explainable probabilistic models is a fundamental challenge to solving the artificial intelligence problem. This course covers some of the latest and most exciting advances that bring us closer to constructing such models. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The main objective of this course is to expose students to the latest and most exciting research in the area of explainable and interpretable artificial intelligence, a topic of fundamental and increasing importance. Upon completion of the course, the students should have mastered the underlying methods and be able to apply them to a variety of problems. To facilitate deeper understanding, an important part of the course will be a group hands-on programming project where students will build a system based on the learned material. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | This comprehensive course covers some of the latest and most important research advances (over the last 3 years) underlying the creation of safe, trustworthy, and reliable AI (more information here: https://www.sri.inf.ethz.ch/teaching/reliableai21): * Adversarial Attacks on Deep Learning (noise-based, geometry attacks, sound attacks, physical attacks, autonomous driving, out-of-distribution) * Defenses against attacks * Combining gradient-based optimization with logic for encoding background knowledge * Complete Certification of deep neural networks via automated reasoning (e.g., via numerical relaxations, mixed-integer solvers). * Probabilistic certification of deep neural networks * Training deep neural networks to be provably robust via automated reasoning * Fairness (different notions of fairness, certifiably fair representation learning) * Federated Learning (introduction, security considerations) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | While not a formal requirement, the course assumes familiarity with basics of machine learning (especially linear algebra, gradient descent, and neural networks as well as basic probability theory). These topics are usually covered in “Intro to ML” classes at most institutions (e.g., “Introduction to Machine Learning” at ETH). For solving assignments, some programming experience in Python is expected. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-2800-00L | Design of Parallel and High-Performance Computing ![]() ![]() Number of participants limited to 125. | W | 9 KP | 3V + 2U + 3A | T. Hoefler, M. Püschel | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Advanced topics in parallel and high-performance computing. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | Understand concurrency paradigms and models from a higher perspective and acquire skills for designing, structuring and developing possibly large parallel high-performance software systems. Become able to distinguish parallelism in problem space and in machine space. Become familiar with important technical concepts and with concurrency folklore. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | We will cover all aspects of high-performance computing ranging from architecture through programming up to algorithms. We will start with a discussion of caches and cache coherence in practical computer systems. We will dive into parallel programming concepts such as memory models, locks, and lock-free. We will cover performance modeling and parallel design principles as well as basic parallel algorithms. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | This class is intended for the Computer Science Masters curriculum. Students must have basic knowledge in programming in C as well as computer science theory. Students should be familiar with the material covered in the ETH computer science first-year courses "Parallele Programmierung (parallel programming)" and "Algorithmen und Datenstrukturen (algorithm and data structures)" or equivalent courses. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-1414-00L | System Security ![]() | W | 7 KP | 2V + 2U + 2A | S. Capkun, A. Perrig | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | The first part of the lecture covers individual system aspects starting with tamperproof or tamper-resistant hardware in general over operating system related security mechanisms to application software systems, such as host based intrusion detection systems. In the second part, the focus is on system design and methodologies for building secure systems. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | In this lecture, students learn about the security requirements and capabilities that are expected from modern hardware, operating systems, and other software environments. An overview of available technologies, algorithms and standards is given, with which these requirements can be met. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The first part of the lecture covers individual system's aspects starting with tamperproof or tamperresistant hardware in general over operating system related security mechanisms to application software systems such as host based intrusion detetction systems. The main topics covered are: tamper resistant hardware, CPU support for security, protection mechanisms in the kernel, file system security (permissions / ACLs / network filesystem issues), IPC Security, mechanisms in more modern OS, such as Capabilities and Zones, Libraries and Software tools for security assurance, etc. In the second part, the focus is on system design and methodologies for building secure systems. Topics include: patch management, common software faults (buffer overflows, etc.), writing secure software (design, architecture, QA, testing), compiler-supported security, language-supported security, logging and auditing (BSM audit, dtrace, ...), cryptographic support, and trustworthy computing (TCG, SGX). Along the lectures, model cases will be elaborated and evaluated in the exercises. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-2800-00L | Design of Parallel and High-Performance Computing ![]() ![]() Number of participants limited to 125. | W | 9 KP | 3V + 2U + 3A | T. Hoefler, M. Püschel | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Advanced topics in parallel and high-performance computing. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | Understand concurrency paradigms and models from a higher perspective and acquire skills for designing, structuring and developing possibly large parallel high-performance software systems. Become able to distinguish parallelism in problem space and in machine space. Become familiar with important technical concepts and with concurrency folklore. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | We will cover all aspects of high-performance computing ranging from architecture through programming up to algorithms. We will start with a discussion of caches and cache coherence in practical computer systems. We will dive into parallel programming concepts such as memory models, locks, and lock-free. We will cover performance modeling and parallel design principles as well as basic parallel algorithms. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | This class is intended for the Computer Science Masters curriculum. Students must have basic knowledge in programming in C as well as computer science theory. Students should be familiar with the material covered in the ETH computer science first-year courses "Parallele Programmierung (parallel programming)" and "Algorithmen und Datenstrukturen (algorithm and data structures)" or equivalent courses. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-3845-00L | Data Management Systems ![]() | W | 8 KP | 3V + 1U + 3A | G. Alonso | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | The course will cover the implementation aspects of data management systems using relational database engines as a starting point to cover the basic concepts of efficient data processing and then expanding those concepts to modern implementations in data centers and the cloud. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The goal of the course is to convey the fundamental aspects of efficient data management from a systems implementation perspective: storage, access, organization, indexing, consistency, concurrency, transactions, distribution, query compilation vs interpretation, data representations, etc. Using conventional relational engines as a starting point, the course will aim at providing an in depth coverage of the latest technologies used in data centers and the cloud to implement large scale data processing in various forms. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The course will first cover fundamental concepts in data management: storage, locality, query optimization, declarative interfaces, concurrency control and recovery, buffer managers, management of the memory hierarchy, presenting them in a system independent manner. The course will place an special emphasis on understating these basic principles as they are key to understanding what problems existing systems try to address. It will then proceed to explore their implementation in modern relational engines supporting SQL to then expand the range of systems used in the cloud: key value stores, geo-replication, query as a service, serverless, large scale analytics engines, etc. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | The main source of information for the course will be articles and research papers describing the architecture of the systems discussed. The list of papers will be provided at the beginning of the course. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | The course requires to have completed the Data Modeling and Data Bases course at the Bachelor level as it assumes knowledge of databases and SQL. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kompetenzen![]() |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-3850-00L | Informal Methods ![]() | W | 5 KP | 2G + 2A | D. Cock | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Formal methods are increasingly a key part of the methodological toolkit of systems programmers - those writing operating systems, databases, and distributed systems. This course is about how to apply concepts, techniques, and principles from formal methods to such software systems, and how to get into the habit of thinking formally about systems design even when writing low-level C code. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | This course is about equipping students whose focus is systems with the insights and conceptual tools provided by formal methods, and thereby enabling them to become better systems programmers. By the end of the course, students should be able to seamlessly integrate basic concepts form formal methods into how they conceive, design, implement, reason about, and debug computer systems. The goal is not to provide a comprehensive introduction to formal methods - this is well covered by other courses in the department. Instead, it is intended to provide students in computer systems (who may or may not have existing background knowledge of formal methods) with a basis for applying formal methods in their work. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | This course does not assume prior knowledge of formal methods, and will start with a quick review of topics such static vs. dynamic reasoning, variants and invariants, program algebra and refinement, etc. However, it is strongly recommended that students have already taken one of the introductory formal methods course at ETH (or equivalents elsewhere) before taking this course - the emphasis is on reinforcing these concepts by applying them, not to teach them from scratch. Instead, the majority of the course will be about how to apply these techniques to actual, practical code in real systems. We will work from real systems code written both by students taking the course, and practical systems developed using formal techniques, in particular the verified seL4 microkernel will be a key case study. We will also focus on informal, pen-and-paper arguments for correctness of programs and systems rather than using theorem provers or automated verification tools; again these latter techniques are well covered in other courses (and recommended as a complement to this one). | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-0417-00L | Randomized Algorithms and Probabilistic Methods | W | 10 KP | 3V + 2U + 4A | A. Steger | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Las Vegas & Monte Carlo algorithms; inequalities of Markov, Chebyshev, Chernoff; negative correlation; Markov chains: convergence, rapidly mixing; generating functions; Examples include: min cut, median, balls and bins, routing in hypercubes, 3SAT, card shuffling, random walks | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | After this course students will know fundamental techniques from probabilistic combinatorics for designing randomized algorithms and will be able to apply them to solve typical problems in these areas. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | Randomized Algorithms are algorithms that "flip coins" to take certain decisions. This concept extends the classical model of deterministic algorithms and has become very popular and useful within the last twenty years. In many cases, randomized algorithms are faster, simpler or just more elegant than deterministic ones. In the course, we will discuss basic principles and techniques and derive from them a number of randomized methods for problems in different areas. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | Yes. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | - Randomized Algorithms, Rajeev Motwani and Prabhakar Raghavan, Cambridge University Press (1995) - Probability and Computing, Michael Mitzenmacher and Eli Upfal, Cambridge University Press (2005) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-0535-00L | Advanced Machine Learning ![]() | W | 10 KP | 3V + 2U + 4A | J. M. Buhmann, C. Cotrini Jimenez | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Machine learning algorithms provide analytical methods to search data sets for characteristic patterns. Typical tasks include the classification of data, function fitting and clustering, with applications in image and speech analysis, bioinformatics and exploratory data analysis. This course is accompanied by practical machine learning projects. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | Students will be familiarized with advanced concepts and algorithms for supervised and unsupervised learning; reinforce the statistics knowledge which is indispensible to solve modeling problems under uncertainty. Key concepts are the generalization ability of algorithms and systematic approaches to modeling and regularization. Machine learning projects will provide an opportunity to test the machine learning algorithms on real world data. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The theory of fundamental machine learning concepts is presented in the lecture, and illustrated with relevant applications. Students can deepen their understanding by solving both pen-and-paper and programming exercises, where they implement and apply famous algorithms to real-world data. Topics covered in the lecture include: Fundamentals: What is data? Bayesian Learning Computational learning theory Supervised learning: Ensembles: Bagging and Boosting Max Margin methods Neural networks Unsupservised learning: Dimensionality reduction techniques Clustering Mixture Models Non-parametric density estimation Learning Dynamical Systems | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | No lecture notes, but slides will be made available on the course webpage. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | C. Bishop. Pattern Recognition and Machine Learning. Springer 2007. R. Duda, P. Hart, and D. Stork. Pattern Classification. John Wiley & Sons, second edition, 2001. T. Hastie, R. Tibshirani, and J. Friedman. The Elements of Statistical Learning: Data Mining, Inference and Prediction. Springer, 2001. L. Wasserman. All of Statistics: A Concise Course in Statistical Inference. Springer, 2004. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | The course requires solid basic knowledge in analysis, statistics and numerical methods for CSE as well as practical programming experience for solving assignments. Students should have followed at least "Introduction to Machine Learning" or an equivalent course offered by another institution. PhD students are required to obtain a passing grade in the course (4.0 or higher based on project and exam) to gain credit points. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-1407-00L | Algorithmic Game Theory ![]() | W | 7 KP | 3V + 2U + 1A | P. Penna | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Game theory provides a formal model to study the behavior and interaction of self-interested users and programs in large-scale distributed computer systems without central control. The course discusses algorithmic aspects of game theory. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | Learning the basic concepts of game theory and mechanism design, acquiring the computational paradigm of self-interested agents, and using these concepts in the computational and algorithmic setting. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The Internet is a typical example of a large-scale distributed computer system without central control, with users that are typically only interested in their own good. For instance, they are interested in getting high bandwidth for themselves, but don't care about others, and the same is true for computational load or download rates. Game theory provides a mathematical model for the behavior and interaction of such selfish users and programs. Classic game theory dates back to the 1930s and typically does not consider algorithmic aspects at all. Only a few years back, algorithms and game theory have been considered together, in an attempt to reconcile selfish behavior of independent agents with the common good. This course discusses algorithmic aspects of game-theoretic models, with a focus on recent algorithmic and mathematical developments. Rather than giving an overview of such developments, the course aims to study selected important topics in depth. Outline: - Introduction to classic game-theoretic concepts. - Existence of stable solutions (equilibria), algorithms for computing equilibria, computational complexity. - Speed of convergence of natural game playing dynamics such as best-response dynamics or regret minimization. - Techniques for bounding the quality-loss due to selfish behavior versus optimal outcomes under central control (a.k.a. the 'Price of Anarchy'). - Design and analysis of mechanisms that induce truthful behavior or near-optimal outcomes at equilibrium. - Selected current research topics, such as Google's Sponsored Search Auction, the U.S. FCC Spectrum Auction, Kidney Exchange. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | Lecture notes will be usually posted on the website shortly after each lecture. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | "Algorithmic Game Theory", edited by N. Nisan, T. Roughgarden, E. Tardos, and V. Vazirani, Cambridge University Press, 2008; "Game Theory and Strategy", Philip D. Straffin, The Mathematical Association of America, 5th printing, 2004 Several copies of both books are available in the Computer Science library. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Audience: Although this is a Computer Science course, we encourage the participation from all students who are interested in this topic. Requirements: You should enjoy precise mathematical reasoning. You need to have passed a course on algorithms and complexity. No knowledge of game theory is required. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-1425-00L | Geometry: Combinatorics and Algorithms ![]() | W | 8 KP | 3V + 2U + 2A | B. Gärtner, E. Welzl, M. Hoffmann, M. Wettstein | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Geometric structures are useful in many areas, and there is a need to understand their structural properties, and to work with them algorithmically. The lecture addresses theoretical foundations concerning geometric structures. Central objects of interest are triangulations. We study combinatorial (Does a certain object exist?) and algorithmic questions (Can we find a certain object efficiently?) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The goal is to make students familiar with fundamental concepts, techniques and results in combinatorial and computational geometry, so as to enable them to model, analyze, and solve theoretical and practical problems in the area and in various application domains. In particular, we want to prepare students for conducting independent research, for instance, within the scope of a thesis project. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | Planar and geometric graphs, embeddings and their representation (Whitney's Theorem, canonical orderings, DCEL), polygon triangulations and the art gallery theorem, convexity in R^d, planar convex hull algorithms (Jarvis Wrap, Graham Scan, Chan's Algorithm), point set triangulations, Delaunay triangulations (Lawson flips, lifting map, randomized incremental construction), Voronoi diagrams, the Crossing Lemma and incidence bounds, line arrangements (duality, Zone Theorem, ham-sandwich cuts), 3-SUM hardness, counting planar triangulations. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | yes | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | Mark de Berg, Marc van Kreveld, Mark Overmars, Otfried Cheong, Computational Geometry: Algorithms and Applications, Springer, 3rd ed., 2008. Satyan Devadoss, Joseph O'Rourke, Discrete and Computational Geometry, Princeton University Press, 2011. Stefan Felsner, Geometric Graphs and Arrangements: Some Chapters from Combinatorial Geometry, Teubner, 2004. Jiri Matousek, Lectures on Discrete Geometry, Springer, 2002. Takao Nishizeki, Md. Saidur Rahman, Planar Graph Drawing, World Scientific, 2004. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Prerequisites: The course assumes basic knowledge of discrete mathematics and algorithms, as supplied in the first semesters of Bachelor Studies at ETH. Outlook: In the following spring semester there is a seminar "Geometry: Combinatorics and Algorithms" that builds on this course. There are ample possibilities for Semester-, Bachelor- and Master Thesis projects in the area. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-4500-00L | Advanced Algorithms ![]() Takes place for the last time. | W | 9 KP | 3V + 2U + 3A | M. Ghaffari, G. Zuzic | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | This is a graduate-level course on algorithm design (and analysis). It covers a range of topics and techniques in approximation algorithms, sketching and streaming algorithms, and online algorithms. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | This course familiarizes the students with some of the main tools and techniques in modern subareas of algorithm design. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The lectures will cover a range of topics, tentatively including the following: graph sparsifications while preserving cuts or distances, various approximation algorithms techniques and concepts, metric embeddings and probabilistic tree embeddings, online algorithms, multiplicative weight updates, streaming algorithms, sketching algorithms, and derandomization. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | https://people.inf.ethz.ch/gmohsen/AA21/ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | This course is designed for masters and doctoral students and it especially targets those interested in theoretical computer science, but it should also be accessible to last-year bachelor students. Sufficient comfort with both (A) Algorithm Design & Analysis and (B) Probability & Concentrations. E.g., having passed the course Algorithms, Probability, and Computing (APC) is highly recommended, though not required formally. If you are not sure whether you're ready for this class or not, please consult the instructor. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
401-3055-64L | Algebraic Methods in Combinatorics ![]() | W | 6 KP | 2V + 1U | B. Sudakov | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Combinatorics is a fundamental mathematical discipline as well as an essential component of many mathematical areas, and its study has experienced an impressive growth in recent years. This course provides a gentle introduction to Algebraic methods, illustrated by examples and focusing on basic ideas and connections to other areas. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The students will get an overview of various algebraic methods for solving combinatorial problems. We expect them to understand the proof techniques and to use them autonomously on related problems. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | Combinatorics is a fundamental mathematical discipline as well as an essential component of many mathematical areas, and its study has experienced an impressive growth in recent years. While in the past many of the basic combinatorial results were obtained mainly by ingenuity and detailed reasoning, the modern theory has grown out of this early stage and often relies on deep, well-developed tools. One of the main general techniques that played a crucial role in the development of Combinatorics was the application of algebraic methods. The most fruitful such tool is the dimension argument. Roughly speaking, the method can be described as follows. In order to bound the cardinality of of a discrete structure A one maps its elements to vectors in a linear space, and shows that the set A is mapped to linearly independent vectors. It then follows that the cardinality of A is bounded by the dimension of the corresponding linear space. This simple idea is surprisingly powerful and has many famous applications. This course provides a gentle introduction to Algebraic methods, illustrated by examples and focusing on basic ideas and connections to other areas. The topics covered in the class will include (but are not limited to): Basic dimension arguments, Spaces of polynomials and tensor product methods, Eigenvalues of graphs and their application, the Combinatorial Nullstellensatz and the Chevalley-Warning theorem. Applications such as: Solution of Kakeya problem in finite fields, counterexample to Borsuk's conjecture, chromatic number of the unit distance graph of Euclidean space, explicit constructions of Ramsey graphs and many others. The course website can be found at https://moodle-app2.let.ethz.ch/course/view.php?id=15757 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | Lectures will be on the blackboard only, but there will be a set of typeset lecture notes which follow the class closely. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Students are expected to have a mathematical background and should be able to write rigorous proofs. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
401-3901-00L | Linear & Combinatorial Optimization ![]() | W | 11 KP | 4V + 2U | R. Zenklusen | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Mathematical treatment of optimization techniques for linear and combinatorial optimization problems. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The goal of this course is to get a thorough understanding of various classical mathematical optimization techniques for linear and combinatorial optimization problems, with an emphasis on polyhedral approaches. In particular, we want students to develop a good understanding of some important problem classes in the field, of structural mathematical results linked to these problems, and of solution approaches based on such structural insights. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | Key topics include: - Linear programming and polyhedra; - Flows and cuts; - Combinatorial optimization problems and polyhedral techniques; - Equivalence between optimization and separation. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | - Bernhard Korte, Jens Vygen: Combinatorial Optimization. 6th edition, Springer, 2018. - Alexander Schrijver: Combinatorial Optimization: Polyhedra and Efficiency. Springer, 2003. This work has 3 volumes. - Ravindra K. Ahuja, Thomas L. Magnanti, James B. Orlin. Network Flows: Theory, Algorithms, and Applications. Prentice Hall, 1993. - Alexander Schrijver: Theory of Linear and Integer Programming. John Wiley, 1986. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Solid background in linear algebra. Former course title: Mathematical Optimization. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kompetenzen![]() |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() Den Studierenden steht das gesamte Lehrangebot auf Master Level im Gebiet der Informatik (oder einem verwandten Bereich) der ETH Zürich, der EPF Lausanne, der Universität Zürich und - nach vorgängiger Genehmigung durch den Studiendirektor - der übrigen Schweizer Universitäten zur individuellen Auswahl offen. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
252-0293-00L | Wireless Networking and Mobile Computing ![]() | W | 4 KP | 2V + 1U | S. Mangold | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | This course gives an overview about wireless standards and summarizes the state of art for Wi-Fi 802.11, Cellular 5G, and Internet-of-Things, including new topics such as contact tracing with Bluetooth, audio communication, cognitive radio, visible light communications. The course combines lectures with a set of assignments in which students are asked to work with a JAVA simulation tool. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | The objective of the course is to learn about the general principles of wireless communications, including physics, frequency spectrum regulation, and standards. Further, the most up-to-date standards and protocols used for wireless LAN IEEE 802.11, Wi-Fi, Internet-of-Things, sensor networks, cellular networks, visible light communication, and cognitive radios, are analyzed and evaluated. Students develop their own add-on mobile computing algorithms to improve the behavior of the systems, using a Java-based event-driven simulator. We also hand out embedded systems that can be used for experiments for optical communication. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | New: Starting 2020, we will address contact tracing, radio link budget, location distance measurements, and Bluetooth in more depth. Wireless Communication, Wi-Fi, Contact Tracing, Bluetooth, Internet-of-Things, 5G, Standards, Regulation, Algorithms, Radio Spectrum, Cognitive Radio, Mesh Networks, Optical Communication, Visible Light Communication | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | The course material will be made available by the lecturer. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | (1) The course webpage (look for Stefan Mangold's site) (2) The Java 802 protocol emulator "JEmula802" from https://bitbucket.org/lfield/jemula802 (3) WALKE, B. AND MANGOLD, S. AND BERLEMANN, L. (2006) IEEE 802 Wireless Systems Protocols, Multi-Hop Mesh/Relaying, Performance and Spectrum Coexistence. New York U.S.A.: John Wiley & Sons. Nov 2006. (4) BERLEMANN, L. AND MANGOLD, S. (2009) Cognitive Radio for Dynamic Spectrum Access . New York U.S.A.: John Wiley & Sons. Jan 2009. (5) MANGOLD, S. ET.AL. (2003) Analysis of IEEE 802.11e for QoS Support in Wireless LANs. IEEE Wireless Communications, vol 10 (6), 40-50. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Students should have interest in wireless communication, and should be familiar with Java programming. Experience with GNU Octave or Matlab will help too (not required). | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
263-0600-00L | Research in Computer Science ![]() ![]() Nur für Informatik MSc. | W | 5 KP | 11A | Professor/innen | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Selbständige Projektarbeit unter der Leitung eines Informatik-Professors / einer Informatik-Professorin. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | Selbständige Projektarbeit unter der Leitung eines Informatik-Professors / einer Informatik-Professorin. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Nur Studierende, die eine der folgenden Bedingungen erfüllt haben, 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. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
227-2210-00L | Computer Architecture ![]() | W | 8 KP | 6G + 1A | O. Mutlu | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kurzbeschreibung | Computer architecture is the science & art of designing and optimizing hardware components and the hardware/software interface to create a computer that meets design goals. This course covers basic components of a modern computing system (memory, processors, interconnects, accelerators). The course takes a hardware/software cooperative approach to understanding and designing computing systems. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lernziel | We will learn the fundamental concepts of the different parts of modern computing systems, as well as the latest major research topics in Industry and Academia. We will extensively cover memory systems (including DRAM and new Non-Volatile Memory technologies, memory controllers, flash memory), parallel computing systems (including multicore processors, coherence and consistency, GPUs), heterogeneous computing, processing-in-memory, interconnection networks, specialized systems for major data-intensive workloads (e.g. graph analytics, bioinformatics, machine learning), etc. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt | The principles presented in the lecture are reinforced in the laboratory through 1) the design and implementation of a cycle-accurate simulator, where we will explore different components of a modern computing system (e.g., pipeline, memory hierarchy, branch prediction, prefetching, caches, multithreading), and 2) the extension of state-of-the-art research simulators (e.g., Ramulator) for more in-depth understanding of specific system components (e.g., memory scheduling, prefetching). | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Skript | All the materials (including lecture slides) will be provided on the course website: https://safari.ethz.ch/architecture/ The video recordings of the lectures are expected to be made available after lectures. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Literatur | We will provide required and recommended readings in every lecture. They will mainly consist of research papers presented in major Computer Architecture and related conferences and journals. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Digital Design and Computer Architecture. |