# Search result: Catalogue data in Spring Semester 2020

Cyber Security Master | ||||||

Field of Specialization | ||||||

Core Courses | ||||||

Number | Title | Type | ECTS | Hours | Lecturers | |
---|---|---|---|---|---|---|

263-4660-00L | Applied Cryptography Number of participants limited to 150. | W | 8 credits | 3V + 2U + 2P | K. Paterson | |

Abstract | This course will introduce the basic primitives of cryptography, using rigorous syntax and game-based security definitions. The course will show how these primitives can be combined to build cryptographic protocols and systems. | |||||

Objective | The goal of the course is to put students' understanding of cryptography on sound foundations, to enable them to start to build well-designed cryptographic systems, and to expose them to some of the pitfalls that arise when doing so. | |||||

Content | Basic symmetric primitives (block ciphers, modes, hash functions); generic composition; AEAD; basic secure channels; basic public key primitives (encryption,signature, DH key exchange); ECC; randomness; applications. | |||||

Literature | Textbook: Boneh and Shoup, “A Graduate Course in Applied Cryptography”, https://crypto.stanford.edu/~dabo/cryptobook/BonehShoup_0_4.pdf. | |||||

Prerequisites / Notice | Ideally, students will have taken the D-INFK Bachelors course “Information Security" or an equivalent course at Bachelors level. | |||||

Electives | ||||||

Number | Title | Type | ECTS | Hours | Lecturers | |

252-0408-00L | Cryptographic Protocols | W | 6 credits | 2V + 2U + 1A | M. Hirt, U. Maurer | |

Abstract | The course presents a selection of hot research topics in cryptography. The choice of topics varies and may include provable security, interactive proofs, zero-knowledge protocols, secret sharing, secure multi-party computation, e-voting, etc. | |||||

Objective | Indroduction to a very active research area with many gems and paradoxical results. Spark interest in fundamental problems. | |||||

Content | The course presents a selection of hot research topics in cryptography. The choice of topics varies and may include provable security, interactive proofs, zero-knowledge protocols, secret sharing, secure multi-party computation, e-voting, etc. | |||||

Lecture notes | the lecture notes are in German, but they are not required as the entire course material is documented also in other course material (in english). | |||||

Prerequisites / Notice | A basic understanding of fundamental cryptographic concepts (as taught for example in the course Information Security or in the course Cryptography Foundations) is useful, but not required. | |||||

263-2925-00L | Program Analysis for System Security and Reliability | W | 6 credits | 2V + 1U + 2A | P. Tsankov | |

Abstract | Security issues in modern systems (blockchains, datacenters, AI) result in billions of losses due to hacks. This course introduces the security issues in modern systems and state-of-the-art automated techniques for building secure and reliable systems. The course has a practical focus and covers systems built by successful ETH spin-offs. | |||||

Objective | * Learn about security issues in modern systems -- blockchains, smart contracts, AI-based systems (e.g., autonomous cars), data centers -- and why they are challenging to address. * Understand how the latest automated analysis techniques work, both discrete and probabilistic. * Understand how these techniques combine with machine-learning methods, both supervised and unsupervised. * Understand how to use these methods to build reliable and secure modern systems. * Learn about new open problems that if solved can lead to research and commercial impact. | |||||

