Search result: Catalogue data in Autumn Semester 2020
|Computer Science Master|
|Master Studies (Programme Regulations 2009)|
|Focus Courses General Studies|
|Focus Elective Courses General Studies|
|252-0543-01L||Computer Graphics||W||8 credits||3V + 2U + 2A||M. Gross, M. Papas|
|Abstract||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.|
|Objective||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.|
|Content||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.|
High Dynamic Range Imaging: Acquisition, Display, and Image-Based Lighting
Multiple view geometry in computer vision
Physically Based Rendering: From Theory to Implementation
|Prerequisites / Notice||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.
|252-0546-00L||Physically-Based Simulation in Computer Graphics||W||5 credits||2V + 1U + 1A||V. da Costa de Azevedo, B. Solenthaler|
|Abstract||This lecture provides an introduction to physically-based animation in computer graphics and gives an overview of fundamental methods and algorithms. The practical exercises include three assignments which are to be solved in small groups. In an addtional course project, topics from the lecture will be implemented into a 3D game or a comparable application.|
|Objective||This lecture provides an introduction to physically-based animation in computer graphics and gives an overview of fundamental methods and algorithms. The practical exercises include three assignments which are to be solved in small groups. In an addtional course project, topics from the lecture will be implemented into a 3D game or a comparable application.|
|Content||The lecture covers topics in physically-based modeling,|
such as particle systems, mass-spring models, finite difference and finite element methods. These approaches are used to represent and simulate deformable objects or fluids with applications in animated movies, 3D games and medical systems. Furthermore, the lecture covers topics such as rigid body dynamics, collision detection, and character animation.
|Prerequisites / Notice||Fundamentals of calculus and physics, basic concepts of algorithms and data structures, basic programming skills in C++. Knowledge on numerical mathematics as well as ordinary and partial differential equations is an asset, but not required.|
|252-0811-00L||Applied Security Laboratory |
This only applies to Study Regulations 09: 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||8 credits||7P||D. Basin|
|Abstract||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.
|Objective||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.|
|Content||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.
|Lecture notes||The course is based on the book "Applied Information Security - A Hands-on Approach". More information: http://www.infsec.ethz.ch/appliedlabbook|
|Literature||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
|Prerequisites / Notice||* The lab allows flexible working since there are only few mandatory meetings during the semester. |
* 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|
This only applies to Study Regulations 09: In the Master Programme max.10 credits can be accounted by Labs on top of the Interfocus Courses. These Labs will only count towards the Master Programme. Additional Labs will be listed on the Addendum.
|W||10 credits||9P||G. Alonso, T. Hoefler, A. Klimovic, 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 wireless networks, ad-hoc networks, RFID, and distributed applications on smartphones.|
|Objective||Gain hands-on-experience with real products and the latest technology in 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 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.|
|252-1407-00L||Algorithmic Game Theory||W||7 credits||3V + 2U + 1A||P. Penna|
|Abstract||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.|
|Objective||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.|
|Content||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.
- 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.
|Lecture notes||Lecture notes will be usually posted on the website shortly after each lecture.|
|Literature||"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.
|Prerequisites / Notice||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-1411-00L||Security of Wireless Networks||W||6 credits||2V + 1U + 2A||S. Capkun, K. Kostiainen|
|Abstract||Core Elements: Wireless communication channel, Wireless network architectures and protocols, Attacks on wireless networks, Protection techniques.|
|Objective||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|
|Content||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-1425-00L||Geometry: Combinatorics and Algorithms||W||8 credits||3V + 2U + 2A||B. Gärtner, E. Welzl, M. Hoffmann, M. Wettstein|
|Abstract||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?)|
|Objective||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.
|Content||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.|
|Literature||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.
|Prerequisites / Notice||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.
|227-2210-00L||Computer Architecture||W||8 credits||6G + 1A||O. Mutlu|
|Abstract||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 (processors, memory, interconnects, accelerators). The course takes a hardware/software cooperative approach to understanding and designing computing systems.|
|Objective||We will learn the fundamental concepts of the different parts of modern computing systems, as well as the latest trends by exploring the recent research in Industry and Academia. We will extensively cover memory technologies (including DRAM and new Non-Volatile Memory technologies), memory scheduling, parallel computing systems (including multicore processors and GPUs), heterogeneous computing, processing-in-memory, interconnection networks, specialized systems for major data-intensive workloads (e.g. graph processing, bioinformatics, machine learning), etc.|
|Content||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).|
|Lecture notes||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.
|Literature||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.|
|Prerequisites / Notice||Digital Design and Computer Architecture.|
|263-2400-00L||Reliable and Interpretable Artificial Intelligence||W||6 credits||2V + 2U + 1A||M. Vechev|
|Abstract||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.|
|Objective||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.
|Content||The course covers some of the latest research (over the last 2-3 years) underlying the creation of safe, trustworthy, and reliable AI (more information here: https://www.sri.inf.ethz.ch/teaching/riai2020):|
* 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 abstractions, mixed-integer solvers).
* Probabilistic certification of deep neural networks
* Training deep neural networks to be provably robust via automated reasoning
* Understanding and Interpreting Deep Networks
* Probabilistic Programming
|Prerequisites / Notice||While not a formal requirement, the course assumes familiarity with basics of machine learning (especially probability theory, linear algebra, gradient descent, and neural networks). 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 excepted.
|252-3005-00L||Natural Language Processing |
Number of participants limited to 200.
|W||5 credits||2V + 1U + 1A||R. Cotterell|
|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||Jacob Eisenstein: Introduction to Natural Language Processing (Adaptive Computation and Machine Learning series)|
|263-3210-00L||Deep Learning||W||8 credits||3V + 2U + 2A||T. Hofmann|
|Abstract||Deep learning is an area within machine learning that deals with algorithms and models that automatically induce multi-level data representations.|
|Objective||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.|
|Prerequisites / Notice||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
Computational Intelligence Lab
Introduction to Machine Learning
Statistical Learning Theory
Probabilistic Artificial Intelligence
|263-3850-00L||Informal Methods||W||5 credits||2G + 2A||D. Cock|
|Abstract||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.|
|Objective||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.
|Content||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).
|263-4500-00L||Advanced Algorithms||W||9 credits||3V + 2U + 3A||M. Ghaffari|
|Abstract||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.|
|Objective||This course familiarizes the students with some of the main tools and techniques in modern subareas of algorithm design.|
|Content||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.|
|Prerequisites / Notice||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-5210-00L||Probabilistic Artificial Intelligence||W||8 credits||3V + 2U + 2A||A. Krause|
|Abstract||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 and the Internet.|
|Objective||How can we build systems that perform well in uncertain environments and unforeseen situations? 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 sensor networks, robotics, and the Internet. The course is designed for graduate students.|
- Probabilistic inference (variational inference, MCMC)
- Bayesian learning (Gaussian processes, Bayesian deep learning)
- Probabilistic planning (MDPs, POMPDPs)
- Multi-armed bandits and Bayesian optimization
- Reinforcement learning
|Prerequisites / Notice||Solid basic knowledge in statistics, algorithms and programming. |
The material covered in the course "Introduction to Machine Learning" is considered as a prerequisite.
|263-5905-00L||Mixed Reality Laboratory |
This only applies to Study Regulations 09: 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||F. Bogo, M. R. Oswald|
|Abstract||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.|
|Objective||The goal is to get a clear understanding on how to build mixed reality apps, covering current software SDKs and game engines, as well as foundations of 3D graphics, computer vision and human machine interaction. |
Small groups of students will realize a particular software project and deploy it to an MR/AR device such as Microsoft HoloLens or a tablet or smartphone.
|Content||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 During the course, 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. Besides introductory lectures and guest lectures covering the above mentioned topics, the focus of this course is on the project work and technical project-related aspects. There will be no exercises, but weekly meetings to exchange ideas, discuss technical issues and to track progress.
|Prerequisites / Notice||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.
|261-5100-00L||Computational Biomedicine |
Number of participants limited to 60.
|W||5 credits||2V + 1U + 1A||G. Rätsch, V. Boeva, N. Davidson|
|Abstract||The course critically reviews central problems in Biomedicine and discusses the technical foundations and solutions for these problems.|
|Objective||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.|
|Content||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.
|Prerequisites / Notice||Data Structures & Algorithms, Introduction to Machine Learning, Statistics/Probability, Programming in Python, Unix Command Line|
|227-0575-00L||Advanced Topics in Communication Networks (Autumn 2020)||W||6 credits||2V + 2U||L. Vanbever|
|Abstract||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 2020, the course will cover advanced topics in Internet routing and forwarding.|
|Objective||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.|
|Content||The course will cover advanced topics in Internet routing and forwarding such as:|
- Hierarchical routing
- Traffic Engineering and Load Balancing
- Virtual Private Networks
- Quality of Service/Queuing/Scheduling
- IP Multicast
- Fast Convergence
- Network virtualization
- Network programmability (OpenFlow, P4)
- Network measurements
The course will be divided in two main blocks. The first block (~10 weeks) will interleave classical lectures with practical exercises and labs. The second block (~4 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.
|Lecture notes||Lecture notes and material will be made available before each course on the course website.|
|Literature||Relevant references will be made available through the course website.|
|Prerequisites / Notice||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.|
|401-3054-14L||Probabilistic Methods in Combinatorics||W||6 credits||2V + 1U||B. Sudakov|
|Abstract||This course provides a gentle introduction to the Probabilistic Method, with an emphasis on methodology. We will try to illustrate the main ideas by showing the application of probabilistic reasoning to various combinatorial problems.|
|Content||The topics covered in the class will include (but are not limited to): linearity of expectation, the second moment method, the local lemma, correlation inequalities, martingales, large deviation inequalities, Janson and Talagrand inequalities and pseudo-randomness.|
|Literature||- The Probabilistic Method, by N. Alon and J. H. Spencer, 3rd Edition, Wiley, 2008.|
- Random Graphs, by B. Bollobás, 2nd Edition, Cambridge University Press, 2001.
- Random Graphs, by S. Janson, T. Luczak and A. Rucinski, Wiley, 2000.
- Graph Coloring and the Probabilistic Method, by M. Molloy and B. Reed, Springer, 2002.
|401-3901-00L||Mathematical Optimization||W||11 credits||4V + 2U||R. Zenklusen|
|Abstract||Mathematical treatment of diverse optimization techniques.|
|Objective||The goal of this course is to get a thorough understanding of various classical mathematical optimization techniques 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 this structural understanding.|
|Content||Key topics include:|
- Linear programming and polyhedra;
- Flows and cuts;
- Combinatorial optimization problems and techniques;
- Equivalence between optimization and separation;
- Brief introduction to Integer Programming.
|Literature||- 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.
|Prerequisites / Notice||Solid background in linear algebra.|
|401-4521-70L||Geometric Tomography - Uniqueness, Statistical Reconstruction and Algorithms||W||4 credits||2V||J. Hörrmann|
|Abstract||Self-contained course on the theoretical aspects of the reconstruction of geometric objects from tomographic projection and section data.|
|Objective||Introduction to geometric tomography and understanding of various theoretical aspects of reconstruction problems.|
|Content||The problem of reconstruction of an object from geometric information like X-ray data is a classical inverse problem on the overlap between applied mathematics, statistics, computer science and electrical engineering. We focus on various aspects of the problem in the case of prior shape information on the reconstruction object. We will answer questions on uniqueness of the reconstruction and also cover statistical and algorithmic aspects.|
|Literature||R. Gardner: Geometric Tomography|
F. Natterer: The Mathematics of Computerized Tomography
A. Rieder: Keine Probleme mit inversen Problemen
|Prerequisites / Notice||A sound mathematical background in geometry, analysis and probability is required though a repetition of relevant material will be included. The ability to understand and write mathematical proofs is mandatory.|
|636-0017-00L||Computational Biology||W||6 credits||3G + 2A||T. Stadler, T. Vaughan|
|Abstract||The aim of the course is to provide up-to-date knowledge on how we can study biological processes using genetic sequencing data. Computational algorithms extracting biological information from genetic sequence data are discussed, and statistical tools to understand this information in detail are introduced.|
|Objective||Attendees will learn which information is contained in genetic sequencing data and how to extract information from this data using computational tools. The main concepts introduced are:|
* stochastic models in molecular evolution
* phylogenetic & phylodynamic inference
* maximum likelihood and Bayesian statistics
Attendees will apply these concepts to a number of applications yielding biological insight into:
* pathogen evolution
* macroevolution of species
|Content||The course consists of four parts. We first introduce modern genetic sequencing technology, and algorithms to obtain sequence alignments from the output of the sequencers. We then present methods for direct alignment analysis using approaches such as BLAST and GWAS. Second, we introduce mechanisms and concepts of molecular evolution, i.e. we discuss how genetic sequences change over time. Third, we employ evolutionary concepts to infer ancestral relationships between organisms based on their genetic sequences, i.e. we discuss methods to infer genealogies and phylogenies. Lastly, we introduce the field of phylodynamics, the aim of which is to understand and quantify population dynamic processes (such as transmission in epidemiology or speciation & extinction in macroevolution) based on a phylogeny. Throughout the class, the models and methods are illustrated on different datasets giving insight into the epidemiology and evolution of a range of infectious diseases (e.g. HIV, HCV, influenza, Ebola). Applications of the methods to the field of macroevolution provide insight into the evolution and ecology of different species clades. Students will be trained in the algorithms and their application both on paper and in silico as part of the exercises.|
|Lecture notes||Lecture slides will be available on moodle.|
|Literature||The course is not based on any of the textbooks below, but they are excellent choices as accompanying material:|
* Yang, Z. 2006. Computational Molecular Evolution.
* Felsenstein, J. 2004. Inferring Phylogenies.
* Semple, C. & Steel, M. 2003. Phylogenetics.
* Drummond, A. & Bouckaert, R. 2015. Bayesian evolutionary analysis with BEAST.
|Prerequisites / Notice||Basic knowledge in linear algebra, analysis, and statistics will be helpful. Programming in R will be required for the project work (compulsory continuous performance assessments). We provide an R tutorial and help sessions during the first two weeks of class to learn the required skills. However, in case you do not have any previous experience with R, we strongly recommend to get familiar with R prior to the semester start. For the D-BSSE students, we highly recommend the voluntary course „Introduction to Programming“, which takes place at D-BSSE from Wednesday, September 12 to Friday, September 14, i.e. BEFORE the official semester starting date http://www.cbb.ethz.ch/news-events.html |
For the Zurich-based students without R experience, we recommend the R course Link, or working through the script provided as part of this R course.