Search result: Catalogue data in Spring Semester 2019
|Computer Science Master|
|Focus Courses General Studies|
|Core Focus Courses General Studies|
|252-0407-00L||Cryptography Foundations |
Takes place the last time in this form.
|W||7 credits||3V + 2U + 1A||U. Maurer|
|Abstract||Fundamentals and applications of cryptography. Cryptography as a mathematical discipline: reductions, constructive cryptography paradigm, security proofs. The discussed primitives include cryptographic functions, pseudo-randomness, symmetric encryption and authentication, public-key encryption, key agreement, and digital signature schemes. Selected cryptanalytic techniques.|
|Objective||The goals are:|
(1) understand the basic theoretical concepts and scientific thinking in cryptography;
(2) understand and apply some core cryptographic techniques and security proof methods;
(3) be prepared and motivated to access the scientific literature and attend specialized courses in cryptography.
|Content||See course description.|
|Prerequisites / Notice||Familiarity with the basic cryptographic concepts as treated for|
example in the course "Information Security" is required but can
in principle also be acquired in parallel to attending the course.
|252-0538-00L||Shape Modeling and Geometry Processing||W||5 credits||2V + 1U + 1A||O. Sorkine Hornung|
|Abstract||This course covers some of the latest developments in geometric modeling and digital geometry processing. Topics include surface modeling based on polygonal meshes, mesh generation, surface reconstruction, mesh fairing and simplification, discrete differential geometry, interactive shape editing, topics in digital shape fabrication.|
|Objective||The students will learn how to design, program and analyze algorithms and systems for interactive 3D shape modeling and digital geometry processing.|
|Content||Recent advances in 3D digital geometry processing have created a plenitude of novel concepts for the mathematical representation and interactive manipulation of geometric models. This course covers some of the latest developments in geometric modeling and digital geometry processing. Topics include surface modeling based on triangle meshes, mesh generation, surface reconstruction, mesh fairing and simplification, discrete differential geometry, interactive shape editing and digital shape fabrication.|
|Lecture notes||Slides and course notes|
|Prerequisites / Notice||Prerequisites:|
Visual Computing, Computer Graphics or an equivalent class. Experience with C++ programming. Solid background in linear algebra and analysis. Some knowledge of differential geometry, computational geometry and numerical methods is helpful but not a strict requirement.
|261-5110-00L||Optimization for Data Science||W||8 credits||3V + 2U + 2A||B. Gärtner, D. Steurer|
|Abstract||This course teaches an overview of modern optimization methods, with applications in particular for machine learning and data science.|
|Objective||Understanding the theoretical and practical aspects of relevant optimization methods used in data science. Learning general paradigms to deal with optimization problems arising in data science.|
|Content||This course teaches an overview of modern optimization methods, with applications in particular for machine learning and data science.|
In the first part of the course, we will discuss how classical first and second order methods such as gradient descent and Newton's method can be adapated to scale to large datasets, in theory and in practice. We also cover some new algorithms and paradigms that have been developed specifically in the context of data science. The emphasis is not so much on the application of these methods (many of which are covered in other courses), but on understanding and analyzing the methods themselves.
In the second part, we discuss convex programming relaxations as a powerful and versatile paradigm for designing efficient algorithms to solve computational problems arising in data science. We will learn about this paradigm and develop a unified perspective on it through the lens of the sum-of-squares semidefinite programming hierarchy. As applications, we are discussing non-negative matrix factorization, compressed sensing and sparse linear regression, matrix completion and phase retrieval, as well as robust estimation.
|Prerequisites / Notice||As background, we require material taught in the course "252-0209-00L Algorithms, Probability, and Computing". It is not necessary that participants have actually taken the course, but they should be prepared to catch up if necessary.|
|263-2300-00L||How To Write Fast Numerical Code |
Number of participants limited to 84.
Prerequisite: Master student, solid C programming skills.
Takes place the last time in this form.
|W||6 credits||3V + 2U||M. Püschel|
|Abstract||This course introduces the student to the foundations and state-of-the-art techniques in developing high performance software for mathematical functionality such as matrix operations, transforms, and others. The focus is on optimizing for a single core. This includes optimizing for the memory hierarchy, for special instruction sets, and the possible use of automatic performance tuning.|
|Objective||Software performance (i.e., runtime) arises through the complex interaction of algorithm, its implementation, the compiler used, and the microarchitecture the program is run on. The first goal of the course is to provide the student with an understanding of this "vertical" interaction, and hence software performance, for mathematical functionality. The second goal is to teach a systematic strategy how to use this knowledge to write fast software for numerical problems. This strategy will be trained in several homeworks and a semester-long group project.|
|Content||The fast evolution and increasing complexity of computing platforms pose a major challenge for developers of high performance software for engineering, science, and consumer applications: it becomes increasingly harder to harness the available computing power. Straightforward implementations may lose as much as one or two orders of magnitude in performance. On the other hand, creating optimal implementations requires the developer to have an understanding of algorithms, capabilities and limitations of compilers, and the target platform's architecture and microarchitecture. |
This interdisciplinary course introduces the student to the foundations and state-of-the-art techniques in high performance mathematical software development using important functionality such as matrix operations, transforms, filters, and others as examples. The course will explain how to optimize for the memory hierarchy, take advantage of special instruction sets, and other details of current processors that require optimization. The concept of automatic performance tuning is introduced. The focus is on optimization for a single core; thus, the course complements others on parallel and distributed computing.
Finally a general strategy for performance analysis and optimization is introduced that the students will apply in group projects that accompany the course.
|263-2925-00L||Program Analysis for System Security and Reliability||W||5 credits||2V + 1U + 1A||M. Vechev|
|Abstract||Security breaches in modern systems (blockchains, datacenters, AI, etc.) result in billions of losses. We will cover key security issues and how the latest automated techniques can be used to prevent these. The course has a practical focus, also covering systems built by successful ETH Spin-offs (ChainSecurity.com and DeepCode.ai).|
More info: https://www.sri.inf.ethz.ch/teaching/pass2019
|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., Dagger) for checking custom (temporal) properties of smart contracts and illustrate their operation on real-world use cases.
- We will study the underlying methods for automated reasoning and testing (e.g., abstract interpretation, symbolic execution, fuzzing) are used to build such tools.
Part II: Machine Learning for Security
- We will study to leverage program abstractions in combination with clustering techniques to learn security rules for cryptography APIs from large codebases.
- We will study how to automatically learn to identify security vulnerabilities related to the handling of untrusted inputs (cross-Site scripting, SQL injection, path traversal, remote code execution) from large codebases.
Part III: Security of Datacenters and Networks
- We will show how to ensure that datacenters and ISPs are secured using declarative reasoning methods (e.g., Datalog). We will also see how to automatically synthesize secure configurations (e.g. using SyNET and NetComplete) which lead to desirable behaviors, thus automating the job of the network operator and avoiding critical errors.
- We will discuss how to apply modern discrete probabilistic inference (e.g., PSI and Bayonet) so to reason about probabilistic network properties (e.g., the probability of a packet reaching a destination if links fail).
Part IV: Security of AI-based Systems
- We will look into the security issues related to modern systems that combine machine learning models (e.g., neural networks) within traditional systems such as cars, airplanes, and medical systems.
- We will learn state-of-the-art techniques for security testing and certifying entire AI-based systems, such as autonomous driving systems.
To gain a deeper understanding, the course will involve a hands-on programming project where the methods studied in the class will be applied.
|263-3800-00L||Advanced Operating Systems||W||6 credits||2V + 2U + 1A||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.|
|227-0558-00L||Principles of Distributed Computing||W||6 credits||2V + 2U + 1A||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
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.)|
|Elective Focus Courses General Studies|
|252-0312-00L||Ubiquitous Computing||W||3 credits||2V||F. Mattern, S. Mayer|
|Abstract||Ubiquitous computing integrates tiny wirelessly connected computers and sensors into the environment and everyday objects. Main topics: The vision of ubiquitous computing, trends in technology, smart cards, RFID, Personal Area Networks (Bluetooth), sensor networks, location awareness, privacy and security, application areas, economic and social impact.|
|Objective||The vision of ubiquitous computing, trends in technology, smart cards, RFID, Personal Area Networks (Bluetooth), sensor networks, location awareness, privacy and security, application areas, economic and social impact.|
|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-0408-00L||Cryptographic Protocols||W||5 credits||2V + 2U||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.
|252-0526-00L||Statistical Learning Theory||W||7 credits||3V + 2U + 1A||J. M. Buhmann|
|Abstract||The course covers advanced methods of statistical learning :|
Statistical learning theory;variational methods and optimization, e.g., maximum entropy techniques, information bottleneck, deterministic and simulated annealing; clustering for vectorial, histogram and relational data; model selection; graphical models.
|Objective||The course surveys recent methods of statistical learning. The fundamentals of machine learning as presented in the course "Introduction to Machine Learning" are expanded and in particular, the theory of statistical learning is discussed.|
|Content||# Theory of estimators: How can we measure the quality of a statistical estimator? We already discussed bias and variance of estimators very briefly, but the interesting part is yet to come.|
# Variational methods and optimization: We consider optimization approaches for problems where the optimizer is a probability distribution. Concepts we will discuss in this context include:
* Maximum Entropy
* Information Bottleneck
* Deterministic Annealing
# Clustering: The problem of sorting data into groups without using training samples. This requires a definition of ``similarity'' between data points and adequate optimization procedures.
# Model selection: We have already discussed how to fit a model to a data set in ML I, which usually involved adjusting model parameters for a given type of model. Model selection refers to the question of how complex the chosen model should be. As we already know, simple and complex models both have advantages and drawbacks alike.
# Statistical physics models: approaches for large systems approximate optimization, which originate in the statistical physics (free energy minimization applied to spin glasses and other models); sampling methods based on these models
|Lecture notes||A draft of a script will be provided; |
transparencies of the lectures 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||Requirements: |
knowledge of the Machine Learning course
basic knowledge of statistics, interest in statistical methods.
It is recommended that Introduction to Machine Learning (ML I) is taken first; but with a little extra effort Statistical Learning Theory can be followed without the introductory course.
|252-0570-00L||Game Programming 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||B. Sumner|
|Abstract||The goal of this course is the in-depth understanding of the technology and programming underlying computer games. Students gradually design and develop a computer game in small groups and get acquainted with the art of game programming.|
|Objective||The goal of this new course is to acquaint students with the|
technology and art of programming modern three-dimensional computer
|Content||This is a new course that addresses modern three-dimensional computer|
game technology. During the course, small groups of students will
design and develop a computer game. Focus will be put on technical
aspects of game development, such as rendering, cinematography,
interaction, physics, animation, and AI. In addition, we will
cultivate creative thinking for advanced gameplay and visual effects.
The "laboratory" format involves a practical, hands-on approach with
neither traditional lectures nor exercises. Instead, we will meet
once a week to discuss technical issues and to track progress. We
plan to utilize Microsoft's XNA Game Studio Express, which is a
collection libraries and tools that facilitate game development.
While development will take place on PCs, we will ultimately deploy
our games on the XBox 360 console.
At the end of the course we will present our results to the public.
|Lecture notes||Online XNA documentation.|
|Prerequisites / Notice||The number of participants is limited.|
- good programming skills (Java, C++, C#, etc.)
- CG experience: Students should have taken, at a minimum, Visual
Computing. Higher level courses are recommended, such as Introduction
to Computer Graphics, Surface Representations and Geometric Modeling,
and Physically-based Simulation in Computer Graphics.
|252-0579-00L||3D Vision||W||4 credits||3G||M. Pollefeys, V. Larsson|
|Abstract||The course covers camera models and calibration, feature tracking and matching, camera motion estimation via simultaneous localization and mapping (SLAM) and visual odometry (VO), epipolar and mult-view geometry, structure-from-motion, (multi-view) stereo, augmented reality, and image-based (re-)localization.|
|Objective||After attending this course, students will:|
1. understand the core concepts for recovering 3D shape of objects and scenes from images and video.
2. be able to implement basic systems for vision-based robotics and simple virtual/augmented reality applications.
3. have a good overview over the current state-of-the art in 3D vision.
4. be able to critically analyze and asses current research in this area.
|Content||The goal of this course is to teach the core techniques required for robotic and augmented reality applications: How to determine the motion of a camera and how to estimate the absolute position and orientation of a camera in the real world. This course will introduce the basic concepts of 3D Vision in the form of short lectures, followed by student presentations discussing the current state-of-the-art. The main focus of this course are student projects on 3D Vision topics, with an emphasis on robotic vision and virtual and augmented reality applications.|
|252-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, T. Roscoe, 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.
|252-1403-00L||Invitation to Quantum Informatics||W||3 credits||2V||S. Wolf|
|Abstract||Followed by an introduction to the basic principles of quantum physics, such as superposition, interference, or entanglement, a variety of subjects are treated: Quantum algorithms, teleportation, quantum communication complexity and "pseudo-telepathy", quantum cryptography, as well as the main concepts of quantum information theory.|
|Objective||It is the goal of this course to get familiar with the most important notions that are of importance for the connection between Information and Physics. The formalism of Quantum Physics will be motivated and derived, and the use of these laws for information processing will be understood. In particular, the important algorithms of Grover as well as Shor will be studied and analyzed.|
|Content||According to Landauer, "information is physical". In quantum information, one is interested in the consequences and the possibilites offered by the laws of quantum physics for information processing. Followed by an introduction to the basic principles of quantum physics, such as superposition, interference, or entanglement, a variety of subjects are treated: Quantum algorithms, teleportation, quantum communication complexity and "pseude-telepathy", quantum cryptography, as well as the main concepts of quantum information theory.|
|252-1424-00L||Models of Computation||W||6 credits||2V + 2U + 1A||M. Cook|
|Abstract||This course surveys many different models of computation: Turing Machines, Cellular Automata, Finite State Machines, Graph Automata, Circuits, Tilings, Lambda Calculus, Fractran, Chemical Reaction Networks, Hopfield Networks, String Rewriting Systems, Tag Systems, Diophantine Equations, Register Machines, Primitive Recursive Functions, and more.|
|Objective||The goal of this course is to become acquainted with a wide variety of models of computation, to understand how models help us to understand the modeled systems, and to be able to develop and analyze models appropriate for new systems.|
|Content||This course surveys many different models of computation: Turing Machines, Cellular Automata, Finite State Machines, Graph Automata, Circuits, Tilings, Lambda Calculus, Fractran, Chemical Reaction Networks, Hopfield Networks, String Rewriting Systems, Tag Systems, Diophantine Equations, Register Machines, Primitive Recursive Functions, and more.|
|252-3005-00L||Natural Language Understanding |
Number of participants limited to 200.
|W||4 credits||2V + 1U||M. Ciaramita, T. Hofmann|
|Abstract||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.|
|Objective||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.|
|Content||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.|
|Literature||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.|
|252-5706-00L||Mathematical Foundations of Computer Graphics and Vision||W||4 credits||2V + 1U||M. R. Oswald, C. Öztireli|
|Abstract||This course presents the fundamental mathematical tools and concepts used in computer graphics and vision. Each theoretical topic is introduced in the context of practical vision or graphic problems, showcasing its importance in real-world applications.|
|Objective||The main goal is to equip the students with the key mathematical tools necessary to understand state-of-the-art algorithms in vision and graphics. In addition to the theoretical part, the students will learn how to use these mathematical tools to solve a wide range of practical problems in visual computing. After successfully completing this course, the students will be able to apply these mathematical concepts and tools to practical industrial and academic projects in visual computing.|
|Content||The theory behind various mathematical concepts and tools will be introduced, and their practical utility will be showcased in diverse applications in computer graphics and vision. The course will cover topics in sampling, reconstruction, approximation, optimization, robust fitting, differentiation, quadrature and spectral methods. Applications will include 3D surface reconstruction, camera pose estimation, image editing, data projection, character animation, structure-aware geometry processing, and rendering.|
|261-5120-00L||Machine Learning for Health Care |
Number of participants limited to 78.
Previously called Computational Biomedicine II
|W||4 credits||3P||G. Rätsch|
|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-2812-00L||Program Verification |
Number of participants limited to 30.
|W||5 credits||2V + 1U + 1A||A. J. Summers|
|Abstract||A hands-on introduction to the theory and construction of deductive software verifiers, covering both cutting-edge methodologies for formal program reasoning, and a perspective over the broad tool stacks making up modern verification tools.|
|Objective||Students will earn the necessary skills for designing and developing deductive verification tools which can be applied to modularly analyse complex software, including features challenging for reasoning such as heap-based mutable data and concurrency. Students will learn both a variety of fundamental reasoning principles, and how these reasoning ideas can be made practical via automatic tools. |
Students will be gain practical experience with reasoning tools at various levels of abstraction, from SAT and SMT solvers at the lowest level, up through intermediate verification languages and tools, to verifiers which target front-end code in executable languages.
By the end of the course, students should have a good working understanding and experience of the issues and decisions involved with designing and building practical verification tools, and the theoretical techniques which underpin them.
|Content||The course will be organized around building up a "tool stack", starting at the lowest-level with background on SAT and SMT solving techniques, and working upwards through tools at progressively-higher levels of abstraction. The notion of intermediate verification languages will be explored, and the Boogie (Microsoft Research) and Viper (ETH) languages will be used in depth to tackle increasingly ambitious verification tasks. |
The course will intermix technical content with hands-on experience; at each level of abstraction, we will understand who to build and use tools which can tackle specific program correctness problems, starting from simple puzzle solvers (Soduko) at the SAT level, and working upwards to full functional correctness of application-level code. This practical work will include three projects (typically worked on in pairs) spread throughout the course, which count towards the final grade. The graded projects are worth 40% in total, individually weighted at 14%, 13% and 13% respectively. The projects are a compulsory performance assessment; in this case, they need not be passed on their own, but will count 40% in all cases towards the final grading. An oral examination (worth the remaining 60% of the final grade) will examine the full technical content covered in the course.
|Lecture notes||Handouts (complementing the lecture material) and other materials will be available online.|
|Literature||Background reading material and links to tools will be published on the course website.|
|Prerequisites / Notice||Some programming experience is essential, as the course contains several practical assignments. A basic familiarity with propositional and first-order logic will be assumed. |
Courses with an emphasis on formal reasoning about programs (such as Formal Methods and Functional Programming) are advantageous background, but are not a requirement.
|263-3501-00L||Future Internet |
Previously called Advanced Computer Networks
|W||6 credits||1V + 1U + 3A||A. Singla|
|Abstract||This course will discuss recent advances in networking, with a focus on the Internet, with topics ranging from the algorithmic design of applications like video streaming to the likely near-future of satellite-based networking.|
|Objective||The goals of the course are to build on basic undergraduate-level networking, and provide an understanding of the tradeoffs and existing technology in the design of large, complex networked systems, together with concrete experience of the challenges through a series of lab exercises.|
|Content||The focus of the course is on principles, architectures, protocols, and applications used in modern networked systems. Example topics include:|
- How video streaming services like Netflix work, and research on improving their performance.
- How Web browsing could be made faster
- How the Internet's protocols are improving
- Exciting developments in satellite-based networking (ala SpaceX)
- The role of data centers in powering Internet services
A series of programming assignments will form a substantial part of the course grade.
|Lecture notes||Lecture slides will be made available at the course Web site: https://ndal.ethz.ch/courses/fi.html|
|Literature||No textbook is required, but there will be regularly assigned readings from research literature, liked to the course Web site: https://ndal.ethz.ch/courses/fi.html.|
|Prerequisites / Notice||An undergraduate class covering the basics of networking, such as Internet routing and TCP. At ETH, Computer Networks (252-0064-00L) and Communication Networks (227-0120-00L) suffice. Similar courses from other universities are acceptable too.|
- Page 1 of 3 All