Content | Part I: Security of Blockchains - We will cover existing blockchains (e.g., Ethereum, Bitcoin), how they work, what the core security issues are, and how these have led to massive financial losses. - We will show how to extract useful information about smart contracts and transactions using interactive analysis frameworks for querying blockchains (e.g. Google's Ethereum BigQuery). - We will discuss the state-of-the-art security tools (e.g., https://securify.ch) for ensuring that smart contracts are free of security vulnerabilities. - We will study the latest automated reasoning systems (e.g., https://verx.ch) for checking custom (temporal) properties of smart contracts and illustrate their operation on real-world use cases. - We will study the underlying methods for automated reasoning and testing (e.g., abstract interpretation, symbolic execution, fuzzing) are used to build such tools. Part II: Security of Datacenters and Networks - We will show how to ensure that datacenters and ISPs are secured using declarative reasoning methods (e.g., Datalog). We will also see how to automatically synthesize secure configurations (e.g. using SyNET and NetComplete) which lead to desirable behaviors, thus automating the job of the network operator and avoiding critical errors. - We will discuss how to apply modern discrete probabilistic inference (e.g., PSI and Bayonet) so to reason about probabilistic network properties (e.g., the probability of a packet reaching a destination if links fail). Part III: Machine Learning for Security - We will discuss how machine learning models for structured prediction are used to address security tasks, including de-obfuscation of binaries (Debin: https://debin.ai), Android APKs (DeGuard: http://apk-deguard.com) and JavaScript (JSNice: http://jsnice.org). - We will study to leverage program abstractions in combination with clustering techniques to learn security rules for cryptography APIs from large codebases. - We will study how to automatically learn to identify security vulnerabilities related to the handling of untrusted inputs (cross-Site scripting, SQL injection, path traversal, remote code execution) from large codebases. To gain a deeper understanding, the course will involve a hands-on programming project where the methods studied in the class will be applied. | |||||

263-4600-00L | Formal Methods for Information Security | W | 5 credits | 2V + 1U + 1A | R. Sasse, C. Sprenger | |

Abstract | The course focuses on formal methods for the modelling and analysis of security protocols for critical systems, ranging from authentication protocols for network security to electronic voting protocols and online banking. | |||||

Objective | The students will learn the key ideas and theoretical foundations of formal modelling and analysis of security protocols. The students will complement their theoretical knowledge by solving practical exercises, completing a small project, and using state-of-the-art tools. | |||||

Content | The course treats formal methods mainly for the modelling and analysis of security protocols. Cryptographic protocols (such as SSL/TLS, SSH, Kerberos, SAML single-sign on, and IPSec) form the basis for secure communication and business processes. Numerous attacks on published protocols show that the design of cryptographic protocols is extremely error-prone. A rigorous analysis of these protocols is therefore indispensable, and manual analysis is insufficient. The lectures cover the theoretical basis for the (tool-supported) formal modeling and analysis of such protocols. Specifically, we discuss their operational semantics, the formalization of security properties, and techniques and algorithms for their verification. In addition to the classical security properties for confidentiality and authentication, we will study strong secrecy and privacy properties. We will discuss electronic voting protocols, and RFID protocols (a staple of the Internet of Things), where these properties are central. The accompanying tutorials provide an opportunity to apply the theory and tools to concrete protocols. Moreover, we will discuss methods to abstract and refine security protocols and the link between symbolic protocol models and cryptographic models. Furthermore, we will also present a security notion for general systems based on non-interference as well as language-based information flow security where non-interference is enforced via a type system. | |||||

263-4656-00L | Digital Signatures | W | 4 credits | 2V + 1A | D. Hofheinz | |

Abstract | Digital signatures as one central cryptographic building block. Different security goals and security definitions for digital signatures, followed by a variety of popular and fundamental signature schemes with their security analyses. | |||||

Objective | The student knows a variety of techniques to construct and analyze the security of digital signature schemes. This includes modularity as a central tool of constructing secure schemes, and reductions as a central tool to proving the security of schemes. | |||||

Content | We will start with several definitions of security for signature schemes, and investigate the relations among them. We will proceed to generic (but inefficient) constructions of secure signatures, and then move on to a number of efficient schemes based on concrete computational hardness assumptions. On the way, we will get to know paradigms such as hash-then-sign, one-time signatures, and chameleon hashing as central tools to construct secure signatures. | |||||

Literature | Jonathan Katz, "Digital Signatures." | |||||

Prerequisites / Notice | Ideally, students will have taken the D-INFK Bachelors course "Information Security" or an equivalent course at Bachelors level. | |||||

Seminar | ||||||

Number | Title | Type | ECTS | Hours | Lecturers | |

263-4651-00L | Current Topics in Cryptography 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 credits | 2S | D. Hofheinz, U. Maurer, K. Paterson | |

Abstract | In this seminar course, students present and discuss a variety of recent research papers in Cryptography. | |||||

Objective | Independent study of scientific literature and assessment of its contributions as well as learning and practicing presentation techniques. | |||||

Content | The course lecturers will provide a list of papers from which students will select. | |||||

Literature | The reading list will be published on the course website. | |||||

Prerequisites / Notice | Ideally, students will have taken the D-INFK Bachelors course “Information Security" or an equivalent course at Bachelors level. Ideally, they will have attended or will attend in parallel the Masters course in "Applied Cryptography”. | |||||

Semester Project | ||||||

Number | Title | Type | ECTS | Hours | Lecturers | |

260-0100-00L | Semester ProjectOnly for Cyber Security MSc | W | 12 credits | 26A | Professors | |

Abstract | The Semester Project provides students with the opportunity to apply acquired knowledge and skills. | |||||

Objective | The students can gain hand-on experience by solving independently a technical-scientific problem. | |||||

Prerequisites / Notice | Prerequisites: At least one core course in Cyber Security and one inter focus course must have been completed successfully. | |||||

Minor | ||||||

Computational Science | ||||||

Core Courses | ||||||

Number | Title | Type | ECTS | Hours | Lecturers | |

401-3632-00L | Computational Statistics | W | 8 credits | 3V + 1U | M. H. Maathuis | |

Abstract | We discuss modern statistical methods for data analysis, including methods for data exploration, prediction and inference. We pay attention to algorithmic aspects, theoretical properties and practical considerations. The class is hands-on and methods are applied using the statistical programming language R. | |||||

Objective | The student obtains an overview of modern statistical methods for data analysis, including their algorithmic aspects and theoretical properties. The methods are applied using the statistical programming language R. | |||||

Content | See the class website | |||||

Prerequisites / Notice | At least one semester of (basic) probability and statistics. Programming experience is helpful but not required. | |||||

Electives | ||||||

Number | Title | Type | ECTS | Hours | Lecturers | |

252-0526-00L | Statistical Learning Theory | W | 7 credits | 3V + 2U + 1A | J. M. Buhmann, C. Cotrini Jimenez | |

Abstract | The course covers advanced methods of statistical learning: - Variational methods and optimization. - Deterministic annealing. - Clustering for diverse types of data. - Model validation by information theory. | |||||

Objective | The course surveys recent methods of statistical learning. The fundamentals of machine learning, as presented in the courses "Introduction to Machine Learning" and "Advanced Machine Learning", are expanded from the perspective of statistical learning. | |||||

Content | - Variational methods and optimization. We consider optimization approaches for problems where the optimizer is a probability distribution. We will discuss concepts like maximum entropy, information bottleneck, and deterministic annealing. - Clustering. This is the problem of sorting data into groups without using training samples. We discuss alternative notions of "similarity" between data points and adequate optimization procedures. - Model selection and validation. This refers to the question of how complex the chosen model should be. In particular, we present an information theoretic approach for model validation. - Statistical physics models. We discuss approaches for approximately optimizing large systems, which originate in statistical physics (free energy minimization applied to spin glasses and other models). We also study sampling methods based on these models. | |||||

Lecture notes | A draft of a script will be provided. Lecture slides will be made available. | |||||

Literature | Hastie, Tibshirani, Friedman: The Elements of Statistical Learning, Springer, 2001. L. Devroye, L. Gyorfi, and G. Lugosi: A probabilistic theory of pattern recognition. Springer, New York, 1996 | |||||

Prerequisites / Notice | Knowledge of machine learning (introduction to machine learning and/or advanced machine learning) Basic knowledge of statistics. | |||||

261-5120-00L | Machine Learning for Health Care Number of participants limited to 150. | W | 5 credits | 3P + 1A | G. Rätsch, J. Vogt, V. Boeva | |

Abstract | The course will review the most relevant methods and applications of Machine Learning in Biomedicine, discuss the main challenges they present and their current technical problems. | |||||

Objective | During the last years, we have observed a rapid growth in the field of Machine Learning (ML), mainly due to improvements in ML algorithms, the increase of data availability and a reduction in computing costs. This growth is having a profound impact in biomedical applications, where the great variety of tasks and data types enables us to get benefit of ML algorithms in many different ways. In this course we will review the most relevant methods and applications of ML in biomedicine, discuss the main challenges they present and their current technical solutions. | |||||

Content | The course will consist of four topic clusters that will cover the most relevant applications of ML in Biomedicine: 1) Structured time series: Temporal time series of structured data often appear in biomedical datasets, presenting challenges as containing variables with different periodicities, being conditioned by static data, etc. 2) Medical notes: Vast amount of medical observations are stored in the form of free text, we will analyze stategies for extracting knowledge from them. 3) Medical images: Images are a fundamental piece of information in many medical disciplines. We will study how to train ML algorithms with them. 4) Genomics data: ML in genomics is still an emerging subfield, but given that genomics data are arguably the most extensive and complex datasets that can be found in biomedicine, it is expected that many relevant ML applications will arise in the near future. We will review and discuss current applications and challenges. | |||||

