Suchergebnis: Katalogdaten im Herbstsemester 2018
|CAS in Informatik|
|Fokusfächer und Wahlfächer|
|263-4500-00L||Advanced Algorithms||W||6 KP||2V + 2U + 1A||M. Ghaffari, A. Krause|
|Kurzbeschreibung||This is an advanced course on the design and analysis of algorithms, covering a range of topics and techniques not studied in typical introductory courses on algorithms.|
|Lernziel||This course is intended to familiarize students with (some of) the main tools and techniques developed over the last 15-20 years in algorithm design, which are by now among the key ingredients used in developing efficient algorithms.|
|Inhalt||the lectures will cover a range of topics, 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 a bried glance at MapReduce algorithms.|
|Voraussetzungen / Besonderes||This course is designed for masters and doctoral students and it especially targets those interested in theoretical computer science, but it should also be accessible to last-year bachelor students. |
Sufficient comfort with both (A) Algorithm Design & Analysis and (B) Probability & Concentrations. E.g., having passed the course Algorithms, Probability, and Computing (APC) is highly recommended, though not required formally. If you are not sure whether you're ready for this class or not, please consulte the instructor.
|263-4640-00L||Network Security||W||6 KP||2V + 1U + 2A||A. Perrig, S. Frei|
|Kurzbeschreibung||Some of today's most damaging attacks on computer systems involve|
exploitation of network infrastructure, either as the target of attack
or as a vehicle to attack end systems. This course provides an
in-depth study of network attack techniques and methods to defend
|Lernziel||- Students are familiar with fundamental network security concepts.|
- Students can assess current threats that Internet services and networked devices face, and can evaluate appropriate countermeasures.
- Students can identify and assess known vulnerabilities in a software system that is connected to the Internet (through analysis and penetration testing tools).
- Students have an in-depth understanding of a range of important security technologies.
- Students learn how formal analysis techniques can help in the design of secure networked systems.
|Inhalt||The course will cover topics spanning five broad themes: (1) network|
defense mechanisms such as secure routing protocols, TLS, anonymous
communication systems, network intrusion detection systems, and
public-key infrastructures; (2) network attacks such as denial of
service (DoS) and distributed denial-of-service (DDoS) attacks; (3)
analysis and inference topics such as network forensics and attack
economics; (4) formal analysis techniques for verifying the security
properties of network architectures; and (5) new technologies related
to next-generation networks.
|Voraussetzungen / Besonderes||This lecture is intended for students with an interest in securing|
Internet communication services and network devices. Students are
assumed to have knowledge in networking as taught in a Communication
Networks lecture. The course will involve a course project and some
smaller programming projects as part of the homework. Students are
expected to have basic knowledge in network programming in a
programming language such as C/C++, Go, or Python.
|263-5210-00L||Probabilistic Artificial Intelligence||W||4 KP||2V + 1U||A. Krause|
|Kurzbeschreibung||This course introduces core modeling techniques and algorithms from statistics, optimization, planning, and control and study applications in areas such as sensor networks, robotics, and the Internet.|
|Lernziel||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 upper-level undergraduate and graduate students.|
- Search (BFS, DFS, A*), constraint satisfaction and optimization
- Tutorial in logic (propositional, first-order)
- Bayesian Networks (models, exact and approximative inference, learning) - Temporal models (Hidden Markov Models, Dynamic Bayesian Networks)
- Probabilistic palnning (MDPs, POMPDPs)
- Reinforcement learning
- Combining logic and probability
|Voraussetzungen / Besonderes||Solid basic knowledge in statistics, algorithms and programming|
|263-5701-00L||Visualization||W||4 KP||2V + 1U||T. Günther|
|Kurzbeschreibung||This lecture provides an introduction into visualization of scientific and abstract data.|
|Lernziel||This lecture provides an introduction into the visualization of scientific and abstract data. The lecture introduces into the two main branches of visualization: scientific visualization and information visualization. The focus is set onto scientific data, demonstrating the usefulness and necessity of computer graphics in other fields than the entertainment industry. The exercises contain theoretical tasks on the mathematical foundations such as numerical integration, differential vector calculus, and flow field analysis, while programming exercises familiarize with the Visualization Tool Kit (VTK). In a course project, the learned methods are applied to visualize one real scientific data set. The provided data sets contain measurements of volcanic eruptions, galaxy simulations, fluid simulations, meteorological cloud simulations and asteroid impact simulations.|
|Inhalt||This lecture opens with human cognition basics, and scalar and vector calculus. Afterwards, this is applied to the visualization of air and fluid flows, including geometry-based, topology-based and feature-based methods. Further, the direct and indirect visualization of volume data is discussed. The lecture ends on the viualization of abstract, non-spatial and multi-dimensional data by means of information visualization.|
|Voraussetzungen / Besonderes||Fundamentals of differential calculus. Knowledge on numerical mathematics, computer algebra systems, as well as ordinary and partial differential equations is an asset, but not required.|
|263-5902-00L||Computer Vision||W||6 KP||3V + 1U + 1A||M. Pollefeys, V. Ferrari, L. Van Gool|
|Kurzbeschreibung||The goal of this course is to provide students with a good understanding of computer vision and image analysis techniques. The main concepts and techniques will be studied in depth and practical algorithms and approaches will be discussed and explored through the exercises.|
|Lernziel||The objectives of this course are:|
1. To introduce the fundamental problems of computer vision.
2. To introduce the main concepts and techniques used to solve those.
3. To enable participants to implement solutions for reasonably complex problems.
4. To enable participants to make sense of the computer vision literature.
|Inhalt||Camera models and calibration, invariant features, Multiple-view geometry, Model fitting, Stereo Matching, Segmentation, 2D Shape matching, Shape from Silhouettes, Optical flow, Structure from motion, Tracking, Object recognition, Object category recognition|
|Voraussetzungen / Besonderes||It is recommended that students have taken the Visual Computing lecture or a similar course introducing basic image processing concepts before taking this course.|
|227-0778-00L||Hardware/Software Codesign||W||6 KP||2V + 2U||L. Thiele|
|Kurzbeschreibung||Die Lehrveranstaltung vermittelt fortgeschrittene Kenntnisse im Entwurf komplexer Computersysteme, vor allem eingebettete Systeme. Speziell werden den Studierenden Modelle und Methoden vermittelt, die grundlegend sind fuer den Entwurf von Systemen, die aus Software- und Hardware Komponenten bestehen.|
|Lernziel||Die Lehrveranstaltung vermittelt fortgeschrittene Kenntnisse im Entwurf komplexer Computersysteme, vor allem eingebettete Systeme. Speziell werden den Studierenden Modelle und Methoden vermittelt, die grundlegend sind fuer den Entwurf von Systemen, die aus Software- und Hardware Komponenten bestehen.|
|Inhalt||Die Lehrveranstaltung vermittelt die folgenden Kenntnisse: (a) Modelle zur Beschreibung von Hardware und Software, (b) Hardware-Software Schnittstellen (Instruktionssatz, Hardware- und Software Komponenten, rekonfigurierbare Architekturen und FPGAs, heterogene Rechnerarchitekturen, System-on-Chip), (c) Anwendungsspezifische Prozessoren und Codegenerierung, (d) Performanzanalzyse und Schaetzung, (e) Systementwurf (Hardware-Software Partitionierung und Explorationsverfahren).|
|Skript||Unterlagen zur Übung, Kopien der Vorlesungsunterlagen.|
|Literatur||Peter Marwedel, Embedded System Design, Springer, ISBN-13 978-94-007-0256-1, 2011.|
Wayne Wolf. Computers as Components. Morgan Kaufmann, ISBN-13: 978-0123884367, 2012.
|Voraussetzungen / Besonderes||Voraussetzung zum Besuch der Veranstaltung sind Basiskenntnisse in den folgenden Bereichen: Rechnerarchitektur, Digitaltechnik, Softwareentwurf, eingebettete Systeme|
|401-0647-00L||Introduction to Mathematical Optimization||W||5 KP||2V + 1U||D. Adjiashvili|
|Kurzbeschreibung||Introduction to basic techniques and problems in mathematical optimization, and their applications to a variety of problems in engineering.|
|Lernziel||The goal of the course is to obtain a good understanding of some of the most fundamental mathematical optimization techniques used to solve linear programs and basic combinatorial optimization problems. The students will also practice applying the learned models to problems in engineering.|
|Inhalt||Topics covered in this course include:|
- Linear programming (simplex method, duality theory, shadow prices, ...).
- Basic combinatorial optimization problems (spanning trees, shortest paths, network flows, ...).
- Modelling with mathematical optimization: applications of mathematical programming in engineering.
|Literatur||Information about relevant literature will be given in the lecture.|
|Voraussetzungen / Besonderes||This course is meant for students who did not already attend the course "Mathematical Optimization", which is a more advance lecture covering similar topics. Compared to "Mathematical Optimization", this course has a stronger focus on modeling and applications.|
|636-0007-00L||Computational Systems Biology||W||6 KP||3V + 2U||J. Stelling|
|Kurzbeschreibung||Study of fundamental concepts, models and computational methods for the analysis of complex biological networks. Topics: Systems approaches in biology, biology and reaction network fundamentals, modeling and simulation approaches (topological, probabilistic, stoichiometric, qualitative, linear / nonlinear ODEs, stochastic), and systems analysis (complexity reduction, stability, identification).|
|Lernziel||The aim of this course is to provide an introductory overview of mathematical and computational methods for the modeling, simulation and analysis of biological networks.|
|Inhalt||Biology has witnessed an unprecedented increase in experimental data and, correspondingly, an increased need for computational methods to analyze this data. The explosion of sequenced genomes, and subsequently, of bioinformatics methods for the storage, analysis and comparison of genetic sequences provides a prominent example. Recently, however, an additional area of research, captured by the label "Systems Biology", focuses on how networks, which are more than the mere sum of their parts' properties, establish biological functions. This is essentially a task of reverse engineering. The aim of this course is to provide an introductory overview of corresponding computational methods for the modeling, simulation and analysis of biological networks. We will start with an introduction into the basic units, functions and design principles that are relevant for biology at the level of individual cells. Making extensive use of example systems, the course will then focus on methods and algorithms that allow for the investigation of biological networks with increasing detail. These include (i) graph theoretical approaches for revealing large-scale network organization, (ii) probabilistic (Bayesian) network representations, (iii) structural network analysis based on reaction stoichiometries, (iv) qualitative methods for dynamic modeling and simulation (Boolean and piece-wise linear approaches), (v) mechanistic modeling using ordinary differential equations (ODEs) and finally (vi) stochastic simulation methods.|
|Literatur||U. Alon, An introduction to systems biology. Chapman & Hall / CRC, 2006.|
Z. Szallasi et al. (eds.), System modeling in cellular biology. MIT Press, 2010.
B. Ingalls, Mathematical modeling in systems biology: an introduction. MIT Press, 2013
|636-0017-00L||Computational Biology||W||6 KP||3G + 2A||T. Stadler, C. Magnus, T. Vaughan|
|Kurzbeschreibung||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.|
|Lernziel||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
|Inhalt||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.|
|Skript||Lecture slides will be available on moodle.|
|Literatur||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.
|Voraussetzungen / Besonderes||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.
|263-2810-00L||Advanced Compiler Design |
Findet dieses Semester nicht statt.
|W||7 KP||3V + 2U + 1A||T. Gross|
|Kurzbeschreibung||This course covers advanced topics in compiler design: SSA intermediate representation and its use in optimization, just-in-time compilation, profile-based compilation, exception handling in modern programming languages.|
|Lernziel||Understand translation of object-oriented programs, opportunities and difficulties in optimizing programs using state-of-the-art techniques (profile-based compilation, just-in-time compilation, runtime system interaction)|
|Inhalt||This course builds conceptually on Compiler Design (a basic class for advanced undergraduates), but this class is not a prerequisite. Students should however have a solid understanding of basic compiler technology. |
The focus is on handling the key features of modern object-oriented programs. We review implementations of single and multiple inheritance (incl. object layout, method dispatch) and optimization opportunities.
Specific topics: intermediate representations (IR) for optimizing compilers, static single assignment (SSA) representation, constant folding, partial redundancy optimizations, profiling, profile-guided code generation. Special topics as time permits: debugging optimized code, multi-threading, data races, object races, memory consistency models, programming language design. Review of single inheritance, multiple inheritance, object layout, method dispatch, type analysis, type propagation and related topics.
This course provides another opportunity to explore software design in a medium-scale software project.
|Literatur||Aho/Lam/Sethi/Ullmann, Compilers - Principles, Techniques, and Tools (2nd Edition). In addition, papers as provided in the class.|
|Voraussetzungen / Besonderes||A basic course on compiler design is helpful but not mandatory. Student should have programming skills/experience to implement an optimizer (or significant parts of an optimizer) for a simple object-oriented language. The programming project is implemented using Java.|
|263-3800-00L||Advanced Operating Systems |
Findet dieses Semester nicht statt.
Takes place next spring semester (SS19)!
|W||6 KP||2V + 2U + 1A||T. Roscoe|
|Kurzbeschreibung||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.|
|Lernziel||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
|Inhalt||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.|
|Voraussetzungen / Besonderes||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.|
- Seite 2 von 2 Alle