Prerequisites / Notice | Data Structures & Algorithms, Introduction to Machine Learning, Statistics/Probability, Programming in Python, Unix Command Line Relation to Course 261-5100-00 Computational Biomedicine: This course is a continuation of the previous course with new topics related to medical data and machine learning. The format of Computational Biomedicine II will also be different. It is helpful but not essential to attend Computational Biomedicine before attending Computational Biomedicine II. | |||||

263-5300-00L | Guarantees for Machine Learning | W | 5 credits | 2V + 2A | F. Yang | |

Abstract | This course teaches classical and recent methods in statistics and optimization commonly used to prove theoretical guarantees for machine learning algorithms. The knowledge is then applied in project work that focuses on understanding phenomena in modern machine learning. | |||||

Objective | This course is aimed at advanced master and doctorate students who want to understand and/or conduct independent research on theory for modern machine learning. For this purpose, students will learn common mathematical techniques from statistical learning theory. In independent project work, they then apply their knowledge and go through the process of critically questioning recently published work, finding relevant research questions and learning how to effectively present research ideas to a professional audience. | |||||

Content | This course teaches some classical and recent methods in statistical learning theory aimed at proving theoretical guarantees for machine learning algorithms, including topics in - concentration bounds, uniform convergence - high-dimensional statistics (e.g. Lasso) - prediction error bounds for non-parametric statistics (e.g. in kernel spaces) - minimax lower bounds - regularization via optimization The project work focuses on active theoretical ML research that aims to understand modern phenomena in machine learning, including but not limited to - how overparameterization could help generalization ( interpolating models, linearized NN ) - how overparameterization could help optimization ( non-convex optimization, loss landscape ) - complexity measures and approximation theoretic properties of randomly initialized and trained NN - generalization of robust learning ( adversarial robustness, standard and robust error tradeoff ) - prediction with calibrated confidence ( conformal prediction, calibration ) | |||||

Prerequisites / Notice | It’s absolutely necessary for students to have a strong mathematical background (basic real analysis, probability theory, linear algebra) and good knowledge of core concepts in machine learning taught in courses such as “Introduction to Machine Learning”, “Regression”/ “Statistical Modelling”. It's also helpful to have heard an optimization course or approximation theoretic course. In addition to these prerequisites, this class requires a certain degree of mathematical maturity—including abstract thinking and the ability to understand and write proofs. | |||||

Distributed Systems | ||||||

Core Courses | ||||||

Number | Title | Type | ECTS | Hours | Lecturers | |

227-0558-00L | Principles of Distributed Computing | W | 7 credits | 2V + 2U + 2A | R. Wattenhofer, M. Ghaffari | |

Abstract | We study the fundamental issues underlying the design of distributed systems: communication, coordination, fault-tolerance, locality, parallelism, self-organization, symmetry breaking, synchronization, uncertainty. We explore essential algorithmic ideas and lower bound techniques. | |||||

Objective | Distributed computing is essential in modern computing and communications systems. Examples are on the one hand large-scale networks such as the Internet, and on the other hand multiprocessors such as your new multi-core laptop. This course introduces the principles of distributed computing, emphasizing the fundamental issues underlying the design of distributed systems and networks: communication, coordination, fault-tolerance, locality, parallelism, self-organization, symmetry breaking, synchronization, uncertainty. We explore essential algorithmic ideas and lower bound techniques, basically the "pearls" of distributed computing. We will cover a fresh topic every week. | |||||

Content | Distributed computing models and paradigms, e.g. message passing, shared memory, synchronous vs. asynchronous systems, time and message complexity, peer-to-peer systems, small-world networks, social networks, sorting networks, wireless communication, and self-organizing systems. Distributed algorithms, e.g. leader election, coloring, covering, packing, decomposition, spanning trees, mutual exclusion, store and collect, arrow, ivy, synchronizers, diameter, all-pairs-shortest-path, wake-up, and lower bounds | |||||

Lecture notes | Available. Our course script is used at dozens of other universities around the world. | |||||

Literature | Lecture Notes By Roger Wattenhofer. These lecture notes are taught at about a dozen different universities through the world. Distributed Computing: Fundamentals, Simulations and Advanced Topics Hagit Attiya, Jennifer Welch. McGraw-Hill Publishing, 1998, ISBN 0-07-709352 6 Introduction to Algorithms Thomas Cormen, Charles Leiserson, Ronald Rivest. The MIT Press, 1998, ISBN 0-262-53091-0 oder 0-262-03141-8 Disseminatin of Information in Communication Networks Juraj Hromkovic, Ralf Klasing, Andrzej Pelc, Peter Ruzicka, Walter Unger. Springer-Verlag, Berlin Heidelberg, 2005, ISBN 3-540-00846-2 Introduction to Parallel Algorithms and Architectures: Arrays, Trees, Hypercubes Frank Thomson Leighton. Morgan Kaufmann Publishers Inc., San Francisco, CA, 1991, ISBN 1-55860-117-1 Distributed Computing: A Locality-Sensitive Approach David Peleg. Society for Industrial and Applied Mathematics (SIAM), 2000, ISBN 0-89871-464-8 | |||||

Prerequisites / Notice | Course pre-requisites: Interest in algorithmic problems. (No particular course needed.) | |||||

263-3800-00L | Advanced Operating Systems | W | 7 credits | 2V + 2U + 2A | D. Cock, T. Roscoe | |

Abstract | This course is intended to give students a thorough understanding of design and implementation issues for modern operating systems, with a particular emphasis on the challenges of modern hardware features. We will cover key design issues in implementing an operating system, such as memory management, scheduling, protection, inter-process communication, device drivers, and file systems. | |||||

Objective | The goals of the course are, firstly, to give students: 1. A broader perspective on OS design than that provided by knowledge of Unix or Windows, building on the material in a standard undergraduate operating systems class 2. Practical experience in dealing directly with the concurrency, resource management, and abstraction problems confronting OS designers and implementers 3. A glimpse into future directions for the evolution of OS and computer hardware design | |||||

Content | The course is based on practical implementation work, in C and assembly language, and requires solid knowledge of both. The work is mostly carried out in teams of 3-4, using real hardware, and is a mixture of team milestones and individual projects which fit together into a complete system at the end. Emphasis is also placed on a final report which details the complete finished artifact, evaluates its performance, and discusses the choices the team made while building it. | |||||

Prerequisites / Notice | The course is based around a milestone-oriented project, where students work in small groups to implement major components of a microkernel-based operating system. The final assessment will be a combination grades awarded for milestones during the course of the project, a final written report on the work, and a set of test cases run on the final code. | |||||

Elective Courses | ||||||

Number | Title | Type | ECTS | Hours | Lecturers | |

252-0312-00L | Ubiquitous Computing | W | 4 credits | 2V + 1A | C. Holz, F. Mattern, S. Mayer | |

Abstract | Unlike desktop computing, ubiquitous computing occurs anytime and everywhere, using any device, in any location, and in any format. Computers exist in different forms, from watches and phones to refrigerators or pairs of glasses. Main topics: Smart environments, IoT, mobiles & wearables, context & location, sensing & tracking, computer vision on embedded systems, health monitoring, fabrication. | |||||

Objective | Unlike desktop computing, ubiquitous computing occurs anytime and everywhere, using any device, in any location, and in any format. Computers exist in different forms, from watches and phones to refrigerators or pairs of glasses. Main topics: Smart environments, IoT, mobiles & wearables, context & location, sensing & tracking, computer vision on embedded systems, health monitoring, fabrication. | |||||

Lecture notes | Copies of slides will be made available | |||||

Literature | Will be provided in the lecture. To put you in the mood: Mark Weiser: The Computer for the 21st Century. Scientific American, September 1991, pp. 94-104 | |||||

252-0437-00L | Distributed Algorithms | W | 5 credits | 3V + 1A | F. Mattern | |

Abstract | Models of distributed computations, time space diagrams, virtual time, logical clocks and causality, wave algorithms, parallel and distributed graph traversal, consistent snapshots, mutual exclusion, election and symmetry breaking, distributed termination detection, garbage collection in distributed systems, monitoring distributed systems, global predicates. | |||||

Objective | Become acquainted with models and algorithms for distributed systems. | |||||

Content | Verteilte Algorithmen sind Verfahren, die dadurch charakterisiert sind, dass mehrere autonome Prozesse gleichzeitig Teile eines gemeinsamen Problems in kooperativer Weise bearbeiten und der dabei erforderliche Informationsaustausch ausschliesslich über Nachrichten erfolgt. Derartige Algorithmen kommen im Rahmen verteilter Systeme zum Einsatz, bei denen kein gemeinsamer Speicher existiert und die Übertragungszeit von Nachrichten i.a. nicht vernachlässigt werden kann. Da dabei kein Prozess eine aktuelle konsistente Sicht des globalen Zustands besitzt, führt dies zu interessanten Problemen. Im einzelnen werden u.a. folgende Themen behandelt: Modelle verteilter Berechnungen; Raum-Zeit Diagramme; Virtuelle Zeit; Logische Uhren und Kausalität; Wellenalgorithmen; Verteilte und parallele Graphtraversierung; Berechnung konsistenter Schnappschüsse; Wechselseitiger Ausschluss; Election und Symmetriebrechung; Verteilte Terminierung; Garbage-Collection in verteilten Systemen; Beobachten verteilter Systeme; Berechnung globaler Prädikate. | |||||

Literature | - F. Mattern: Verteilte Basisalgorithmen, Springer-Verlag - G. Tel: Topics in Distributed Algorithms, Cambridge University Press - G. Tel: Introduction to Distributed Algorithms, Cambridge University Press, 2nd edition - A.D. Kshemkalyani, M. Singhal: Distributed Computing, Cambridge University Press - N. Lynch: Distributed Algorithms, Morgan Kaufmann Publ | |||||

252-0817-00L | Distributed Systems Laboratory In the Master Programme max. 10 credits can be accounted by Labs on top of the Interfocus Courses. Additional Labs will be listed on the Addendum. | W | 10 credits | 9P | G. Alonso, T. Hoefler, F. Mattern, A. Singla, R. Wattenhofer, C. Zhang | |

Abstract | 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 mobile phones. | |||||

Objective | Students acquire practical knowledge about technologies from the area of distributed systems. | |||||

Content | 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 mobile phones. The objecte 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. For information of the course or projects available, please contact Prof. Mattern, Prof. Wattenhofer, Prof. Roscoe or Prof. G. Alonso. | |||||

263-3710-00L | Machine Perception Number of participants limited to 200. | W | 5 credits | 2V + 1U + 1A | O. Hilliges | |

Abstract | Recent developments in neural networks (aka “deep learning”) have drastically advanced the performance of machine perception systems in a variety of areas including computer vision, robotics, and intelligent UIs. This course is a deep dive into deep learning algorithms and architectures with applications to a variety of perceptual tasks. | |||||

Objective | Students will learn about fundamental aspects of modern deep learning approaches for perception. Students will learn to implement, train and debug their own neural networks and gain a detailed understanding of cutting-edge research in learning-based computer vision, robotics and HCI. The final project assignment will involve training a complex neural network architecture and applying it on a real-world dataset of human activity. The core competency acquired through this course is a solid foundation in deep-learning algorithms to process and interpret human input into computing systems. In particular, students should be able to develop systems that deal with the problem of recognizing people in images, detecting and describing body parts, inferring their spatial configuration, performing action/gesture recognition from still images or image sequences, also considering multi-modal data, among others. | |||||

Content | We will focus on teaching: how to set up the problem of machine perception, the learning algorithms, network architectures and advanced deep learning concepts in particular probabilistic deep learning models The course covers the following main areas: I) Foundations of deep-learning. II) Probabilistic deep-learning for generative modelling of data (latent variable models, generative adversarial networks and auto-regressive models). III) Deep learning in computer vision, human-computer interaction and robotics. Specific topics include: I) Deep learning basics: a) Neural Networks and training (i.e., backpropagation) b) Feedforward Networks c) Timeseries modelling (RNN, GRU, LSTM) d) Convolutional Neural Networks for classification II) Probabilistic Deep Learning: a) Latent variable models (VAEs) b) Generative adversarial networks (GANs) c) Autoregressive models (PixelCNN, PixelRNN, TCNs) III) Deep Learning techniques for machine perception: a) Fully Convolutional architectures for dense per-pixel tasks (i.e., instance segmentation) b) Pose estimation and other tasks involving human activity c) Deep reinforcement learning IV) Case studies from research in computer vision, HCI, robotics and signal processing | |||||

Literature | Deep Learning Book by Ian Goodfellow and Yoshua Bengio | |||||

Prerequisites / Notice | This is an advanced grad-level course that requires a background in machine learning. Students are expected to have a solid mathematical foundation, in particular in linear algebra, multivariate calculus, and probability. The course will focus on state-of-the-art research in deep-learning and will not repeat basics of machine learning Please take note of the following conditions: 1) The number of participants is limited to 200 students (MSc and PhDs). 2) Students must have taken the exam in Machine Learning (252-0535-00) or have acquired equivalent knowledge 3) All practical exercises will require basic knowledge of Python and will use libraries such as TensorFlow, scikit-learn and scikit-image. We will provide introductions to TensorFlow and other libraries that are needed but will not provide introductions to basic programming or Python. The following courses are strongly recommended as prerequisite: * "Visual Computing" or "Computer Vision" The course will be assessed by a final written examination in English. No course materials or electronic devices can be used during the examination. Note that the examination will be based on the contents of the lectures, the associated reading materials and the exercises. | |||||

Information Systems | ||||||

Core Courses | ||||||

Number | Title | Type | ECTS | Hours | Lecturers | |

263-2925-00L | Program Analysis for System Security and Reliability | W | 6 credits | 2V + 1U + 2A | P. Tsankov | |

Abstract | Security issues in modern systems (blockchains, datacenters, AI) result in billions of losses due to hacks. This course introduces the security issues in modern systems and state-of-the-art automated techniques for building secure and reliable systems. The course has a practical focus and covers systems built by successful ETH spin-offs. | |||||

Objective | * Learn about security issues in modern systems -- blockchains, smart contracts, AI-based systems (e.g., autonomous cars), data centers -- and why they are challenging to address. * Understand how the latest automated analysis techniques work, both discrete and probabilistic. * Understand how these techniques combine with machine-learning methods, both supervised and unsupervised. * Understand how to use these methods to build reliable and secure modern systems. * Learn about new open problems that if solved can lead to research and commercial impact. | |||||

Content | Part I: Security of Blockchains - We will cover existing blockchains (e.g., Ethereum, Bitcoin), how they work, what the core security issues are, and how these have led to massive financial losses. - We will show how to extract useful information about smart contracts and transactions using interactive analysis frameworks for querying blockchains (e.g. Google's Ethereum BigQuery). - We will discuss the state-of-the-art security tools (e.g., https://securify.ch) for ensuring that smart contracts are free of security vulnerabilities. - We will study the latest automated reasoning systems (e.g., https://verx.ch) for checking custom (temporal) properties of smart contracts and illustrate their operation on real-world use cases. - We will study the underlying methods for automated reasoning and testing (e.g., abstract interpretation, symbolic execution, fuzzing) are used to build such tools. Part II: Security of Datacenters and Networks - We will show how to ensure that datacenters and ISPs are secured using declarative reasoning methods (e.g., Datalog). We will also see how to automatically synthesize secure configurations (e.g. using SyNET and NetComplete) which lead to desirable behaviors, thus automating the job of the network operator and avoiding critical errors. - We will discuss how to apply modern discrete probabilistic inference (e.g., PSI and Bayonet) so to reason about probabilistic network properties (e.g., the probability of a packet reaching a destination if links fail). Part III: Machine Learning for Security - We will discuss how machine learning models for structured prediction are used to address security tasks, including de-obfuscation of binaries (Debin: https://debin.ai), Android APKs (DeGuard: http://apk-deguard.com) and JavaScript (JSNice: http://jsnice.org). - We will study to leverage program abstractions in combination with clustering techniques to learn security rules for cryptography APIs from large codebases. - We will study how to automatically learn to identify security vulnerabilities related to the handling of untrusted inputs (cross-Site scripting, SQL injection, path traversal, remote code execution) from large codebases. To gain a deeper understanding, the course will involve a hands-on programming project where the methods studied in the class will be applied. | |||||

Elective Courses | ||||||

Number | Title | Type | ECTS | Hours | Lecturers | |

252-0312-00L | Ubiquitous Computing | W | 4 credits | 2V + 1A | C. Holz, F. Mattern, S. Mayer | |

Abstract | Unlike desktop computing, ubiquitous computing occurs anytime and everywhere, using any device, in any location, and in any format. Computers exist in different forms, from watches and phones to refrigerators or pairs of glasses. Main topics: Smart environments, IoT, mobiles & wearables, context & location, sensing & tracking, computer vision on embedded systems, health monitoring, fabrication. | |||||

Objective | Unlike desktop computing, ubiquitous computing occurs anytime and everywhere, using any device, in any location, and in any format. Computers exist in different forms, from watches and phones to refrigerators or pairs of glasses. Main topics: Smart environments, IoT, mobiles & wearables, context & location, sensing & tracking, computer vision on embedded systems, health monitoring, fabrication. | |||||

Lecture notes | Copies of slides will be made available | |||||

Literature | Will be provided in the lecture. To put you in the mood: Mark Weiser: The Computer for the 21st Century. Scientific American, September 1991, pp. 94-104 | |||||

Software Engineering | ||||||

Core Courses | ||||||

Number | Title | Type | ECTS | Hours | Lecturers | |

263-2925-00L | Program Analysis for System Security and Reliability | W | 6 credits | 2V + 1U + 2A | P. Tsankov | |

Abstract | Security issues in modern systems (blockchains, datacenters, AI) result in billions of losses due to hacks. This course introduces the security issues in modern systems and state-of-the-art automated techniques for building secure and reliable systems. The course has a practical focus and covers systems built by successful ETH spin-offs. | |||||

Objective | * Learn about security issues in modern systems -- blockchains, smart contracts, AI-based systems (e.g., autonomous cars), data centers -- and why they are challenging to address. * Understand how the latest automated analysis techniques work, both discrete and probabilistic. * Understand how these techniques combine with machine-learning methods, both supervised and unsupervised. * Understand how to use these methods to build reliable and secure modern systems. * Learn about new open problems that if solved can lead to research and commercial impact. | |||||

Content | Part I: Security of Blockchains - We will cover existing blockchains (e.g., Ethereum, Bitcoin), how they work, what the core security issues are, and how these have led to massive financial losses. - We will show how to extract useful information about smart contracts and transactions using interactive analysis frameworks for querying blockchains (e.g. Google's Ethereum BigQuery). - We will discuss the state-of-the-art security tools (e.g., https://securify.ch) for ensuring that smart contracts are free of security vulnerabilities. - We will study the latest automated reasoning systems (e.g., https://verx.ch) for checking custom (temporal) properties of smart contracts and illustrate their operation on real-world use cases. - We will study the underlying methods for automated reasoning and testing (e.g., abstract interpretation, symbolic execution, fuzzing) are used to build such tools. Part II: Security of Datacenters and Networks - We will show how to ensure that datacenters and ISPs are secured using declarative reasoning methods (e.g., Datalog). We will also see how to automatically synthesize secure configurations (e.g. using SyNET and NetComplete) which lead to desirable behaviors, thus automating the job of the network operator and avoiding critical errors. - We will discuss how to apply modern discrete probabilistic inference (e.g., PSI and Bayonet) so to reason about probabilistic network properties (e.g., the probability of a packet reaching a destination if links fail). Part III: Machine Learning for Security - We will discuss how machine learning models for structured prediction are used to address security tasks, including de-obfuscation of binaries (Debin: https://debin.ai), Android APKs (DeGuard: http://apk-deguard.com) and JavaScript (JSNice: http://jsnice.org). - We will study to leverage program abstractions in combination with clustering techniques to learn security rules for cryptography APIs from large codebases. - We will study how to automatically learn to identify security vulnerabilities related to the handling of untrusted inputs (cross-Site scripting, SQL injection, path traversal, remote code execution) from large codebases. To gain a deeper understanding, the course will involve a hands-on programming project where the methods studied in the class will be applied. |

- Page 1 of 3 All