Suchergebnis: Katalogdaten im Herbstsemester 2017
Informatik Master | ||||||
Vertiefungsfächer | ||||||
Vertiefung in Computational Science | ||||||
Kernfächer der Vertiefung in Computational Science | ||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |
---|---|---|---|---|---|---|
252-0535-00L | Machine Learning | W | 8 KP | 3V + 2U + 2A | J. M. Buhmann | |
Kurzbeschreibung | Machine learning algorithms provide analytical methods to search data sets for characteristic patterns. Typical tasks include the classification of data, function fitting and clustering, with applications in image and speech analysis, bioinformatics and exploratory data analysis. This course is accompanied by practical machine learning projects. | |||||
Lernziel | Students will be familiarized with the most important concepts and algorithms for supervised and unsupervised learning; reinforce the statistics knowledge which is indispensible to solve modeling problems under uncertainty. Key concepts are the generalization ability of algorithms and systematic approaches to modeling and regularization. A machine learning project will provide an opportunity to test the machine learning algorithms on real world data. | |||||
Inhalt | The theory of fundamental machine learning concepts is presented in the lecture, and illustrated with relevant applications. Students can deepen their understanding by solving both pen-and-paper and programming exercises, where they implement and apply famous algorithms to real-world data. Topics covered in the lecture include: - Bayesian theory of optimal decisions - Maximum likelihood and Bayesian parameter inference - Classification with discriminant functions: Perceptrons, Fisher's LDA and support vector machines (SVM) - Ensemble methods: Bagging and Boosting - Regression: least squares, ridge and LASSO penalization, non-linear regression and the bias-variance trade-off - Non parametric density estimation: Parzen windows, nearest nieghbour - Dimension reduction: principal component analysis (PCA) and beyond | |||||
Skript | No lecture notes, but slides will be made available on the course webpage. | |||||
Literatur | C. Bishop. Pattern Recognition and Machine Learning. Springer 2007. R. Duda, P. Hart, and D. Stork. Pattern Classification. John Wiley & Sons, second edition, 2001. T. Hastie, R. Tibshirani, and J. Friedman. The Elements of Statistical Learning: Data Mining, Inference and Prediction. Springer, 2001. L. Wasserman. All of Statistics: A Concise Course in Statistical Inference. Springer, 2004. | |||||
Voraussetzungen / Besonderes | The course requires solid basic knowledge in analysis, statistics and numerical methods for CSE as well as practical programming experience for solving assignments. Students should at least have followed one previous course offered by the Machine Learning Institute (e.g., CIL or LIS) or an equivalent course offered by another institution. | |||||
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. | |||||
Skript | Link | |||||
Literatur | U. Alon, An introduction to systems biology. Chapman & Hall / CRC, 2006. Z. Szallasi et al. (eds.), System modeling in cellular biology. MIT Press, 2006. | |||||
Wahlfächer der Vertiefung in Computational Science | ||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |
252-0543-01L | Computer Graphics | W | 6 KP | 3V + 2U | M. Gross, J. Novak | |
Kurzbeschreibung | This course covers some of the fundamental concepts of computer graphics, namely 3D object representations and generation of photorealistic images from digital representations of 3D scenes. | |||||
Lernziel | At the end of the course the students will be able to build a rendering system. The students will study the basic principles of rendering and image synthesis. In addition, the course is intended to stimulate the students' curiosity to explore the field of computer graphics in subsequent courses or on their own. | |||||
Inhalt | This course covers fundamental concepts of modern computer graphics. Students will learn about 3D object representations and the details of how to generate photorealistic images from digital representations of 3D scenes. Starting with an introduction to 3D shape modeling and representation, texture mapping and ray-tracing, we will move on to acceleration structures, the physics of light transport, appearance modeling and global illumination principles and algorithms. We will end with an overview of modern image-based image synthesis techniques, covering topics such as lightfields and depth-image based rendering. | |||||
Skript | no | |||||
Voraussetzungen / Besonderes | Prerequisites: Fundamentals of calculus and linear algebra, basic concepts of algorithms and data structures, programming skills in C++, Visual Computing course recommended. The programming assignments will be in C++. This will not be taught in the class. | |||||
263-5001-00L | Introduction to Finite Elements and Sparse Linear System Solving | W | 4 KP | 2V + 1U | P. Arbenz | |
Kurzbeschreibung | The finite element (FE) method is the method of choice for (approximately) solving partial differential equations on complicated domains. In the first third of the lecture, we give an introduction to the method. The rest of the lecture will be devoted to methods for solving the large sparse linear systems of equation that a typical for the FE method. We will consider direct and iterative methods. | |||||
Lernziel | Students will know the most important direct and iterative solvers for sparse linear systems. They will be able to determine which solver to choose in particular situations. | |||||
Inhalt | I. THE FINITE ELEMENT METHOD (1) Introduction, model problems. (2) 1D problems. Piecewise polynomials in 1D. (3) 2D problems. Triangulations. Piecewise polynomials in 2D. (4) Variational formulations. Galerkin finite element method. (5) Implementation aspects. II. DIRECT SOLUTION METHODS (6) LU and Cholesky decomposition. (7) Sparse matrices. (8) Fill-reducing orderings. III. ITERATIVE SOLUTION METHODS (9) Stationary iterative methods, preconditioning. (10) Preconditioned conjugate gradient method (PCG). (11) Incomplete factorization preconditioning. (12) Multigrid preconditioning. (13) Nonsymmetric problems (GMRES, BiCGstab). (14) Indefinite problems (SYMMLQ, MINRES). | |||||
Literatur | [1] M. G. Larson, F. Bengzon: The Finite Element Method: Theory, Implementation, and Applications. Springer, Heidelberg, 2013. [2] H. Elman, D. Sylvester, A. Wathen: Finite elements and fast iterative solvers. OUP, Oxford, 2005. [3] Y. Saad: Iterative methods for sparse linear systems (2nd ed.). SIAM, Philadelphia, 2003. [4] T. Davis: Direct Methods for Sparse Linear Systems. SIAM, Philadelphia, 2006. [5] H.R. Schwarz: Die Methode der finiten Elemente (3rd ed.). Teubner, Stuttgart, 1991. | |||||
Voraussetzungen / Besonderes | Prerequisites: Linear Algebra, Analysis, Computational Science. The exercises are made with Matlab. | |||||
636-0017-00L | Computational Biology | W | 6 KP | 3G + 2A | C. Magnus, T. Stadler, 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: * epidemiology * 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 phylodynamics is to understand and quantify the 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 "Central Element". We provide an R tutorial and help sessions during the first two weeks of class to learn the required skills. | |||||
Seminar in Computational Science | ||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |
252-5701-00L | Advanced Topics in Computer Graphics and Vision Maximale Teilnehmerzahl: 24 | W | 2 KP | 2S | M. Gross, O. Sorkine Hornung | |
Kurzbeschreibung | This seminar covers advanced topics in computer graphics, such as modeling, rendering, animation, real-time graphics, physical simulation, and computational photography. Each time the course is offered, a collection of research papers is selected and each student presents one paper to the class and leads a discussion about the paper and related topics. | |||||
Lernziel | The goal is to get an in-depth understanding of actual problems and research topics in the field of computer graphics as well as improve presentations and critical analysis skills. | |||||
Inhalt | This seminar covers advanced topics in computer graphics, including both seminal research papers as well as the latest research results. Each time the course is offered, a collection of research papers are selected covering topics such as modeling, rendering, animation, real-time graphics, physical simulation, and computational photography. Each student presents one paper to the class and leads a discussion about the paper and related topics. All students read the papers and participate in the discussion. | |||||
Skript | no script | |||||
Literatur | Individual research papers are selected each term. See Link for the current list. | |||||
Voraussetzungen / Besonderes | Prerequisites: The courses "Computer Graphics I and II" (GDV I & II) are recommended, but not mandatory. | |||||
Vertiefung in Distributed Systems | ||||||
Kernfächer der Vertiefung in Distributed Systems | ||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |
263-3800-00L | Advanced Operating Systems | 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. | |||||
252-1414-00L | System Security | W | 5 KP | 2V + 2U | S. Capkun, A. Perrig | |
Kurzbeschreibung | The first part of the lecture covers individual system aspects starting with tamperproof or tamper-resistant hardware in general over operating system related security mechanisms to application software systems, such as host based intrusion detection systems. In the second part, the focus is on system design and methodologies for building secure systems. | |||||
Lernziel | In this lecture, students learn about the security requirements and capabilities that are expected from modern hardware, operating systems, and other software environments. An overview of available technologies, algorithms and standards is given, with which these requirements can be met. | |||||
Inhalt | The first part of the lecture covers individual system's aspects starting with tamperproof or tamperresistant hardware in general over operating system related security mechanisms to application software systems such as host based intrusion detetction systems. The main topics covered are: tamper resistant hardware, CPU support for security, protection mechanisms in the kernel, file system security (permissions / ACLs / network filesystem issues), IPC Security, mechanisms in more modern OS, such as Capabilities and Zones, Libraries and Software tools for security assurance, etc. In the second part, the focus is on system design and methodologies for building secure systems. Topics include: patch management, common software faults (buffer overflows, etc.), writing secure software (design, architecture, QA, testing), compiler-supported security, language-supported security, logging and auditing (BSM audit, dtrace, ...), cryptographic support, and trustworthy computing (TCG, SGX). Along the lectures, model cases will be elaborated and evaluated in the exercises. | |||||
Wahlfächer der Vertiefung in Distributed Systems | ||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |
252-0437-00L | Verteilte Algorithmen | W | 4 KP | 3V | F. Mattern | |
Kurzbeschreibung | Modelle verteilter Berechnungen; Raum-Zeit Diagramme; Virtuelle Zeit; Logische Uhren und Kausalität; Wellenalgorithmen; Verteilte und parallele Graphtraversierung; Berechnung konsistenter Schnappschüsse; Wechselseitiger Ausschluss; Election und Symmetriebrechung; Verteilte Terminierung; Garbage-Collection in verteilten Systemen; Beobachten verteilter Systeme; Berechnung globaler Prädikate. | |||||
Lernziel | Kennenlernen von Modellen und Algorithmen verteilter Systeme. | |||||
Inhalt | Verteilte Algorithmen sind Verfahren, die dadurch charakterisiert sind, dass mehrere autonome Prozesse gleichzeitig Teile eines gemeinsamen Problems in kooperativer Weise bearbeiten und der dabei erforderliche Informationsaustausch ausschliesslich über Nachrichten erfolgt. Derartige Algorithmen kommen im Rahmen verteilter Systeme zum Einsatz, bei denen kein gemeinsamer Speicher existiert und die Übertragungszeit von Nachrichten i.a. nicht vernachlässigt werden kann. Da dabei kein Prozess eine aktuelle konsistente Sicht des globalen Zustands besitzt, führt dies zu interessanten Problemen. Im einzelnen werden u.a. folgende Themen behandelt: Modelle verteilter Berechnungen; Raum-Zeit Diagramme; Virtuelle Zeit; Logische Uhren und Kausalität; Wellenalgorithmen; Verteilte und parallele Graphtraversierung; Berechnung konsistenter Schnappschüsse; Wechselseitiger Ausschluss; Election und Symmetriebrechung; Verteilte Terminierung; Garbage-Collection in verteilten Systemen; Beobachten verteilter Systeme; Berechnung globaler Prädikate. | |||||
Literatur | - F. Mattern: Verteilte Basisalgorithmen, Springer-Verlag - G. Tel: Topics in Distributed Algorithms, Cambridge University Press - G. Tel: Introduction to Distributed Algorithms, Cambridge University Press, 2nd edition - A.D. Kshemkalyani, M. Singhal: Distributed Computing, Cambridge University Press - N. Lynch: Distributed Algorithms, Morgan Kaufmann Publ | |||||
252-0817-00L | Distributed Systems Laboratory Im Masterstudium können zusätzlich zu den Vertiefungsübergreifenden Fächern nur max. 10 Kreditpunkte über Laboratorien erarbeitet werden. Diese Labs gelten nur für das Masterstudium. Weitere Laboratorien werden auf dem Beiblatt aufgeführt. | W | 10 KP | 9P | G. Alonso, T. Hoefler, F. Mattern, T. Roscoe, A. Singla, R. Wattenhofer, C. Zhang | |
Kurzbeschreibung | This course involves the participation in a substantial development and/or evaluation project involving distributed systems technology. There are projects available in a wide range of areas: from web services to ubiquitous computing including wireless networks, ad-hoc networks, RFID, and distributed applications on smartphones. | |||||
Lernziel | Gain hands-on-experience with real products and the latest technology in distributed systems. | |||||
Inhalt | This course involves the participation in a substantial development and/or evaluation project involving distributed systems technology. There are projects available in a wide range of areas: from web services to ubiquitous computing including as well wireless networks, ad-hoc networks, and distributed application on smartphones. The goal of the project is for the students to gain hands-on-experience with real products and the latest technology in distributed systems. There is no lecture associated to the course. For information of the course or projects available, see Link or contact Prof. Mattern, Prof. Wattenhofer, Prof. Roscoe or Prof. G. Alonso. | |||||
263-2210-00L | Computer Architecture | W | 8 KP | 6G + 1A | O. Mutlu | |
Kurzbeschreibung | Computer architecture is the science and art of selecting and interconnecting hardware components to create a computer that meets functional, performance and cost goals. This course introduces the basic hardware structure of a modern programmable computer, including the basic laws underlying performance evaluation. | |||||
Lernziel | We will learn, for example, how to design the control and data path hardware for a MIPS-like processor, how to make machine instructions execute simultaneously through pipelining and simple superscalar execution, and how to design fast memory and storage systems. | |||||
Inhalt | The principles presented in the lecture are reinforced in the laboratory through the design and simulation of a register transfer (RT) implementation of a MIPS-like pipelined processor in System Verilog. In addition, we will develop a cycle-accurate simulator of this processor in C, and we will use this simulator to explore processor design options. | |||||
Voraussetzungen / Besonderes | Digital technology | |||||
Seminar in Distributed Systems | ||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |
263-3900-00L | Communication Networks Seminar Maximale Teilnehmerzahl: 20 | W | 2 KP | 2S | A. Singla | |
Kurzbeschreibung | We will study recent advances in computer networking by reading, presenting, and discussing research papers from recent iterations of the top conferences in the area, including NSDI, SIGCOMM, and CoNEXT. | |||||
Lernziel | The objectives are (a) to understand the state-of-the-art in the field; (b) to learn to read, present and critique papers; (c) to engage in discussion and debate about research questions; and (d) to identify opportunities for new research. Students are expected to attend the entire seminar, choose a topic for presentation from a given list, make a presentation on that topic, and lead the discussion. Further, for each reading, every student needs to submit a review before the in-class discussion. Students are evaluated on their submitted reviews, their presentation and discussion leadership, and participation in seminar discussions. | |||||
263-3504-00L | Hardware Acceleration for Data Processing | W | 2 KP | 2S | G. Alonso, T. Hoefler, O. Mutlu, C. Zhang | |
Kurzbeschreibung | The seminar will cover topics related to data processing using new hardware in general and hardware accelerators (GPU, FPGA, specialized processors) in particular. | |||||
Lernziel | The seminar will cover topics related to data processing using new hardware in general and hardware accelerators (GPU, FPGA, specialized processors) in particular. | |||||
Inhalt | The general application areas are big data and machine learning. The systems covered will include systems from computer architecture, high performance computing, data appliances, and data centers. | |||||
Voraussetzungen / Besonderes | Students taking this seminar should have the necessary background in systems and low level programming. | |||||
Vertiefung in Information Security | ||||||
Kernfächer der Vertiefung in Information Security | ||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |
252-0463-00L | Security Engineering | W | 5 KP | 2V + 2U | D. Basin | |
Kurzbeschreibung | Subject of the class are engineering techniques for developing secure systems. We examine concepts, methods and tools, applied within the different activities of the SW development process to improve security of the system. Topics: security requirements&risk analysis, system modeling&model-based development methods, implementation-level security, and evaluation criteria for secure systems | |||||
Lernziel | Security engineering is an evolving discipline that unifies two important areas: software engineering and security. Software Engineering addresses the development and application of methods for systematically developing, operating, and maintaining, complex, high-quality software. Security, on the other hand, is concerned with assuring and verifying properties of a system that relate to confidentiality, integrity, and availability of data. The goal of this class is to survey engineering techniques for developing secure systems. We will examine concepts, methods, and tools that can be applied within the different activities of the software development process, in order to improve the security of the resulting systems. Topics covered include * security requirements & risk analysis, * system modeling and model-based development methods, * implementation-level security, and * evaluation criteria for the development of secure systems | |||||
Inhalt | Security engineering is an evolving discipline that unifies two important areas: software engineering and security. Software Engineering addresses the development and application of methods for systematically developing, operating, and maintaining, complex, high-quality software. Security, on the other hand, is concerned with assuring and verifying properties of a system that relate to confidentiality, integrity, and availability of data. The goal of this class is to survey engineering techniques for developing secure systems. We will examine concepts, methods, and tools that can be applied within the different activities of the software development process, in order to improve the security of the resulting systems. Topics covered include * security requirements & risk analysis, * system modeling and model-based development methods, * implementation-level security, and * evaluation criteria for the development of secure systems Modules taught: 1. Introduction - Introduction of Infsec group and speakers - Security meets SW engineering: an introduction - The activities of SW engineering, and where security fits in - Overview of this class 2. Requirements Engineering: Security Requirements and some Analysis - overview: functional and non-functional requirements - use cases, misuse cases, sequence diagrams - safety and security - FMEA, FTA, attack trees 3. Modeling in the design activities - structure, behavior, and data flow - class diagrams, statecharts 4. Model-driven security for access control (design) - SecureUML as a language for access control - Combining Design Modeling Languages with SecureUML - Semantics, i.e., what does it all mean, - Generation - Examples and experience 5. Model-driven security (Part II) - Continuation of above topics 6. Security patterns (design and implementation) 7. Implementation-level security - Buffer overflows - Input checking - Injection attacks 8. Testing - overview - model-based testing - testing security properties 9. Risk analysis and management 1 (project management) - "risk": assets, threats, vulnerabilities, risk - risk assessment: quantitative and qualitative - safeguards - generic risk analysis procedure - The OCTAVE approach 10. Risk analysis: IT baseline protection - Overview - Example 11. Evaluation criteria - CMMI - systems security engineering CMM - common criteria 12. Guest lecture - TBA | |||||
Literatur | - Ross Anderson: Security Engineering, Wiley, 2001. - Matt Bishop: Computer Security, Pearson Education, 2003. - Ian Sommerville: Software Engineering, 6th ed., Addison-Wesley, 2001. - John Viega, Gary McGraw: Building Secure Software, Addison-Wesley, 2002. - Further relevant books and journal/conference articles will be announced in the lecture. | |||||
Voraussetzungen / Besonderes | Prerequisite: Class on Information Security | |||||
252-1414-00L | System Security | W | 5 KP | 2V + 2U | S. Capkun, A. Perrig | |
Kurzbeschreibung | The first part of the lecture covers individual system aspects starting with tamperproof or tamper-resistant hardware in general over operating system related security mechanisms to application software systems, such as host based intrusion detection systems. In the second part, the focus is on system design and methodologies for building secure systems. | |||||
Lernziel | In this lecture, students learn about the security requirements and capabilities that are expected from modern hardware, operating systems, and other software environments. An overview of available technologies, algorithms and standards is given, with which these requirements can be met. | |||||
Inhalt | The first part of the lecture covers individual system's aspects starting with tamperproof or tamperresistant hardware in general over operating system related security mechanisms to application software systems such as host based intrusion detetction systems. The main topics covered are: tamper resistant hardware, CPU support for security, protection mechanisms in the kernel, file system security (permissions / ACLs / network filesystem issues), IPC Security, mechanisms in more modern OS, such as Capabilities and Zones, Libraries and Software tools for security assurance, etc. In the second part, the focus is on system design and methodologies for building secure systems. Topics include: patch management, common software faults (buffer overflows, etc.), writing secure software (design, architecture, QA, testing), compiler-supported security, language-supported security, logging and auditing (BSM audit, dtrace, ...), cryptographic support, and trustworthy computing (TCG, SGX). Along the lectures, model cases will be elaborated and evaluated in the exercises. | |||||
263-4640-00L | Network Security | W | 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 against them. | |||||
Lernziel | - Students are familiar with fundamental network security concepts. - Students can assess current threats that Internet services and networked devices face, and can evaluate appropriate countermeasures. - Students can identify and assess 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. | |||||
Wahlfächer der Vertiefung in Information Security | ||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |
252-0811-00L | Applied Security 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 | 8 KP | 7P | D. Basin | |
Kurzbeschreibung | Hands-on course on applied aspects of information security. Applied information security, operating system security, OS hardening, computer forensics, web application security, project work, design, implementation, and configuration of security mechanisms, risk analysis, system review. | |||||
Lernziel | The Applied Security Laboratory addresses four major topics: operating system security (hardening, vulnerability scanning, access control, logging), application security with an emphasis on web applications (web server setup, common web exploits, authentication, session handling, code security), computer forensics, and risk analysis and risk management. | |||||
Inhalt | This course emphasizes applied aspects of Information Security. The students will study a number of topics in a hands-on fashion and carry out experiments in order to better understand the need for secure implementation and configuration of IT systems and to assess the effectivity and impact of security measures. This part is based on a book and virtual machines that include example applications, questions, and answers. The students will also complete an independent project: based on a set of functional requirements, they will design and implement a prototypical IT system. In addition, they will conduct a thorough security analysis and devise appropriate security measures for their systems. Finally, they will carry out a technical and conceptual review of another system. All project work will be performed in teams and must be properly documented. | |||||
Skript | The course is based on the book "Applied Information Security - A Hands-on Approach". More information: Link | |||||
Literatur | Recommended reading includes: * Pfleeger, Pfleeger: Security in Computing, Third Edition, Prentice Hall, available online from within ETH * Garfinkel, Schwartz, Spafford: Practical Unix & Internet Security, O'Reilly & Associates. * Various: OWASP Guide to Building Secure Web Applications, available online * Huseby: Innocent Code -- A Security Wake-Up Call for Web Programmers, John Wiley & Sons. * Scambray, Schema: Hacking Exposed Web Applications, McGraw-Hill. * O'Reilly, Loukides: Unix Power Tools, O'Reilly & Associates. * Frisch: Essential System Administration, O'Reilly & Associates. * NIST: Risk Management Guide for Information Technology Systems, available online as PDF * BSI: IT-Grundschutzhandbuch, available online | |||||
Voraussetzungen / Besonderes | * The lab allows flexible working since there are only few mandatory meetings during the semester. * The lab covers a variety of different techniques. Thus, participating students should have a solid foundation in the following areas: information security, operating system administration (especially Unix/Linux), and networking. Students are also expected to have a basic understanding of HTML, PHP, JavaScript, and MySQL because several examples are implemented in these languages. * Students must be prepared to spend more than three hours per week to complete the lab assignments and the project. This applies particularly to students who do not meet the recommended requirements given above. Successful participants of the course receive 8 credits as compensation for their effort. * All participants must sign the lab's charter and usage policy during the introduction lecture. | |||||
252-1411-00L | Security of Wireless Networks | W | 5 KP | 2V + 1U + 1A | S. Capkun | |
Kurzbeschreibung | Core Elements: Wireless communication channel, Wireless network architectures and protocols, Attacks on wireless networks, Protection techniques. | |||||
Lernziel | After this course, the students should be able to: describe and classify security goals and attacks in wireless networks; describe security architectures of the following wireless systems and networks: 802.11, GSM/UMTS, RFID, ad hoc/sensor networks; reason about security protocols for wireless network; implement mechanisms to secure 802.11 networks. | |||||
Inhalt | Wireless channel basics. Wireless electronic warfare: jamming and target tracking. Basic security protocols in cellular, WLAN and multi-hop networks. Recent advances in security of multi-hop networks; RFID privacy challenges and solutions. | |||||
263-4630-00L | Computer-Aided Modelling and Reasoning 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 KP | 7P | A. Lochbihler, D. Traytel | |
Kurzbeschreibung | The "computer-aided modelling and reasoning" lab is a hands-on course about using an interactive theorem prover to construct formal models of algorithms, protocols, and programming languages and to reason about their properties. The lab has two parts: The first introduces various modelling and proof techniques. The second part consists of a project in which the students apply these techniques | |||||
Lernziel | The students learn to effectively use a theorem prover to create unambiguous models and rigorously analyse them. They learn how to write precise and concise specifications, to exploit the theorem prover as a tool for checking and analysing such models and for taming their complexity, and to extract certified executable implementations from such specifications. | |||||
Inhalt | The "computer-aided modelling and reasoning" lab is a hands-on course about using an interactive theorem prover to construct formal models of algorithms, protocols, and programming languages and to reason about their properties. The focus is on applying logical methods to concrete problems supported by a theorem prover. The course will demonstrate the challenges of formal rigor, but also the benefits of machine support in modelling, proving and validating. The lab will have two parts: The first part introduces basic and advanced modelling techniques (functional programs, inductive definitions, modules), the associated proof techniques (term rewriting, resolution, induction, proof automation), and compilation of the models to certified executable code. In the second part, the students work in teams of two on a project assignment in which they apply these techniques: they build a formal model and prove its desired properties. The project lies in the area of programming languages, model checking, or information security. | |||||
Literatur | Textbook: Tobias Nipkow, Gerwin Klein. Concrete Semantics, part 1 (Link) | |||||
Seminar in Information Security | ||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |
252-4601-00L | Current Topics in Information Security Number of participants limited to 24. | W | 2 KP | 2S | D. Basin, S. Capkun, A. Perrig | |
Kurzbeschreibung | The seminar covers various topics in information security: security protocols (models, specification & verification), trust management, access control, non-interference, side-channel attacks, identity-based cryptography, host-based attack detection, anomaly detection in backbone networks, key-management for sensor networks. | |||||
Lernziel | The main goals of the seminar are the independent study of scientific literature and assessment of its contributions as well as learning and practicing presentation techniques. | |||||
Inhalt | The seminar covers various topics in information security, including network security, cryptography and security protocols. The participants are expected to read a scientific paper and present it in a 35-40 min talk. At the beginning of the semester a short introduction to presentation techniques will be given. Selected Topics - security protocols: models, specification & verification - trust management, access control and non-interference - side-channel attacks - identity-based cryptography - host-based attack detection - anomaly detection in backbone networks - key-management for sensor networks | |||||
Literatur | The reading list will be published on the course web site. | |||||
Vertiefung in Information Systems | ||||||
Kernfächer der Vertiefung in Information Systems | ||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |
252-0463-00L | Security Engineering | W | 5 KP | 2V + 2U | D. Basin | |
Kurzbeschreibung | Subject of the class are engineering techniques for developing secure systems. We examine concepts, methods and tools, applied within the different activities of the SW development process to improve security of the system. Topics: security requirements&risk analysis, system modeling&model-based development methods, implementation-level security, and evaluation criteria for secure systems | |||||
Lernziel | Security engineering is an evolving discipline that unifies two important areas: software engineering and security. Software Engineering addresses the development and application of methods for systematically developing, operating, and maintaining, complex, high-quality software. Security, on the other hand, is concerned with assuring and verifying properties of a system that relate to confidentiality, integrity, and availability of data. The goal of this class is to survey engineering techniques for developing secure systems. We will examine concepts, methods, and tools that can be applied within the different activities of the software development process, in order to improve the security of the resulting systems. Topics covered include * security requirements & risk analysis, * system modeling and model-based development methods, * implementation-level security, and * evaluation criteria for the development of secure systems | |||||
Inhalt | Security engineering is an evolving discipline that unifies two important areas: software engineering and security. Software Engineering addresses the development and application of methods for systematically developing, operating, and maintaining, complex, high-quality software. Security, on the other hand, is concerned with assuring and verifying properties of a system that relate to confidentiality, integrity, and availability of data. The goal of this class is to survey engineering techniques for developing secure systems. We will examine concepts, methods, and tools that can be applied within the different activities of the software development process, in order to improve the security of the resulting systems. Topics covered include * security requirements & risk analysis, * system modeling and model-based development methods, * implementation-level security, and * evaluation criteria for the development of secure systems Modules taught: 1. Introduction - Introduction of Infsec group and speakers - Security meets SW engineering: an introduction - The activities of SW engineering, and where security fits in - Overview of this class 2. Requirements Engineering: Security Requirements and some Analysis - overview: functional and non-functional requirements - use cases, misuse cases, sequence diagrams - safety and security - FMEA, FTA, attack trees 3. Modeling in the design activities - structure, behavior, and data flow - class diagrams, statecharts 4. Model-driven security for access control (design) - SecureUML as a language for access control - Combining Design Modeling Languages with SecureUML - Semantics, i.e., what does it all mean, - Generation - Examples and experience 5. Model-driven security (Part II) - Continuation of above topics 6. Security patterns (design and implementation) 7. Implementation-level security - Buffer overflows - Input checking - Injection attacks 8. Testing - overview - model-based testing - testing security properties 9. Risk analysis and management 1 (project management) - "risk": assets, threats, vulnerabilities, risk - risk assessment: quantitative and qualitative - safeguards - generic risk analysis procedure - The OCTAVE approach 10. Risk analysis: IT baseline protection - Overview - Example 11. Evaluation criteria - CMMI - systems security engineering CMM - common criteria 12. Guest lecture - TBA | |||||
Literatur | - Ross Anderson: Security Engineering, Wiley, 2001. - Matt Bishop: Computer Security, Pearson Education, 2003. - Ian Sommerville: Software Engineering, 6th ed., Addison-Wesley, 2001. - John Viega, Gary McGraw: Building Secure Software, Addison-Wesley, 2002. - Further relevant books and journal/conference articles will be announced in the lecture. | |||||
Voraussetzungen / Besonderes | Prerequisite: Class on Information Security | |||||
252-0535-00L | Machine Learning | W | 8 KP | 3V + 2U + 2A | J. M. Buhmann | |
Kurzbeschreibung | Machine learning algorithms provide analytical methods to search data sets for characteristic patterns. Typical tasks include the classification of data, function fitting and clustering, with applications in image and speech analysis, bioinformatics and exploratory data analysis. This course is accompanied by practical machine learning projects. | |||||
Lernziel | Students will be familiarized with the most important concepts and algorithms for supervised and unsupervised learning; reinforce the statistics knowledge which is indispensible to solve modeling problems under uncertainty. Key concepts are the generalization ability of algorithms and systematic approaches to modeling and regularization. A machine learning project will provide an opportunity to test the machine learning algorithms on real world data. | |||||
Inhalt | The theory of fundamental machine learning concepts is presented in the lecture, and illustrated with relevant applications. Students can deepen their understanding by solving both pen-and-paper and programming exercises, where they implement and apply famous algorithms to real-world data. Topics covered in the lecture include: - Bayesian theory of optimal decisions - Maximum likelihood and Bayesian parameter inference - Classification with discriminant functions: Perceptrons, Fisher's LDA and support vector machines (SVM) - Ensemble methods: Bagging and Boosting - Regression: least squares, ridge and LASSO penalization, non-linear regression and the bias-variance trade-off - Non parametric density estimation: Parzen windows, nearest nieghbour - Dimension reduction: principal component analysis (PCA) and beyond | |||||
Skript | No lecture notes, but slides will be made available on the course webpage. | |||||
Literatur | C. Bishop. Pattern Recognition and Machine Learning. Springer 2007. R. Duda, P. Hart, and D. Stork. Pattern Classification. John Wiley & Sons, second edition, 2001. T. Hastie, R. Tibshirani, and J. Friedman. The Elements of Statistical Learning: Data Mining, Inference and Prediction. Springer, 2001. L. Wasserman. All of Statistics: A Concise Course in Statistical Inference. Springer, 2004. | |||||
Voraussetzungen / Besonderes | The course requires solid basic knowledge in analysis, statistics and numerical methods for CSE as well as practical programming experience for solving assignments. Students should at least have followed one previous course offered by the Machine Learning Institute (e.g., CIL or LIS) or an equivalent course offered by another institution. | |||||
Wahlfächer der Vertiefung in Information Systems | ||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |
252-0373-00L | Mobile and Personal Information Systems The course will be offered for the last time. | W | 4 KP | 2V + 1U | M. Norrie | |
Kurzbeschreibung | The course examines how traditional information system architectures and technologies have been adapted to support various forms of mobile and personal information systems. Topics to be covered include: databases of mobile objects; context-aware services; opportunistic information sharing; ambient information; pervasive display systems. | |||||
Lernziel | Students will be introduced to a variety of novel information services and architectures developed for mobile environments in order to gain insight into the requirements and processes involved in designing and developing such systems and learning to think beyond traditional information systems. | |||||
Inhalt | Advances in mobile devices and communication technologies have led to a rapid increase in demands for various forms of mobile information systems where the users, the applications and the databases themselves may be mobile. Based on both lectures and breakout sessions, this course examines the impact of the different forms of mobility and collaboration that systems require nowadays and how these influence the design of systems at the database, the application and the user interface level. For example, traditional data management techniques have to be adapted to meet the requirements of such systems and cope with new connection, access and synchronisation issues. As mobile devices have increasingly become integrated into the users' lives and are expected to support a range of activities in different environments, applications should be context-aware, adapting functionality, information delivery and the user interfaces to the current environment and task. Various forms of software and hardware sensors may be used to determine the current context, raising interesting issues for discussion. Finally, user mobility, and the varying and intermittent connectivity that it implies, gives rise to new forms of dynamic collaboration that require lightweight, but flexible, mechanisms for information synchronisation and consistency maintenance. Here, the interplay of mobile, personal and social context will receive special attention. | |||||
263-3010-00L | Big Data | W | 8 KP | 3V + 2U + 2A | G. Fourny | |
Kurzbeschreibung | The key challenge of the information society is to turn data into information, information into knowledge, knowledge into value. This has become increasingly complex. Data comes in larger volumes, diverse shapes, from different sources. Data is more heterogeneous and less structured than forty years ago. Nevertheless, it still needs to be processed fast, with support for complex operations. | |||||
Lernziel | This combination of requirements, together with the technologies that have emerged in order to address them, is typically referred to as "Big Data." This revolution has led to a completely new way to do business, e.g., develop new products and business models, but also to do science -- which is sometimes referred to as data-driven science or the "fourth paradigm". Unfortunately, the quantity of data produced and available -- now in the Zettabyte range (that's 21 zeros) per year -- keeps growing faster than our ability to process it. Hence, new architectures and approaches for processing it were and are still needed. Harnessing them must involve a deep understanding of data not only in the large, but also in the small. The field of databases evolves at a fast pace. In order to be prepared, to the extent possible, to the (r)evolutions that will take place in the next few decades, the emphasis of the lecture will be on the paradigms and core design ideas, while today's technologies will serve as supporting illustrations thereof. After visiting this lecture, you should have gained an overview and understanding of the Big Data landscape, which is the basis on which one can make informed decisions, i.e., pick and orchestrate the relevant technologies together for addressing each business use case efficiently and consistently. | |||||
Inhalt | This course gives an overview of database technologies and of the most important database design principles that lay the foundations of the Big Data universe. The material is organized along three axes: data in the large, data in the small, data in the very small. A broad range of aspects is covered with a focus on how they fit all together in the big picture of the Big Data ecosystem. - physical storage: distributed file systems (HDFS), object storage(S3), key-value stores - logical storage: document stores (MongoDB), column stores (HBase), graph databases (neo4j), data warehouses (ROLAP) - data formats and syntaxes (XML, JSON, RDF, Turtle, CSV, XBRL, YAML, protocol buffers, Avro) - data shapes and models (tables, trees, graphs, cubes) - type systems and schemas: atomic types, structured types (arrays, maps), set-based type systems (?, *, +) - an overview of functional, declarative programming languages across data shapes (SQL, XQuery, JSONiq, Cypher, MDX) - the most important query paradigms (selection, projection, joining, grouping, ordering, windowing) - paradigms for parallel processing, two-stage (MapReduce) and DAG-based (Spark) - resource management (YARN) - what a data center is made of and why it matters (racks, nodes, ...) - underlying architectures (internal machinery of HDFS, HBase, Spark, neo4j) - optimization techniques (functional and declarative paradigms, query plans, rewrites, indexing) - applications. Large scale analytics and machine learning are outside of the scope of this course. Guest lectures planned so far: - Bart Samwel (Google) on F1, Spanner | |||||
Literatur | Papers from scientific conferences and journals. References will be given as part of the course material during the semester. | |||||
Voraussetzungen / Besonderes | This course, in the autumn semester, is only intended for: - Computer Science students - Data Science students - CBB students with a Computer Science background Another version of this course will be offered in Spring for students of other departments. However, if you would like to already start learning about databases now, a course worth taking as a preparation/good prequel to the Spring edition of Big Data is the "Information Systems for Engineers" course, offered this Fall for other departments as well, and introducing relational databases and SQL. | |||||
263-3210-00L | Deep Learning Maximale Teilnehmerzahl: 300 | W | 4 KP | 2V + 1U | T. Hofmann | |
Kurzbeschreibung | Deep learning is an area within machine learning that deals with algorithms and models that automatically induce multi-level data representations. | |||||
Lernziel | In recent years, deep learning and deep networks have significantly improved the state-of-the-art in many application domains such as computer vision, speech recognition, and natural language processing. This class will cover the mathematical foundations of deep learning and provide insights into model design, training, and validation. The main objective is a profound understanding of why these methods work and how. There will also be a rich set of hands-on tasks and practical projects to familiarize students with this emerging technology. | |||||
Voraussetzungen / Besonderes | This is an advanced level course that requires some basic background in machine learning. More importantly, students are expected to have a very solid mathematical foundation, including linear algebra, multivariate calculus, and probability. The course will make heavy use of mathematics and is not (!) meant to be an extended tutorial of how to train deep networks with tools like Torch or Tensorflow, although that may be a side benefit. The participation in the course is subject to the following conditions: 1) The number of participants is limited to 300 students (MSc and PhDs). 2) Students must have taken the exam in Machine Learning (252-0535-00) or have acquired equivalent knowledge, see exhaustive list below: Machine Learning Link Computational Intelligence Lab Link Learning and Intelligent Systems Link Statistical Learning Theory Link Computational Statistics Link Probabilistic Artificial Intelligence Link Data Mining: Learning from Large Data Sets Link | |||||
263-3300-00L | Data Science Lab Maximale Teilnehmerzahl: 30. Im Masterstudium können zusätzlich zu den Vertiefungsübergreifenden Fächern nur max. 10 Kreditpunkte über Laboratorien erarbeitet werden. Weitere Laboratorien werden auf dem Beiblatt aufgeführt. | W | 10 KP | 9P | C. Zhang, K. Schawinski | |
Kurzbeschreibung | In this class, we bring together data science applications provided by ETH researchers outside computer science and teams of computer science master's students. Two to three students will form a team working on data science/machine learning-related research topics provided by scientists in a diverse range of domains such as astronomy, biology, social sciences etc. | |||||
Lernziel | The goal of this class if for students to gain experience of dealing with data science and machine learning applications "in the wild". Students are expected to go through the full process starting from data cleaning, modeling, execution, debugging, error analysis, and quality/performance refinement. Website: Link | |||||
Voraussetzungen / Besonderes | Each student is required to send the lecturer their CV and transcript and the lecturer will decide the enrollment on a per-student basis. Moreover, the students are expected to have experience about machine learning and deep learning. EMAIL to send CV: Link | |||||
263-5200-00L | Data Mining: Learning from Large Data Sets | W | 4 KP | 2V + 1U | A. Krause, Y. Levy | |
Kurzbeschreibung | Many scientific and commercial applications require insights from massive, high-dimensional data sets. This courses introduces principled, state-of-the-art techniques from statistics, algorithms and discrete and convex optimization for learning from such large data sets. The course both covers theoretical foundations and practical applications. | |||||
Lernziel | Many scientific and commercial applications require us to obtain insights from massive, high-dimensional data sets. In this graduate-level course, we will study principled, state-of-the-art techniques from statistics, algorithms and discrete and convex optimization for learning from such large data sets. The course will both cover theoretical foundations and practical applications. | |||||
Inhalt | Topics covered: - Dealing with large data (Data centers; Map-Reduce/Hadoop; Amazon Mechanical Turk) - Fast nearest neighbor methods (Shingling, locality sensitive hashing) - Online learning (Online optimization and regret minimization, online convex programming, applications to large-scale Support Vector Machines) - Multi-armed bandits (exploration-exploitation tradeoffs, applications to online advertising and relevance feedback) - Active learning (uncertainty sampling, pool-based methods, label complexity) - Dimension reduction (random projections, nonlinear methods) - Data streams (Sketches, coresets, applications to online clustering) - Recommender systems | |||||
Voraussetzungen / Besonderes | Prerequisites: Solid basic knowledge in statistics, algorithms and programming. Background in machine learning is helpful but not required. | |||||
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. | |||||
Inhalt | Topics covered: - Search (BFS, DFS, A*), constraint satisfaction and optimization - Tutorial in logic (propositional, first-order) - Probability - 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 | |||||
252-0341-01L | Information Retrieval Findet dieses Semester nicht statt. | W | 4 KP | 2V + 1U | T. Hofmann | |
Kurzbeschreibung | Introduction to information retrieval with a focus on text documents and images. Main topics comprise extraction of characteristic features from documents, index structures, retrieval models, search algorithms, benchmarking, and feedback mechanisms. Searching the web, images and XML collections demonstrate recent applications of information retrieval and their implementation. | |||||
Lernziel | In depth understanding of managing, indexing, and retrieving documents with text, image and XML content. Knowledge about basic search algorithms on the web, benchmarking of search algorithms, and relevance feedback methods. | |||||
263-2400-00L | Reliable and Interpretable Artificial Intelligence | W | 4 KP | 2V + 1U | M. Vechev | |
Kurzbeschreibung | Creating reliable and explainable probabilistic models is a major challenge to solving the artificial intelligence problem. This course covers some of the latest advances that bring us closer to constructing such models. These advances span the areas of program synthesis/induction, programming languages, machine learning, and probabilistic programming. | |||||
Lernziel | The main objective of this course is to expose students to the latest and most exciting research in the area of explainable and interpretable artificial intelligence, a topic of fundamental and increasing importance. Upon completion of the course, the students should have mastered the underlying methods and be able to apply them to a variety of problems. | |||||
Inhalt | The material draws on some of the latest research advances in several areas of computer science: program synthesis/induction, programming languages, deep learning, and probabilistic programming. The material consists of three interconnected parts: Part I: Program Synthesis/Induction ---------------------------------------- Synthesis is a new frontier in AI where the computer programs itself from user provided examples. Synthesis has significant applications for non-programmers as well as for programmers where it can provide massive productivity increase (e.g., wrangling for data scientists). Modern synthesis techniques excel at learning functions over discrete spaces from (partial) intent. There have been a number of recent, exciting breakthroughs in techniques that discover complex, interpretable/explainable functions from few examples, partial sketches and other forms of supervision. Topics covered: - Theory of program synthesis: version spaces, counter-example guided inductive synthesis (CEGIS) with SAT/SMT, synthesis from noisy examples, learning with few examples, compositional synthesis, lower bounds on learning. - Applications of techniques: synthesis for end users (e.g., spreadsheets), data analytics and financial computing, interpretable machine learning models for structured data. - Combining neural networks and synthesis Part II: Robustness of Deep Learning ----------------------------------------- Deep learning methods based on neural networks have made impressive advances in recent years. A fundamental challenge with these models is that of understanding what the trained neural network has actually learned, for example, how stable / robust the network is to slight variations of the input (e.g., an image or a video), how easy it is to fool the network into mis-classifying obvious inputs, etc. Topics covered: - Basics of neural networks: fully connected, convolutional networks, residual networks, activation functions - Finding adversarial examples in deep learning with SMT - Methods and tools to guarantee robustness of deep nets (e.g., via affine arithmetic, SMT solvers); synthesis of robustness specs Part III: Probabilistic Programming -------------------------------------- Probabilistic programming is an emerging direction whose goal is democratize the construction of probabilistic models. In probabilistic programming, the user specifies a model while inference is left to the underlying solver. The idea is that the higher level of abstraction makes it easier to express, understand and reason about probabilistic models. Topics covered: - Inference: MCMC samplers and tactics (approximate), symbolic inference (exact). - Semantics: basic measure theoretic semantics of probability; bridging measure theory and symbolic inference. - Frameworks and languages: WebPPL (MIT/Stanford), PSI (ETH), Picture/Venture (MIT), Anglican (Oxford). - Synthesis for probabilistic programs: this connects to Part I - Applications of probabilistic programming: using the above solvers for reasoning about bias in machine learning models (connects to Part II), reasoning about computer networks, security protocols, approximate computing, cognitive models, rational agents. | |||||
Seminar in Information Systems | ||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |
263-3504-00L | Hardware Acceleration for Data Processing | W | 2 KP | 2S | G. Alonso, T. Hoefler, O. Mutlu, C. Zhang | |
Kurzbeschreibung | The seminar will cover topics related to data processing using new hardware in general and hardware accelerators (GPU, FPGA, specialized processors) in particular. | |||||
Lernziel | The seminar will cover topics related to data processing using new hardware in general and hardware accelerators (GPU, FPGA, specialized processors) in particular. | |||||
Inhalt | The general application areas are big data and machine learning. The systems covered will include systems from computer architecture, high performance computing, data appliances, and data centers. | |||||
Voraussetzungen / Besonderes | Students taking this seminar should have the necessary background in systems and low level programming. | |||||
252-5051-00L | Advanced Topics in Machine Learning Number of participants limited to 40. | W | 2 KP | 2S | J. M. Buhmann, T. Hofmann, A. Krause, G. Rätsch | |
Kurzbeschreibung | In this seminar, recent papers of the pattern recognition and machine learning literature are presented and discussed. Possible topics cover statistical models in computer vision, graphical models and machine learning. | |||||
Lernziel | The seminar "Advanced Topics in Machine Learning" familiarizes students with recent developments in pattern recognition and machine learning. Original articles have to be presented and critically reviewed. The students will learn how to structure a scientific presentation in English which covers the key ideas of a scientific paper. An important goal of the seminar presentation is to summarize the essential ideas of the paper in sufficient depth while omitting details which are not essential for the understanding of the work. The presentation style will play an important role and should reach the level of professional scientific presentations. | |||||
Inhalt | The seminar will cover a number of recent papers which have emerged as important contributions to the pattern recognition and machine learning literature. The topics will vary from year to year but they are centered on methodological issues in machine learning like new learning algorithms, ensemble methods or new statistical models for machine learning applications. Frequently, papers are selected from computer vision or bioinformatics - two fields, which relies more and more on machine learning methodology and statistical models. | |||||
Literatur | The papers will be presented in the first session of the seminar. | |||||
Vertiefung in Software Engineering | ||||||
Kernfächer der Vertiefung in Software Engineering | ||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |
252-0237-00L | Concepts of Object-Oriented Programming | W | 6 KP | 3V + 2U | P. Müller | |
Kurzbeschreibung | Course that focuses on an in-depth understanding of object-oriented programming and compares designs of object-oriented programming languages. Topics include different flavors of type systems, inheritance models, encapsulation in the presence of aliasing, object and class initialization, program correctness, reflection | |||||
Lernziel | After this course, students will: Have a deep understanding of advanced concepts of object-oriented programming and their support through various language features. Be able to understand language concepts on a semantic level and be able to compare and evaluate language designs. Be able to learn new languages more rapidly. Be aware of many subtle problems of object-oriented programming and know how to avoid them. | |||||
Inhalt | The main goal of this course is to convey a deep understanding of the key concepts of sequential object-oriented programming and their support in different programming languages. This is achieved by studying how important challenges are addressed through language features and programming idioms. In particular, the course discusses alternative language designs by contrasting solutions in languages such as C++, C#, Eiffel, Java, Python, and Scala. The course also introduces novel ideas from research languages that may influence the design of future mainstream languages. The topics discussed in the course include among others: The pros and cons of different flavors of type systems (for instance, static vs. dynamic typing, nominal vs. structural, syntactic vs. behavioral typing) The key problems of single and multiple inheritance and how different languages address them Generic type systems, in particular, Java generics, C# generics, and C++ templates The situations in which object-oriented programming does not provide encapsulation, and how to avoid them The pitfalls of object initialization, exemplified by a research type system that prevents null pointer dereferencing How to maintain the consistency of data structures | |||||
Literatur | Will be announced in the lecture. | |||||
Voraussetzungen / Besonderes | Prerequisites: Mastering at least one object-oriented programming language (this course will NOT provide an introduction to object-oriented programming); programming experience | |||||
263-2800-00L | Design of Parallel and High-Performance Computing | W | 7 KP | 3V + 2U + 1A | T. Hoefler, M. Püschel | |
Kurzbeschreibung | Advanced topics in parallel / concurrent programming. | |||||
Lernziel | Understand concurrency paradigms and models from a higher perspective and acquire skills for designing, structuring and developing possibly large concurrent software systems. Become able to distinguish parallelism in problem space and in machine space. Become familiar with important technical concepts and with concurrency folklore. | |||||
Wahlfächer der Vertiefung in Software Engineering | ||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |
252-0286-00L | System Construction | W | 4 KP | 2V + 1U | F. Friedrich Wicker | |
Kurzbeschreibung | Main goal is teaching knowledge and skills needed for building custom operating systems and runtime environments. Relevant topics are studied at the example of sufficiently simple systems that have been built at our Institute in the past, ranging from purpose-oriented single processor real-time systems up to generic system kernels on multi-core hardware. | |||||
Lernziel | The lecture's main goal is teaching of knowledge and skills needed for building custom operating systems and runtime environments. The lecture intends to supplement more abstract views of software construction, and to contribute to a better understanding of "how it really works" behind the scenes. | |||||
Inhalt | Case Study 1: Embedded System - Safety-critical and fault-tolerant monitoring system - Based on an auto-pilot system for helicopters Case Study 2: Multi-Processor Operating System - Universal operating system for symmetric multiprocessors - Shared memory approach - Based on Language-/System Codesign (Active Oberon / A2) Case Study 3: Custom designed Single-Processor System - RISC Single-processor system designed from scratch - Hardware on FPGA - Graphical workstation OS and compiler (Project Oberon) Case Study 4: Custom-designed Multi-Processor System - Special purpose heterogeneous system on a chip - Masssively parallel hard- and software architecture based on message passing - Focus: dataflow based applications | |||||
Skript | Printed lecture notes will be delivered during the lecture. Slides will also be available from the lecture homepage. | |||||
263-2400-00L | Reliable and Interpretable Artificial Intelligence | W | 4 KP | 2V + 1U | M. Vechev | |
Kurzbeschreibung | Creating reliable and explainable probabilistic models is a major challenge to solving the artificial intelligence problem. This course covers some of the latest advances that bring us closer to constructing such models. These advances span the areas of program synthesis/induction, programming languages, machine learning, and probabilistic programming. | |||||
Lernziel | The main objective of this course is to expose students to the latest and most exciting research in the area of explainable and interpretable artificial intelligence, a topic of fundamental and increasing importance. Upon completion of the course, the students should have mastered the underlying methods and be able to apply them to a variety of problems. | |||||
Inhalt | The material draws on some of the latest research advances in several areas of computer science: program synthesis/induction, programming languages, deep learning, and probabilistic programming. The material consists of three interconnected parts: Part I: Program Synthesis/Induction ---------------------------------------- Synthesis is a new frontier in AI where the computer programs itself from user provided examples. Synthesis has significant applications for non-programmers as well as for programmers where it can provide massive productivity increase (e.g., wrangling for data scientists). Modern synthesis techniques excel at learning functions over discrete spaces from (partial) intent. There have been a number of recent, exciting breakthroughs in techniques that discover complex, interpretable/explainable functions from few examples, partial sketches and other forms of supervision. Topics covered: - Theory of program synthesis: version spaces, counter-example guided inductive synthesis (CEGIS) with SAT/SMT, synthesis from noisy examples, learning with few examples, compositional synthesis, lower bounds on learning. - Applications of techniques: synthesis for end users (e.g., spreadsheets), data analytics and financial computing, interpretable machine learning models for structured data. - Combining neural networks and synthesis Part II: Robustness of Deep Learning ----------------------------------------- Deep learning methods based on neural networks have made impressive advances in recent years. A fundamental challenge with these models is that of understanding what the trained neural network has actually learned, for example, how stable / robust the network is to slight variations of the input (e.g., an image or a video), how easy it is to fool the network into mis-classifying obvious inputs, etc. Topics covered: - Basics of neural networks: fully connected, convolutional networks, residual networks, activation functions - Finding adversarial examples in deep learning with SMT - Methods and tools to guarantee robustness of deep nets (e.g., via affine arithmetic, SMT solvers); synthesis of robustness specs Part III: Probabilistic Programming -------------------------------------- Probabilistic programming is an emerging direction whose goal is democratize the construction of probabilistic models. In probabilistic programming, the user specifies a model while inference is left to the underlying solver. The idea is that the higher level of abstraction makes it easier to express, understand and reason about probabilistic models. Topics covered: - Inference: MCMC samplers and tactics (approximate), symbolic inference (exact). - Semantics: basic measure theoretic semantics of probability; bridging measure theory and symbolic inference. - Frameworks and languages: WebPPL (MIT/Stanford), PSI (ETH), Picture/Venture (MIT), Anglican (Oxford). - Synthesis for probabilistic programs: this connects to Part I - Applications of probabilistic programming: using the above solvers for reasoning about bias in machine learning models (connects to Part II), reasoning about computer networks, security protocols, approximate computing, cognitive models, rational agents. | |||||
263-2810-00L | Advanced Compiler Design | W | 7 KP | 3V + 2U + 1A | R. Eigenmann, 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-4630-00L | Computer-Aided Modelling and Reasoning 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 KP | 7P | A. Lochbihler, D. Traytel | |
Kurzbeschreibung | The "computer-aided modelling and reasoning" lab is a hands-on course about using an interactive theorem prover to construct formal models of algorithms, protocols, and programming languages and to reason about their properties. The lab has two parts: The first introduces various modelling and proof techniques. The second part consists of a project in which the students apply these techniques | |||||
Lernziel | The students learn to effectively use a theorem prover to create unambiguous models and rigorously analyse them. They learn how to write precise and concise specifications, to exploit the theorem prover as a tool for checking and analysing such models and for taming their complexity, and to extract certified executable implementations from such specifications. | |||||
Inhalt | The "computer-aided modelling and reasoning" lab is a hands-on course about using an interactive theorem prover to construct formal models of algorithms, protocols, and programming languages and to reason about their properties. The focus is on applying logical methods to concrete problems supported by a theorem prover. The course will demonstrate the challenges of formal rigor, but also the benefits of machine support in modelling, proving and validating. The lab will have two parts: The first part introduces basic and advanced modelling techniques (functional programs, inductive definitions, modules), the associated proof techniques (term rewriting, resolution, induction, proof automation), and compilation of the models to certified executable code. In the second part, the students work in teams of two on a project assignment in which they apply these techniques: they build a formal model and prove its desired properties. The project lies in the area of programming languages, model checking, or information security. | |||||
Literatur | Textbook: Tobias Nipkow, Gerwin Klein. Concrete Semantics, part 1 (Link) | |||||
Seminar in Software Engineering | ||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |
263-2100-00L | Research Topics in Software Engineering Maximale Teilnehmerzahl: 22 | W | 2 KP | 2S | P. Müller, T. Gross, M. Püschel, M. Vechev | |
Kurzbeschreibung | This seminar is an opportunity to become familiar with current research in software engineering and more generally with the methods and challenges of scientific research. | |||||
Lernziel | Each student will be asked to study some papers from the recent software engineering literature and review them. This is an exercise in critical review and analysis. Active participation is required (a presentation of a paper as well as participation in discussions). | |||||
Inhalt | The aim of this seminar is to introduce students to recent research results in the area of programming languages and software engineering. To accomplish that, students will study and present research papers in the area as well as participate in paper discussions. The papers will span topics in both theory and practice, including papers on program verification, program analysis, testing, programming language design, and development tools. A particular focus will be on domain-specific languages. | |||||
Literatur | The publications to be presented will be announced on the seminar home page at least one week before the first session. | |||||
Voraussetzungen / Besonderes | Organizational note: the seminar will meet only when there is a scheduled presentation. Please consult the seminar's home page for information. | |||||
263-2920-00L | Machine Learning for Interactive Systems and Advanced Programming Tools Findet dieses Semester nicht statt. | W | 2 KP | 2S | O. Hilliges, M. Vechev | |
Kurzbeschreibung | Seminar on the intersection of machine learning, interactive systems and advanced concepts in programming and programming tools. | |||||
Lernziel | The seminar will cover a variety of machine learning models and algorithms (including deep neural networks) and will discuss their applications in a diverse set of domains. Furthermore, the seminar will discuss how domain knowledge is integrated into vanilla ML models. | |||||
Inhalt | Seminars often suffer from poor attention retention and low student engagement. This is often due to the format of the seminar where only one student reads papers in-depth and then prepares a long presentation about one or sometimes several papers. There is little reason for the other students to really pay attention or engage in the discussion. To improve this the seminar will use a case-study format where all students read the same paper each week but fulfill different roles and hence prepare with different viewpoints in mind. Student roles/instructions The seminar is organized with each student taking one of the following roles on a rotating basis: Conference Reviewer (e.g., reviewer of UIST/ICML/PLDI ): Complete a full critical review of the paper. Use the original review from and come to a recommendation whether the paper should be accepted or not. Historian: Find out how this paper sits in the context of the related work. Use bibliography tools to find the most influential papers cited by this work and at least one paper influenced by the work (and summarize the two papers). PhD student: Propose a follow-up project for your own research based on this paper - importantly the project should be directly inspired by the paper or even use/extend the method proposed. Hacker: Implement a (simplified) version of the core aspect of the paper. Prepare a demo for the seminar. In case the complexity is too high perform an in-depth analysis of reproducibility of the paper. Detective: Find out background information about the authors. Where did they work when the paper was published; what was their role; who else have they published with; which prior work of the authors may have inspired the current paper? Students may contact the authors (but need to adhere to politeness and courteous manners and stay on topic in their conversations). All students (every week): Come up with alternative title; find a missing result that the paper should have included. | |||||
Voraussetzungen / Besonderes | Participation will be limited subject to available topics. | |||||
Vertiefung in Theoretical Computer Science | ||||||
Kernfächer der Vertiefung in Theoretical Computer Science | ||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |
252-0417-00L | Randomized Algorithms and Probabilistic Methods | W | 8 KP | 3V + 2U + 2A | A. Steger, E. Welzl | |
Kurzbeschreibung | Las Vegas & Monte Carlo algorithms; inequalities of Markov, Chebyshev, Chernoff; negative correlation; Markov chains: convergence, rapidly mixing; generating functions; Examples include: min cut, median, balls and bins, routing in hypercubes, 3SAT, card shuffling, random walks | |||||
Lernziel | After this course students will know fundamental techniques from probabilistic combinatorics for designing randomized algorithms and will be able to apply them to solve typical problems in these areas. | |||||
Inhalt | Randomized Algorithms are algorithms that "flip coins" to take certain decisions. This concept extends the classical model of deterministic algorithms and has become very popular and useful within the last twenty years. In many cases, randomized algorithms are faster, simpler or just more elegant than deterministic ones. In the course, we will discuss basic principles and techniques and derive from them a number of randomized methods for problems in different areas. | |||||
Skript | Yes. | |||||
Literatur | - Randomized Algorithms, Rajeev Motwani and Prabhakar Raghavan, Cambridge University Press (1995) - Probability and Computing, Michael Mitzenmacher and Eli Upfal, Cambridge University Press (2005) | |||||
252-0535-00L | Machine Learning | W | 8 KP | 3V + 2U + 2A | J. M. Buhmann | |
Kurzbeschreibung | Machine learning algorithms provide analytical methods to search data sets for characteristic patterns. Typical tasks include the classification of data, function fitting and clustering, with applications in image and speech analysis, bioinformatics and exploratory data analysis. This course is accompanied by practical machine learning projects. | |||||
Lernziel | Students will be familiarized with the most important concepts and algorithms for supervised and unsupervised learning; reinforce the statistics knowledge which is indispensible to solve modeling problems under uncertainty. Key concepts are the generalization ability of algorithms and systematic approaches to modeling and regularization. A machine learning project will provide an opportunity to test the machine learning algorithms on real world data. | |||||
Inhalt | The theory of fundamental machine learning concepts is presented in the lecture, and illustrated with relevant applications. Students can deepen their understanding by solving both pen-and-paper and programming exercises, where they implement and apply famous algorithms to real-world data. Topics covered in the lecture include: - Bayesian theory of optimal decisions - Maximum likelihood and Bayesian parameter inference - Classification with discriminant functions: Perceptrons, Fisher's LDA and support vector machines (SVM) - Ensemble methods: Bagging and Boosting - Regression: least squares, ridge and LASSO penalization, non-linear regression and the bias-variance trade-off - Non parametric density estimation: Parzen windows, nearest nieghbour - Dimension reduction: principal component analysis (PCA) and beyond | |||||
Skript | No lecture notes, but slides will be made available on the course webpage. | |||||
Literatur | C. Bishop. Pattern Recognition and Machine Learning. Springer 2007. R. Duda, P. Hart, and D. Stork. Pattern Classification. John Wiley & Sons, second edition, 2001. T. Hastie, R. Tibshirani, and J. Friedman. The Elements of Statistical Learning: Data Mining, Inference and Prediction. Springer, 2001. L. Wasserman. All of Statistics: A Concise Course in Statistical Inference. Springer, 2004. | |||||
Voraussetzungen / Besonderes | The course requires solid basic knowledge in analysis, statistics and numerical methods for CSE as well as practical programming experience for solving assignments. Students should at least have followed one previous course offered by the Machine Learning Institute (e.g., CIL or LIS) or an equivalent course offered by another institution. | |||||
Wahlfächer der Vertiefung in Theoretical Computer Science | ||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |
252-1407-00L | Algorithmic Game Theory | W | 7 KP | 3V + 2U + 1A | P. Penna | |
Kurzbeschreibung | Game theory provides a formal model to study the behavior and interaction of self-interested users and programs in large-scale distributed computer systems without central control. The course discusses algorithmic aspects of game theory. | |||||
Lernziel | Learning the basic concepts of game theory and mechanism design, acquiring the computational paradigm of self-interested agents, and using these concepts in the computational and algorithmic setting. | |||||
Inhalt | The Internet is a typical example of a large-scale distributed computer system without central control, with users that are typically only interested in their own good. For instance, they are interested in getting high bandwidth for themselves, but don't care about others, and the same is true for computational load or download rates. Game theory provides a particularly well-suited model for the behavior and interaction of such selfish users and programs. Classic game theory dates back to the 1930s and typically does not consider algorithmic aspects at all. Only a few years back, algorithms and game theory have been considered together, in an attempt to reconcile selfish behavior of independent agents with the common good. This course discusses algorithmic aspects of game-theoretic models, with a focus on recent algorithmic and mathematical developments. Rather than giving an overview of such developments, the course aims to study selected important topics in depth. Outline: - Introduction to classic game-theoretic concepts. - Existence of stable solutions (equilibria), algorithms for computing equilibria, computational complexity. - Speed of convergence of natural game playing dynamics such as best-response dynamics or regret minimization. - Techniques for bounding the quality-loss due to selfish behavior versus optimal outcomes under central control (a.k.a. the 'Price of Anarchy'). - Design and analysis of mechanisms that induce truthful behavior or near-optimal outcomes at equilibrium. - Selected current research topics, such as Google's Sponsored Search Auction, the U.S. FCC Spectrum Auction, Kidney Exchange. | |||||
Skript | Lecture notes will be usually posted on the website shortly after each lecture. | |||||
Literatur | "Algorithmic Game Theory", edited by N. Nisan, T. Roughgarden, E. Tardos, and V. Vazirani, Cambridge University Press, 2008; "Game Theory and Strategy", Philip D. Straffin, The Mathematical Association of America, 5th printing, 2004 Several copies of both books are available in the Computer Science library. | |||||
Voraussetzungen / Besonderes | Audience: Although this is a Computer Science course, we encourage the participation from all students who are interested in this topic. Requirements: You should enjoy precise mathematical reasoning. You need to have passed a course on algorithms and complexity. No knowledge of game theory is required. | |||||
252-1425-00L | Geometry: Combinatorics and Algorithms | W | 6 KP | 2V + 2U + 1A | E. Welzl, L. F. Barba Flores, M. Hoffmann, A. Pilz | |
Kurzbeschreibung | Geometric structures are useful in many areas, and there is a need to understand their structural properties, and to work with them algorithmically. The lecture addresses theoretical foundations concerning geometric structures. Central objects of interest are triangulations. We study combinatorial (Does a certain object exist?) and algorithmic questions (Can we find a certain object efficiently?) | |||||
Lernziel | The goal is to make students familiar with fundamental concepts, techniques and results in combinatorial and computational geometry, so as to enable them to model, analyze, and solve theoretical and practical problems in the area and in various application domains. In particular, we want to prepare students for conducting independent research, for instance, within the scope of a thesis project. | |||||
Inhalt | Planar and geometric graphs, embeddings and their representation (Whitney's Theorem, canonical orderings, DCEL), polygon triangulations and the art gallery theorem, convexity in R^d, planar convex hull algorithms (Jarvis Wrap, Graham Scan, Chan's Algorithm), point set triangulations, Delaunay triangulations (Lawson flips, lifting map, randomized incremental construction), Voronoi diagrams, the Crossing Lemma and incidence bounds, line arrangements (duality, Zone Theorem, ham-sandwich cuts), 3-SUM hardness, counting planar triangulations. | |||||
Skript | yes | |||||
Literatur | Mark de Berg, Marc van Kreveld, Mark Overmars, Otfried Cheong, Computational Geometry: Algorithms and Applications, Springer, 3rd ed., 2008. Satyan Devadoss, Joseph O'Rourke, Discrete and Computational Geometry, Princeton University Press, 2011. Stefan Felsner, Geometric Graphs and Arrangements: Some Chapters from Combinatorial Geometry, Teubner, 2004. Jiri Matousek, Lectures on Discrete Geometry, Springer, 2002. Takao Nishizeki, Md. Saidur Rahman, Planar Graph Drawing, World Scientific, 2004. | |||||
Voraussetzungen / Besonderes | Prerequisites: The course assumes basic knowledge of discrete mathematics and algorithms, as supplied in the first semesters of Bachelor Studies at ETH. Outlook: In the following spring semester there is a seminar "Geometry: Combinatorics and Algorithms" that builds on this course. There are ample possibilities for Semester-, Bachelor- and Master Thesis projects in the area. | |||||
263-4110-00L | Interdisciplinary Algorithms Lab Im Masterstudium können zusätzlich zu den Vertiefungsübergreifenden Fächern nur max. 10 KP mit Laboratorien erarbeitet werden. Weitere Labs werden auf dem Beiblatt aufgeführt. | W | 5 KP | 2P | A. Steger, D. Steurer | |
Kurzbeschreibung | In this course students will develop solutions for algorithmic problems posed by researchers from other fields. | |||||
Lernziel | Students will learn that in order to tackle algorithmic problems from an interdisciplinary or applied context one needs to combine a solid understanding of algorithmic methodology with insights into the problem at hand to judge which side constraints are essential and which can be loosened. | |||||
Voraussetzungen / Besonderes | Students will work in teams. Ideally, skills of team members complement each other. Interested Bachelor students can apply for participation by sending an email to Link explaining motivation and transcripts. | |||||
263-4500-00L | Advanced Algorithms | W | 6 KP | 2V + 2U + 1A | M. Ghaffari | |
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. | |||||
401-3901-00L | Mathematical Optimization | W | 11 KP | 4V + 2U | R. Weismantel | |
Kurzbeschreibung | Mathematical treatment of diverse optimization techniques. | |||||
Lernziel | Advanced optimization theory and algorithms. | |||||
Inhalt | 1) Linear optimization: The geometry of linear programming, the simplex method for solving linear programming problems, Farkas' Lemma and infeasibility certificates, duality theory of linear programming. 2) Nonlinear optimization: Lagrange relaxation techniques, Newton method and gradient schemes for convex optimization. 3) Integer optimization: Ties between linear and integer optimization, total unimodularity, complexity theory, cutting plane theory. 4) Combinatorial optimization: Network flow problems, structural results and algorithms for matroids, matchings, and, more generally, independence systems. | |||||
Literatur | 1) D. Bertsimas & R. Weismantel, "Optimization over Integers". Dynamic Ideas, 2005. 2) A. Schrijver, "Theory of Linear and Integer Programming". John Wiley, 1986. 3) D. Bertsimas & J.N. Tsitsiklis, "Introduction to Linear Optimization". Athena Scientific, 1997. 4) Y. Nesterov, "Introductory Lectures on Convex Optimization: a Basic Course". Kluwer Academic Publishers, 2003. 5) C.H. Papadimitriou, "Combinatorial Optimization". Prentice-Hall Inc., 1982. | |||||
Voraussetzungen / Besonderes | Linear algebra. | |||||
401-3055-64L | Algebraic Methods in Combinatorics | W | 6 KP | 2V + 1U | B. Sudakov | |
Kurzbeschreibung | Combinatorics is a fundamental mathematical discipline as well as an essential component of many mathematical areas, and its study has experienced an impressive growth in recent years. This course provides a gentle introduction to Algebraic methods, illustrated by examples and focusing on basic ideas and connections to other areas. | |||||
Lernziel | ||||||
Inhalt | Combinatorics is a fundamental mathematical discipline as well as an essential component of many mathematical areas, and its study has experienced an impressive growth in recent years. While in the past many of the basic combinatorial results were obtained mainly by ingenuity and detailed reasoning, the modern theory has grown out of this early stage and often relies on deep, well-developed tools. One of the main general techniques that played a crucial role in the development of Combinatorics was the application of algebraic methods. The most fruitful such tool is the dimension argument. Roughly speaking, the method can be described as follows. In order to bound the cardinality of of a discrete structure A one maps its elements to vectors in a linear space, and shows that the set A is mapped to linearly independent vectors. It then follows that the cardinality of A is bounded by the dimension of the corresponding linear space. This simple idea is surprisingly powerful and has many famous applications. This course provides a gentle introduction to Algebraic methods, illustrated by examples and focusing on basic ideas and connections to other areas. The topics covered in the class will include (but are not limited to): Basic dimension arguments, Spaces of polynomials and tensor product methods, Eigenvalues of graphs and their application, the Combinatorial Nullstellensatz and the Chevalley-Warning theorem. Applications such as: Solution of Kakeya problem in finite fields, counterexample to Borsuk's conjecture, chromatic number of the unit distance graph of Euclidean space, explicit constructions of Ramsey graphs and many others. The course website can be found at Link | |||||
Seminar in Theoretical Computer Science | ||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |
252-4202-00L | Seminar in Theoretical Computer Science | W | 2 KP | 2S | E. Welzl, B. Gärtner, M. Hoffmann, J. Lengler, A. Steger, B. Sudakov | |
Kurzbeschreibung | Präsentation wichtiger und aktueller Arbeiten aus der theoretischen Informatik, sowie eigener Ergebnisse von Diplomanden und Doktoranden. | |||||
Lernziel | Das Lernziel ist, Studierende an die aktuelle Forschung heranzuführen und sie in die Lage zu versetzen, wissenschaftliche Arbeiten zu lesen, zu verstehen, und zu präsentieren. | |||||
263-4311-00L | Seminar on Molecular Algorithms Findet dieses Semester nicht statt. Limited number of participants | W | 2 KP | 2S | P. Widmayer | |
Kurzbeschreibung | Develop an understanding of selected topics in the area of molecular algorithms, and the practice of scient | |||||
Lernziel | Study and understanding of selected topics of interest in molecular algorithms such as: Computational Power of Molecular Algorithms, Molecular Algorithms for Solving Fundamental Tasks (Majority, Leader Election, Counting), Complexity Lower Bounds, Implementations of Algorithms in DNA. | |||||
Inhalt | This seminar will familiarize the students with current research on molecualr algorithms, with a focus o algorithms executable in DNA. We will have an introductory lecture covering the basics of molecular computational models, and the underlying bio-chemical phenomena. Subsequently, we will read and present selected reseach papers, focusing on their algorithmic content. No prior knowledge of biology or chemistry will be required. | |||||
Literatur | Selected research articles. | |||||
Voraussetzungen / Besonderes | The course will require a good understanding of Randomized Algorithms. Hence, you must have passed our "Randomized Algorithms" class (or have acquired equivalent knowledge, in exceptional cases). No prior knowledge of biology or chemistry will be assumed. The basics will be presented in an introductory lecture. | |||||
Vertiefung in Visual Computing | ||||||
Kernfächer der Vertiefung in Visual Computing | ||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |
252-0535-00L | Machine Learning | W | 8 KP | 3V + 2U + 2A | J. M. Buhmann | |
Kurzbeschreibung | Machine learning algorithms provide analytical methods to search data sets for characteristic patterns. Typical tasks include the classification of data, function fitting and clustering, with applications in image and speech analysis, bioinformatics and exploratory data analysis. This course is accompanied by practical machine learning projects. | |||||
Lernziel | Students will be familiarized with the most important concepts and algorithms for supervised and unsupervised learning; reinforce the statistics knowledge which is indispensible to solve modeling problems under uncertainty. Key concepts are the generalization ability of algorithms and systematic approaches to modeling and regularization. A machine learning project will provide an opportunity to test the machine learning algorithms on real world data. | |||||
Inhalt | The theory of fundamental machine learning concepts is presented in the lecture, and illustrated with relevant applications. Students can deepen their understanding by solving both pen-and-paper and programming exercises, where they implement and apply famous algorithms to real-world data. Topics covered in the lecture include: - Bayesian theory of optimal decisions - Maximum likelihood and Bayesian parameter inference - Classification with discriminant functions: Perceptrons, Fisher's LDA and support vector machines (SVM) - Ensemble methods: Bagging and Boosting - Regression: least squares, ridge and LASSO penalization, non-linear regression and the bias-variance trade-off - Non parametric density estimation: Parzen windows, nearest nieghbour - Dimension reduction: principal component analysis (PCA) and beyond | |||||
Skript | No lecture notes, but slides will be made available on the course webpage. | |||||
Literatur | C. Bishop. Pattern Recognition and Machine Learning. Springer 2007. R. Duda, P. Hart, and D. Stork. Pattern Classification. John Wiley & Sons, second edition, 2001. T. Hastie, R. Tibshirani, and J. Friedman. The Elements of Statistical Learning: Data Mining, Inference and Prediction. Springer, 2001. L. Wasserman. All of Statistics: A Concise Course in Statistical Inference. Springer, 2004. | |||||
Voraussetzungen / Besonderes | The course requires solid basic knowledge in analysis, statistics and numerical methods for CSE as well as practical programming experience for solving assignments. Students should at least have followed one previous course offered by the Machine Learning Institute (e.g., CIL or LIS) or an equivalent course offered by another institution. | |||||
263-5902-00L | Computer Vision | W | 6 KP | 3V + 1U + 1A | L. Van Gool, V. Ferrari, A. Geiger | |
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. | |||||
Wahlfächer der Vertiefung in Visual Computing | ||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |
252-0543-01L | Computer Graphics | W | 6 KP | 3V + 2U | M. Gross, J. Novak | |
Kurzbeschreibung | This course covers some of the fundamental concepts of computer graphics, namely 3D object representations and generation of photorealistic images from digital representations of 3D scenes. | |||||
Lernziel | At the end of the course the students will be able to build a rendering system. The students will study the basic principles of rendering and image synthesis. In addition, the course is intended to stimulate the students' curiosity to explore the field of computer graphics in subsequent courses or on their own. | |||||
Inhalt | This course covers fundamental concepts of modern computer graphics. Students will learn about 3D object representations and the details of how to generate photorealistic images from digital representations of 3D scenes. Starting with an introduction to 3D shape modeling and representation, texture mapping and ray-tracing, we will move on to acceleration structures, the physics of light transport, appearance modeling and global illumination principles and algorithms. We will end with an overview of modern image-based image synthesis techniques, covering topics such as lightfields and depth-image based rendering. | |||||
Skript | no | |||||
Voraussetzungen / Besonderes | Prerequisites: Fundamentals of calculus and linear algebra, basic concepts of algorithms and data structures, programming skills in C++, Visual Computing course recommended. The programming assignments will be in C++. This will not be taught in the class. | |||||
252-0546-00L | Physically-Based Simulation in Computer Graphics | W | 4 KP | 2V + 1U | M. Bächer, V. da Costa de Azevedo | |
Kurzbeschreibung | Die Vorlesung gibt eine Einführung in das Gebiet der physikalisch basierten Animation in der Computer Graphik und einen Überblick über fundamentale Methoden und Algorithmen. In den praktischen Übungen werden drei Aufgabenblätter in kleinen Gruppen bearbeitet. Zudem sollen in einem Programmierprojekt die Vorlesungsinhalte in einem 3D Spiel oder einer vergleichbaren Anwendung umgesetzt werden. | |||||
Lernziel | Die Vorlesung gibt eine Einführung in das Gebiet der physikalisch basierten Animation in der Computer Graphik und einen Überblick über fundamentale Methoden und Algorithmen. In den praktischen Übungen werden drei Aufgabenblätter in kleinen Gruppen bearbeitet. Zudem sollen in einem Programmierprojekt die Vorlesungsinhalte in einem 3D Spiel oder einer vergleichbaren Anwendung umgesetzt werden. | |||||
Inhalt | In der Vorlesung werden Themen aus dem Gebiet der physikalisch-basierten Modellierung wie Partikel-Systeme, Feder-Masse Modelle, die Methoden der Finiten Differenzen und der Finiten Elemente behandelt. Diese Methoden und Techniken werden verwendet um deformierbare Objekte oder Flüssigkeiten zu simulieren mit Anwendungen in Animationsfilmen, 3D Computerspielen oder medizinischen Systemen. Es werden auch Themen wie Starrkörperdynamik, Kollisionsdetektion und Charakteranimation behandelt. | |||||
Voraussetzungen / Besonderes | Basiskenntnisse in Analysis und Physik, Algorithmen und Datenstrukturen und der Programmierung in C++. Kenntnisse auf den Gebieten Numerische Mathematik sowie Gewoehnliche und Partielle Differentialgleichungen sind von Vorteil, werden aber nicht vorausgesetzt. | |||||
263-2400-00L | Reliable and Interpretable Artificial Intelligence | W | 4 KP | 2V + 1U | M. Vechev | |
Kurzbeschreibung | Creating reliable and explainable probabilistic models is a major challenge to solving the artificial intelligence problem. This course covers some of the latest advances that bring us closer to constructing such models. These advances span the areas of program synthesis/induction, programming languages, machine learning, and probabilistic programming. | |||||
Lernziel | The main objective of this course is to expose students to the latest and most exciting research in the area of explainable and interpretable artificial intelligence, a topic of fundamental and increasing importance. Upon completion of the course, the students should have mastered the underlying methods and be able to apply them to a variety of problems. | |||||
Inhalt | The material draws on some of the latest research advances in several areas of computer science: program synthesis/induction, programming languages, deep learning, and probabilistic programming. The material consists of three interconnected parts: Part I: Program Synthesis/Induction ---------------------------------------- Synthesis is a new frontier in AI where the computer programs itself from user provided examples. Synthesis has significant applications for non-programmers as well as for programmers where it can provide massive productivity increase (e.g., wrangling for data scientists). Modern synthesis techniques excel at learning functions over discrete spaces from (partial) intent. There have been a number of recent, exciting breakthroughs in techniques that discover complex, interpretable/explainable functions from few examples, partial sketches and other forms of supervision. Topics covered: - Theory of program synthesis: version spaces, counter-example guided inductive synthesis (CEGIS) with SAT/SMT, synthesis from noisy examples, learning with few examples, compositional synthesis, lower bounds on learning. - Applications of techniques: synthesis for end users (e.g., spreadsheets), data analytics and financial computing, interpretable machine learning models for structured data. - Combining neural networks and synthesis Part II: Robustness of Deep Learning ----------------------------------------- Deep learning methods based on neural networks have made impressive advances in recent years. A fundamental challenge with these models is that of understanding what the trained neural network has actually learned, for example, how stable / robust the network is to slight variations of the input (e.g., an image or a video), how easy it is to fool the network into mis-classifying obvious inputs, etc. Topics covered: - Basics of neural networks: fully connected, convolutional networks, residual networks, activation functions - Finding adversarial examples in deep learning with SMT - Methods and tools to guarantee robustness of deep nets (e.g., via affine arithmetic, SMT solvers); synthesis of robustness specs Part III: Probabilistic Programming -------------------------------------- Probabilistic programming is an emerging direction whose goal is democratize the construction of probabilistic models. In probabilistic programming, the user specifies a model while inference is left to the underlying solver. The idea is that the higher level of abstraction makes it easier to express, understand and reason about probabilistic models. Topics covered: - Inference: MCMC samplers and tactics (approximate), symbolic inference (exact). - Semantics: basic measure theoretic semantics of probability; bridging measure theory and symbolic inference. - Frameworks and languages: WebPPL (MIT/Stanford), PSI (ETH), Picture/Venture (MIT), Anglican (Oxford). - Synthesis for probabilistic programs: this connects to Part I - Applications of probabilistic programming: using the above solvers for reasoning about bias in machine learning models (connects to Part II), reasoning about computer networks, security protocols, approximate computing, cognitive models, rational agents. | |||||
263-3300-00L | Data Science Lab Maximale Teilnehmerzahl: 30. Im Masterstudium können zusätzlich zu den Vertiefungsübergreifenden Fächern nur max. 10 Kreditpunkte über Laboratorien erarbeitet werden. Weitere Laboratorien werden auf dem Beiblatt aufgeführt. | W | 10 KP | 9P | C. Zhang, K. Schawinski | |
Kurzbeschreibung | In this class, we bring together data science applications provided by ETH researchers outside computer science and teams of computer science master's students. Two to three students will form a team working on data science/machine learning-related research topics provided by scientists in a diverse range of domains such as astronomy, biology, social sciences etc. | |||||
Lernziel | The goal of this class if for students to gain experience of dealing with data science and machine learning applications "in the wild". Students are expected to go through the full process starting from data cleaning, modeling, execution, debugging, error analysis, and quality/performance refinement. Website: Link | |||||
Voraussetzungen / Besonderes | Each student is required to send the lecturer their CV and transcript and the lecturer will decide the enrollment on a per-student basis. Moreover, the students are expected to have experience about machine learning and deep learning. EMAIL to send CV: Link | |||||
263-5200-00L | Data Mining: Learning from Large Data Sets | W | 4 KP | 2V + 1U | A. Krause, Y. Levy | |
Kurzbeschreibung | Many scientific and commercial applications require insights from massive, high-dimensional data sets. This courses introduces principled, state-of-the-art techniques from statistics, algorithms and discrete and convex optimization for learning from such large data sets. The course both covers theoretical foundations and practical applications. | |||||
Lernziel | Many scientific and commercial applications require us to obtain insights from massive, high-dimensional data sets. In this graduate-level course, we will study principled, state-of-the-art techniques from statistics, algorithms and discrete and convex optimization for learning from such large data sets. The course will both cover theoretical foundations and practical applications. | |||||
Inhalt | Topics covered: - Dealing with large data (Data centers; Map-Reduce/Hadoop; Amazon Mechanical Turk) - Fast nearest neighbor methods (Shingling, locality sensitive hashing) - Online learning (Online optimization and regret minimization, online convex programming, applications to large-scale Support Vector Machines) - Multi-armed bandits (exploration-exploitation tradeoffs, applications to online advertising and relevance feedback) - Active learning (uncertainty sampling, pool-based methods, label complexity) - Dimension reduction (random projections, nonlinear methods) - Data streams (Sketches, coresets, applications to online clustering) - Recommender systems | |||||
Voraussetzungen / Besonderes | Prerequisites: Solid basic knowledge in statistics, algorithms and programming. Background in machine learning is helpful but not required. | |||||
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. | |||||
Inhalt | Topics covered: - Search (BFS, DFS, A*), constraint satisfaction and optimization - Tutorial in logic (propositional, first-order) - Probability - 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 | 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 are mainly theoretical, practicing the mathematical foundations such as numerical integration, differential vector calculus, and flow field analysis. | |||||
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. | |||||
Seminar in Visual Computing | ||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |
252-5051-00L | Advanced Topics in Machine Learning Number of participants limited to 40. | W | 2 KP | 2S | J. M. Buhmann, T. Hofmann, A. Krause, G. Rätsch | |
Kurzbeschreibung | In this seminar, recent papers of the pattern recognition and machine learning literature are presented and discussed. Possible topics cover statistical models in computer vision, graphical models and machine learning. | |||||
Lernziel | The seminar "Advanced Topics in Machine Learning" familiarizes students with recent developments in pattern recognition and machine learning. Original articles have to be presented and critically reviewed. The students will learn how to structure a scientific presentation in English which covers the key ideas of a scientific paper. An important goal of the seminar presentation is to summarize the essential ideas of the paper in sufficient depth while omitting details which are not essential for the understanding of the work. The presentation style will play an important role and should reach the level of professional scientific presentations. | |||||
Inhalt | The seminar will cover a number of recent papers which have emerged as important contributions to the pattern recognition and machine learning literature. The topics will vary from year to year but they are centered on methodological issues in machine learning like new learning algorithms, ensemble methods or new statistical models for machine learning applications. Frequently, papers are selected from computer vision or bioinformatics - two fields, which relies more and more on machine learning methodology and statistical models. | |||||
Literatur | The papers will be presented in the first session of the seminar. | |||||
252-5701-00L | Advanced Topics in Computer Graphics and Vision Maximale Teilnehmerzahl: 24 | W | 2 KP | 2S | M. Gross, O. Sorkine Hornung | |
Kurzbeschreibung | This seminar covers advanced topics in computer graphics, such as modeling, rendering, animation, real-time graphics, physical simulation, and computational photography. Each time the course is offered, a collection of research papers is selected and each student presents one paper to the class and leads a discussion about the paper and related topics. | |||||
Lernziel | The goal is to get an in-depth understanding of actual problems and research topics in the field of computer graphics as well as improve presentations and critical analysis skills. | |||||
Inhalt | This seminar covers advanced topics in computer graphics, including both seminal research papers as well as the latest research results. Each time the course is offered, a collection of research papers are selected covering topics such as modeling, rendering, animation, real-time graphics, physical simulation, and computational photography. Each student presents one paper to the class and leads a discussion about the paper and related topics. All students read the papers and participate in the discussion. | |||||
Skript | no script | |||||
Literatur | Individual research papers are selected each term. See Link for the current list. | |||||
Voraussetzungen / Besonderes | Prerequisites: The courses "Computer Graphics I and II" (GDV I & II) are recommended, but not mandatory. | |||||
Vertiefung General Studies | ||||||
Kernfächer der Vertiefung General Studies | ||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |
252-0237-00L | Concepts of Object-Oriented Programming | W | 6 KP | 3V + 2U | P. Müller | |
Kurzbeschreibung | Course that focuses on an in-depth understanding of object-oriented programming and compares designs of object-oriented programming languages. Topics include different flavors of type systems, inheritance models, encapsulation in the presence of aliasing, object and class initialization, program correctness, reflection | |||||
Lernziel | After this course, students will: Have a deep understanding of advanced concepts of object-oriented programming and their support through various language features. Be able to understand language concepts on a semantic level and be able to compare and evaluate language designs. Be able to learn new languages more rapidly. Be aware of many subtle problems of object-oriented programming and know how to avoid them. | |||||
Inhalt | The main goal of this course is to convey a deep understanding of the key concepts of sequential object-oriented programming and their support in different programming languages. This is achieved by studying how important challenges are addressed through language features and programming idioms. In particular, the course discusses alternative language designs by contrasting solutions in languages such as C++, C#, Eiffel, Java, Python, and Scala. The course also introduces novel ideas from research languages that may influence the design of future mainstream languages. The topics discussed in the course include among others: The pros and cons of different flavors of type systems (for instance, static vs. dynamic typing, nominal vs. structural, syntactic vs. behavioral typing) The key problems of single and multiple inheritance and how different languages address them Generic type systems, in particular, Java generics, C# generics, and C++ templates The situations in which object-oriented programming does not provide encapsulation, and how to avoid them The pitfalls of object initialization, exemplified by a research type system that prevents null pointer dereferencing How to maintain the consistency of data structures | |||||
Literatur | Will be announced in the lecture. | |||||
Voraussetzungen / Besonderes | Prerequisites: Mastering at least one object-oriented programming language (this course will NOT provide an introduction to object-oriented programming); programming experience | |||||
252-0417-00L | Randomized Algorithms and Probabilistic Methods | W | 8 KP | 3V + 2U + 2A | A. Steger, E. Welzl | |
Kurzbeschreibung | Las Vegas & Monte Carlo algorithms; inequalities of Markov, Chebyshev, Chernoff; negative correlation; Markov chains: convergence, rapidly mixing; generating functions; Examples include: min cut, median, balls and bins, routing in hypercubes, 3SAT, card shuffling, random walks | |||||
Lernziel | After this course students will know fundamental techniques from probabilistic combinatorics for designing randomized algorithms and will be able to apply them to solve typical problems in these areas. | |||||
Inhalt | Randomized Algorithms are algorithms that "flip coins" to take certain decisions. This concept extends the classical model of deterministic algorithms and has become very popular and useful within the last twenty years. In many cases, randomized algorithms are faster, simpler or just more elegant than deterministic ones. In the course, we will discuss basic principles and techniques and derive from them a number of randomized methods for problems in different areas. | |||||
Skript | Yes. | |||||
Literatur | - Randomized Algorithms, Rajeev Motwani and Prabhakar Raghavan, Cambridge University Press (1995) - Probability and Computing, Michael Mitzenmacher and Eli Upfal, Cambridge University Press (2005) | |||||
252-0463-00L | Security Engineering | W | 5 KP | 2V + 2U | D. Basin | |
Kurzbeschreibung | Subject of the class are engineering techniques for developing secure systems. We examine concepts, methods and tools, applied within the different activities of the SW development process to improve security of the system. Topics: security requirements&risk analysis, system modeling&model-based development methods, implementation-level security, and evaluation criteria for secure systems | |||||
Lernziel | Security engineering is an evolving discipline that unifies two important areas: software engineering and security. Software Engineering addresses the development and application of methods for systematically developing, operating, and maintaining, complex, high-quality software. Security, on the other hand, is concerned with assuring and verifying properties of a system that relate to confidentiality, integrity, and availability of data. The goal of this class is to survey engineering techniques for developing secure systems. We will examine concepts, methods, and tools that can be applied within the different activities of the software development process, in order to improve the security of the resulting systems. Topics covered include * security requirements & risk analysis, * system modeling and model-based development methods, * implementation-level security, and * evaluation criteria for the development of secure systems | |||||
Inhalt | Security engineering is an evolving discipline that unifies two important areas: software engineering and security. Software Engineering addresses the development and application of methods for systematically developing, operating, and maintaining, complex, high-quality software. Security, on the other hand, is concerned with assuring and verifying properties of a system that relate to confidentiality, integrity, and availability of data. The goal of this class is to survey engineering techniques for developing secure systems. We will examine concepts, methods, and tools that can be applied within the different activities of the software development process, in order to improve the security of the resulting systems. Topics covered include * security requirements & risk analysis, * system modeling and model-based development methods, * implementation-level security, and * evaluation criteria for the development of secure systems Modules taught: 1. Introduction - Introduction of Infsec group and speakers - Security meets SW engineering: an introduction - The activities of SW engineering, and where security fits in - Overview of this class 2. Requirements Engineering: Security Requirements and some Analysis - overview: functional and non-functional requirements - use cases, misuse cases, sequence diagrams - safety and security - FMEA, FTA, attack trees 3. Modeling in the design activities - structure, behavior, and data flow - class diagrams, statecharts 4. Model-driven security for access control (design) - SecureUML as a language for access control - Combining Design Modeling Languages with SecureUML - Semantics, i.e., what does it all mean, - Generation - Examples and experience 5. Model-driven security (Part II) - Continuation of above topics 6. Security patterns (design and implementation) 7. Implementation-level security - Buffer overflows - Input checking - Injection attacks 8. Testing - overview - model-based testing - testing security properties 9. Risk analysis and management 1 (project management) - "risk": assets, threats, vulnerabilities, risk - risk assessment: quantitative and qualitative - safeguards - generic risk analysis procedure - The OCTAVE approach 10. Risk analysis: IT baseline protection - Overview - Example 11. Evaluation criteria - CMMI - systems security engineering CMM - common criteria 12. Guest lecture - TBA | |||||
Literatur | - Ross Anderson: Security Engineering, Wiley, 2001. - Matt Bishop: Computer Security, Pearson Education, 2003. - Ian Sommerville: Software Engineering, 6th ed., Addison-Wesley, 2001. - John Viega, Gary McGraw: Building Secure Software, Addison-Wesley, 2002. - Further relevant books and journal/conference articles will be announced in the lecture. | |||||
Voraussetzungen / Besonderes | Prerequisite: Class on Information Security | |||||
252-0535-00L | Machine Learning | W | 8 KP | 3V + 2U + 2A | J. M. Buhmann | |
Kurzbeschreibung | Machine learning algorithms provide analytical methods to search data sets for characteristic patterns. Typical tasks include the classification of data, function fitting and clustering, with applications in image and speech analysis, bioinformatics and exploratory data analysis. This course is accompanied by practical machine learning projects. | |||||
Lernziel | Students will be familiarized with the most important concepts and algorithms for supervised and unsupervised learning; reinforce the statistics knowledge which is indispensible to solve modeling problems under uncertainty. Key concepts are the generalization ability of algorithms and systematic approaches to modeling and regularization. A machine learning project will provide an opportunity to test the machine learning algorithms on real world data. | |||||
Inhalt | The theory of fundamental machine learning concepts is presented in the lecture, and illustrated with relevant applications. Students can deepen their understanding by solving both pen-and-paper and programming exercises, where they implement and apply famous algorithms to real-world data. Topics covered in the lecture include: - Bayesian theory of optimal decisions - Maximum likelihood and Bayesian parameter inference - Classification with discriminant functions: Perceptrons, Fisher's LDA and support vector machines (SVM) - Ensemble methods: Bagging and Boosting - Regression: least squares, ridge and LASSO penalization, non-linear regression and the bias-variance trade-off - Non parametric density estimation: Parzen windows, nearest nieghbour - Dimension reduction: principal component analysis (PCA) and beyond | |||||
Skript | No lecture notes, but slides will be made available on the course webpage. | |||||
Literatur | C. Bishop. Pattern Recognition and Machine Learning. Springer 2007. R. Duda, P. Hart, and D. Stork. Pattern Classification. John Wiley & Sons, second edition, 2001. T. Hastie, R. Tibshirani, and J. Friedman. The Elements of Statistical Learning: Data Mining, Inference and Prediction. Springer, 2001. L. Wasserman. All of Statistics: A Concise Course in Statistical Inference. Springer, 2004. | |||||
Voraussetzungen / Besonderes | The course requires solid basic knowledge in analysis, statistics and numerical methods for CSE as well as practical programming experience for solving assignments. Students should at least have followed one previous course offered by the Machine Learning Institute (e.g., CIL or LIS) or an equivalent course offered by another institution. | |||||
252-1414-00L | System Security | W | 5 KP | 2V + 2U | S. Capkun, A. Perrig | |
Kurzbeschreibung | The first part of the lecture covers individual system aspects starting with tamperproof or tamper-resistant hardware in general over operating system related security mechanisms to application software systems, such as host based intrusion detection systems. In the second part, the focus is on system design and methodologies for building secure systems. | |||||
Lernziel | In this lecture, students learn about the security requirements and capabilities that are expected from modern hardware, operating systems, and other software environments. An overview of available technologies, algorithms and standards is given, with which these requirements can be met. | |||||
Inhalt | The first part of the lecture covers individual system's aspects starting with tamperproof or tamperresistant hardware in general over operating system related security mechanisms to application software systems such as host based intrusion detetction systems. The main topics covered are: tamper resistant hardware, CPU support for security, protection mechanisms in the kernel, file system security (permissions / ACLs / network filesystem issues), IPC Security, mechanisms in more modern OS, such as Capabilities and Zones, Libraries and Software tools for security assurance, etc. In the second part, the focus is on system design and methodologies for building secure systems. Topics include: patch management, common software faults (buffer overflows, etc.), writing secure software (design, architecture, QA, testing), compiler-supported security, language-supported security, logging and auditing (BSM audit, dtrace, ...), cryptographic support, and trustworthy computing (TCG, SGX). Along the lectures, model cases will be elaborated and evaluated in the exercises. | |||||
263-2800-00L | Design of Parallel and High-Performance Computing | W | 7 KP | 3V + 2U + 1A | T. Hoefler, M. Püschel | |
Kurzbeschreibung | Advanced topics in parallel / concurrent programming. | |||||
Lernziel | Understand concurrency paradigms and models from a higher perspective and acquire skills for designing, structuring and developing possibly large concurrent software systems. Become able to distinguish parallelism in problem space and in machine space. Become familiar with important technical concepts and with concurrency folklore. | |||||
263-3800-00L | Advanced Operating Systems | 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. | |||||
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 against them. | |||||
Lernziel | - Students are familiar with fundamental network security concepts. - Students can assess current threats that Internet services and networked devices face, and can evaluate appropriate countermeasures. - Students can identify and assess 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-5902-00L | Computer Vision | W | 6 KP | 3V + 1U + 1A | L. Van Gool, V. Ferrari, A. Geiger | |
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. | |||||
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. | |||||
Skript | Link | |||||
Literatur | U. Alon, An introduction to systems biology. Chapman & Hall / CRC, 2006. Z. Szallasi et al. (eds.), System modeling in cellular biology. MIT Press, 2006. | |||||
Wahlfächer der Vertiefung General Studies | ||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |
252-0286-00L | System Construction | W | 4 KP | 2V + 1U | F. Friedrich Wicker | |
Kurzbeschreibung | Main goal is teaching knowledge and skills needed for building custom operating systems and runtime environments. Relevant topics are studied at the example of sufficiently simple systems that have been built at our Institute in the past, ranging from purpose-oriented single processor real-time systems up to generic system kernels on multi-core hardware. | |||||
Lernziel | The lecture's main goal is teaching of knowledge and skills needed for building custom operating systems and runtime environments. The lecture intends to supplement more abstract views of software construction, and to contribute to a better understanding of "how it really works" behind the scenes. | |||||
Inhalt | Case Study 1: Embedded System - Safety-critical and fault-tolerant monitoring system - Based on an auto-pilot system for helicopters Case Study 2: Multi-Processor Operating System - Universal operating system for symmetric multiprocessors - Shared memory approach - Based on Language-/System Codesign (Active Oberon / A2) Case Study 3: Custom designed Single-Processor System - RISC Single-processor system designed from scratch - Hardware on FPGA - Graphical workstation OS and compiler (Project Oberon) Case Study 4: Custom-designed Multi-Processor System - Special purpose heterogeneous system on a chip - Masssively parallel hard- and software architecture based on message passing - Focus: dataflow based applications | |||||
Skript | Printed lecture notes will be delivered during the lecture. Slides will also be available from the lecture homepage. | |||||
252-0373-00L | Mobile and Personal Information Systems The course will be offered for the last time. | W | 4 KP | 2V + 1U | M. Norrie | |
Kurzbeschreibung | The course examines how traditional information system architectures and technologies have been adapted to support various forms of mobile and personal information systems. Topics to be covered include: databases of mobile objects; context-aware services; opportunistic information sharing; ambient information; pervasive display systems. | |||||
Lernziel | Students will be introduced to a variety of novel information services and architectures developed for mobile environments in order to gain insight into the requirements and processes involved in designing and developing such systems and learning to think beyond traditional information systems. | |||||
Inhalt | Advances in mobile devices and communication technologies have led to a rapid increase in demands for various forms of mobile information systems where the users, the applications and the databases themselves may be mobile. Based on both lectures and breakout sessions, this course examines the impact of the different forms of mobility and collaboration that systems require nowadays and how these influence the design of systems at the database, the application and the user interface level. For example, traditional data management techniques have to be adapted to meet the requirements of such systems and cope with new connection, access and synchronisation issues. As mobile devices have increasingly become integrated into the users' lives and are expected to support a range of activities in different environments, applications should be context-aware, adapting functionality, information delivery and the user interfaces to the current environment and task. Various forms of software and hardware sensors may be used to determine the current context, raising interesting issues for discussion. Finally, user mobility, and the varying and intermittent connectivity that it implies, gives rise to new forms of dynamic collaboration that require lightweight, but flexible, mechanisms for information synchronisation and consistency maintenance. Here, the interplay of mobile, personal and social context will receive special attention. | |||||
252-0437-00L | Verteilte Algorithmen | W | 4 KP | 3V | F. Mattern | |
Kurzbeschreibung | Modelle verteilter Berechnungen; Raum-Zeit Diagramme; Virtuelle Zeit; Logische Uhren und Kausalität; Wellenalgorithmen; Verteilte und parallele Graphtraversierung; Berechnung konsistenter Schnappschüsse; Wechselseitiger Ausschluss; Election und Symmetriebrechung; Verteilte Terminierung; Garbage-Collection in verteilten Systemen; Beobachten verteilter Systeme; Berechnung globaler Prädikate. | |||||
Lernziel | Kennenlernen von Modellen und Algorithmen verteilter Systeme. | |||||
Inhalt | Verteilte Algorithmen sind Verfahren, die dadurch charakterisiert sind, dass mehrere autonome Prozesse gleichzeitig Teile eines gemeinsamen Problems in kooperativer Weise bearbeiten und der dabei erforderliche Informationsaustausch ausschliesslich über Nachrichten erfolgt. Derartige Algorithmen kommen im Rahmen verteilter Systeme zum Einsatz, bei denen kein gemeinsamer Speicher existiert und die Übertragungszeit von Nachrichten i.a. nicht vernachlässigt werden kann. Da dabei kein Prozess eine aktuelle konsistente Sicht des globalen Zustands besitzt, führt dies zu interessanten Problemen. Im einzelnen werden u.a. folgende Themen behandelt: Modelle verteilter Berechnungen; Raum-Zeit Diagramme; Virtuelle Zeit; Logische Uhren und Kausalität; Wellenalgorithmen; Verteilte und parallele Graphtraversierung; Berechnung konsistenter Schnappschüsse; Wechselseitiger Ausschluss; Election und Symmetriebrechung; Verteilte Terminierung; Garbage-Collection in verteilten Systemen; Beobachten verteilter Systeme; Berechnung globaler Prädikate. | |||||
Literatur | - F. Mattern: Verteilte Basisalgorithmen, Springer-Verlag - G. Tel: Topics in Distributed Algorithms, Cambridge University Press - G. Tel: Introduction to Distributed Algorithms, Cambridge University Press, 2nd edition - A.D. Kshemkalyani, M. Singhal: Distributed Computing, Cambridge University Press - N. Lynch: Distributed Algorithms, Morgan Kaufmann Publ | |||||
252-0543-01L | Computer Graphics | W | 6 KP | 3V + 2U | M. Gross, J. Novak | |
Kurzbeschreibung | This course covers some of the fundamental concepts of computer graphics, namely 3D object representations and generation of photorealistic images from digital representations of 3D scenes. | |||||
Lernziel | At the end of the course the students will be able to build a rendering system. The students will study the basic principles of rendering and image synthesis. In addition, the course is intended to stimulate the students' curiosity to explore the field of computer graphics in subsequent courses or on their own. | |||||
Inhalt | This course covers fundamental concepts of modern computer graphics. Students will learn about 3D object representations and the details of how to generate photorealistic images from digital representations of 3D scenes. Starting with an introduction to 3D shape modeling and representation, texture mapping and ray-tracing, we will move on to acceleration structures, the physics of light transport, appearance modeling and global illumination principles and algorithms. We will end with an overview of modern image-based image synthesis techniques, covering topics such as lightfields and depth-image based rendering. | |||||
Skript | no | |||||
Voraussetzungen / Besonderes | Prerequisites: Fundamentals of calculus and linear algebra, basic concepts of algorithms and data structures, programming skills in C++, Visual Computing course recommended. The programming assignments will be in C++. This will not be taught in the class. | |||||
252-0546-00L | Physically-Based Simulation in Computer Graphics | W | 4 KP | 2V + 1U | M. Bächer, V. da Costa de Azevedo | |
Kurzbeschreibung | Die Vorlesung gibt eine Einführung in das Gebiet der physikalisch basierten Animation in der Computer Graphik und einen Überblick über fundamentale Methoden und Algorithmen. In den praktischen Übungen werden drei Aufgabenblätter in kleinen Gruppen bearbeitet. Zudem sollen in einem Programmierprojekt die Vorlesungsinhalte in einem 3D Spiel oder einer vergleichbaren Anwendung umgesetzt werden. | |||||
Lernziel | Die Vorlesung gibt eine Einführung in das Gebiet der physikalisch basierten Animation in der Computer Graphik und einen Überblick über fundamentale Methoden und Algorithmen. In den praktischen Übungen werden drei Aufgabenblätter in kleinen Gruppen bearbeitet. Zudem sollen in einem Programmierprojekt die Vorlesungsinhalte in einem 3D Spiel oder einer vergleichbaren Anwendung umgesetzt werden. | |||||
Inhalt | In der Vorlesung werden Themen aus dem Gebiet der physikalisch-basierten Modellierung wie Partikel-Systeme, Feder-Masse Modelle, die Methoden der Finiten Differenzen und der Finiten Elemente behandelt. Diese Methoden und Techniken werden verwendet um deformierbare Objekte oder Flüssigkeiten zu simulieren mit Anwendungen in Animationsfilmen, 3D Computerspielen oder medizinischen Systemen. Es werden auch Themen wie Starrkörperdynamik, Kollisionsdetektion und Charakteranimation behandelt. | |||||
Voraussetzungen / Besonderes | Basiskenntnisse in Analysis und Physik, Algorithmen und Datenstrukturen und der Programmierung in C++. Kenntnisse auf den Gebieten Numerische Mathematik sowie Gewoehnliche und Partielle Differentialgleichungen sind von Vorteil, werden aber nicht vorausgesetzt. | |||||
252-0811-00L | Applied Security 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 | 8 KP | 7P | D. Basin | |
Kurzbeschreibung | Hands-on course on applied aspects of information security. Applied information security, operating system security, OS hardening, computer forensics, web application security, project work, design, implementation, and configuration of security mechanisms, risk analysis, system review. | |||||
Lernziel | The Applied Security Laboratory addresses four major topics: operating system security (hardening, vulnerability scanning, access control, logging), application security with an emphasis on web applications (web server setup, common web exploits, authentication, session handling, code security), computer forensics, and risk analysis and risk management. | |||||
Inhalt | This course emphasizes applied aspects of Information Security. The students will study a number of topics in a hands-on fashion and carry out experiments in order to better understand the need for secure implementation and configuration of IT systems and to assess the effectivity and impact of security measures. This part is based on a book and virtual machines that include example applications, questions, and answers. The students will also complete an independent project: based on a set of functional requirements, they will design and implement a prototypical IT system. In addition, they will conduct a thorough security analysis and devise appropriate security measures for their systems. Finally, they will carry out a technical and conceptual review of another system. All project work will be performed in teams and must be properly documented. | |||||
Skript | The course is based on the book "Applied Information Security - A Hands-on Approach". More information: Link | |||||
Literatur | Recommended reading includes: * Pfleeger, Pfleeger: Security in Computing, Third Edition, Prentice Hall, available online from within ETH * Garfinkel, Schwartz, Spafford: Practical Unix & Internet Security, O'Reilly & Associates. * Various: OWASP Guide to Building Secure Web Applications, available online * Huseby: Innocent Code -- A Security Wake-Up Call for Web Programmers, John Wiley & Sons. * Scambray, Schema: Hacking Exposed Web Applications, McGraw-Hill. * O'Reilly, Loukides: Unix Power Tools, O'Reilly & Associates. * Frisch: Essential System Administration, O'Reilly & Associates. * NIST: Risk Management Guide for Information Technology Systems, available online as PDF * BSI: IT-Grundschutzhandbuch, available online | |||||
Voraussetzungen / Besonderes | * The lab allows flexible working since there are only few mandatory meetings during the semester. * The lab covers a variety of different techniques. Thus, participating students should have a solid foundation in the following areas: information security, operating system administration (especially Unix/Linux), and networking. Students are also expected to have a basic understanding of HTML, PHP, JavaScript, and MySQL because several examples are implemented in these languages. * Students must be prepared to spend more than three hours per week to complete the lab assignments and the project. This applies particularly to students who do not meet the recommended requirements given above. Successful participants of the course receive 8 credits as compensation for their effort. * All participants must sign the lab's charter and usage policy during the introduction lecture. | |||||
252-0817-00L | Distributed Systems Laboratory Im Masterstudium können zusätzlich zu den Vertiefungsübergreifenden Fächern nur max. 10 Kreditpunkte über Laboratorien erarbeitet werden. Diese Labs gelten nur für das Masterstudium. Weitere Laboratorien werden auf dem Beiblatt aufgeführt. | W | 10 KP | 9P | G. Alonso, T. Hoefler, F. Mattern, T. Roscoe, A. Singla, R. Wattenhofer, C. Zhang | |
Kurzbeschreibung | This course involves the participation in a substantial development and/or evaluation project involving distributed systems technology. There are projects available in a wide range of areas: from web services to ubiquitous computing including wireless networks, ad-hoc networks, RFID, and distributed applications on smartphones. | |||||
Lernziel | Gain hands-on-experience with real products and the latest technology in distributed systems. | |||||
Inhalt | This course involves the participation in a substantial development and/or evaluation project involving distributed systems technology. There are projects available in a wide range of areas: from web services to ubiquitous computing including as well wireless networks, ad-hoc networks, and distributed application on smartphones. The goal of the project is for the students to gain hands-on-experience with real products and the latest technology in distributed systems. There is no lecture associated to the course. For information of the course or projects available, see Link or contact Prof. Mattern, Prof. Wattenhofer, Prof. Roscoe or Prof. G. Alonso. | |||||
252-1407-00L | Algorithmic Game Theory | W | 7 KP | 3V + 2U + 1A | P. Penna | |
Kurzbeschreibung | Game theory provides a formal model to study the behavior and interaction of self-interested users and programs in large-scale distributed computer systems without central control. The course discusses algorithmic aspects of game theory. | |||||
Lernziel | Learning the basic concepts of game theory and mechanism design, acquiring the computational paradigm of self-interested agents, and using these concepts in the computational and algorithmic setting. | |||||
Inhalt | The Internet is a typical example of a large-scale distributed computer system without central control, with users that are typically only interested in their own good. For instance, they are interested in getting high bandwidth for themselves, but don't care about others, and the same is true for computational load or download rates. Game theory provides a particularly well-suited model for the behavior and interaction of such selfish users and programs. Classic game theory dates back to the 1930s and typically does not consider algorithmic aspects at all. Only a few years back, algorithms and game theory have been considered together, in an attempt to reconcile selfish behavior of independent agents with the common good. This course discusses algorithmic aspects of game-theoretic models, with a focus on recent algorithmic and mathematical developments. Rather than giving an overview of such developments, the course aims to study selected important topics in depth. Outline: - Introduction to classic game-theoretic concepts. - Existence of stable solutions (equilibria), algorithms for computing equilibria, computational complexity. - Speed of convergence of natural game playing dynamics such as best-response dynamics or regret minimization. - Techniques for bounding the quality-loss due to selfish behavior versus optimal outcomes under central control (a.k.a. the 'Price of Anarchy'). - Design and analysis of mechanisms that induce truthful behavior or near-optimal outcomes at equilibrium. - Selected current research topics, such as Google's Sponsored Search Auction, the U.S. FCC Spectrum Auction, Kidney Exchange. | |||||
Skript | Lecture notes will be usually posted on the website shortly after each lecture. | |||||
Literatur | "Algorithmic Game Theory", edited by N. Nisan, T. Roughgarden, E. Tardos, and V. Vazirani, Cambridge University Press, 2008; "Game Theory and Strategy", Philip D. Straffin, The Mathematical Association of America, 5th printing, 2004 Several copies of both books are available in the Computer Science library. | |||||
Voraussetzungen / Besonderes | Audience: Although this is a Computer Science course, we encourage the participation from all students who are interested in this topic. Requirements: You should enjoy precise mathematical reasoning. You need to have passed a course on algorithms and complexity. No knowledge of game theory is required. | |||||
252-1411-00L | Security of Wireless Networks | W | 5 KP | 2V + 1U + 1A | S. Capkun | |
Kurzbeschreibung | Core Elements: Wireless communication channel, Wireless network architectures and protocols, Attacks on wireless networks, Protection techniques. | |||||
Lernziel | After this course, the students should be able to: describe and classify security goals and attacks in wireless networks; describe security architectures of the following wireless systems and networks: 802.11, GSM/UMTS, RFID, ad hoc/sensor networks; reason about security protocols for wireless network; implement mechanisms to secure 802.11 networks. | |||||
Inhalt | Wireless channel basics. Wireless electronic warfare: jamming and target tracking. Basic security protocols in cellular, WLAN and multi-hop networks. Recent advances in security of multi-hop networks; RFID privacy challenges and solutions. | |||||
252-1425-00L | Geometry: Combinatorics and Algorithms | W | 6 KP | 2V + 2U + 1A | E. Welzl, L. F. Barba Flores, M. Hoffmann, A. Pilz | |
Kurzbeschreibung | Geometric structures are useful in many areas, and there is a need to understand their structural properties, and to work with them algorithmically. The lecture addresses theoretical foundations concerning geometric structures. Central objects of interest are triangulations. We study combinatorial (Does a certain object exist?) and algorithmic questions (Can we find a certain object efficiently?) | |||||
Lernziel | The goal is to make students familiar with fundamental concepts, techniques and results in combinatorial and computational geometry, so as to enable them to model, analyze, and solve theoretical and practical problems in the area and in various application domains. In particular, we want to prepare students for conducting independent research, for instance, within the scope of a thesis project. | |||||
Inhalt | Planar and geometric graphs, embeddings and their representation (Whitney's Theorem, canonical orderings, DCEL), polygon triangulations and the art gallery theorem, convexity in R^d, planar convex hull algorithms (Jarvis Wrap, Graham Scan, Chan's Algorithm), point set triangulations, Delaunay triangulations (Lawson flips, lifting map, randomized incremental construction), Voronoi diagrams, the Crossing Lemma and incidence bounds, line arrangements (duality, Zone Theorem, ham-sandwich cuts), 3-SUM hardness, counting planar triangulations. | |||||
Skript | yes | |||||
Literatur | Mark de Berg, Marc van Kreveld, Mark Overmars, Otfried Cheong, Computational Geometry: Algorithms and Applications, Springer, 3rd ed., 2008. Satyan Devadoss, Joseph O'Rourke, Discrete and Computational Geometry, Princeton University Press, 2011. Stefan Felsner, Geometric Graphs and Arrangements: Some Chapters from Combinatorial Geometry, Teubner, 2004. Jiri Matousek, Lectures on Discrete Geometry, Springer, 2002. Takao Nishizeki, Md. Saidur Rahman, Planar Graph Drawing, World Scientific, 2004. | |||||
Voraussetzungen / Besonderes | Prerequisites: The course assumes basic knowledge of discrete mathematics and algorithms, as supplied in the first semesters of Bachelor Studies at ETH. Outlook: In the following spring semester there is a seminar "Geometry: Combinatorics and Algorithms" that builds on this course. There are ample possibilities for Semester-, Bachelor- and Master Thesis projects in the area. | |||||
263-2210-00L | Computer Architecture | W | 8 KP | 6G + 1A | O. Mutlu | |
Kurzbeschreibung | Computer architecture is the science and art of selecting and interconnecting hardware components to create a computer that meets functional, performance and cost goals. This course introduces the basic hardware structure of a modern programmable computer, including the basic laws underlying performance evaluation. | |||||
Lernziel | We will learn, for example, how to design the control and data path hardware for a MIPS-like processor, how to make machine instructions execute simultaneously through pipelining and simple superscalar execution, and how to design fast memory and storage systems. | |||||
Inhalt | The principles presented in the lecture are reinforced in the laboratory through the design and simulation of a register transfer (RT) implementation of a MIPS-like pipelined processor in System Verilog. In addition, we will develop a cycle-accurate simulator of this processor in C, and we will use this simulator to explore processor design options. | |||||
Voraussetzungen / Besonderes | Digital technology | |||||
263-2400-00L | Reliable and Interpretable Artificial Intelligence | W | 4 KP | 2V + 1U | M. Vechev | |
Kurzbeschreibung | Creating reliable and explainable probabilistic models is a major challenge to solving the artificial intelligence problem. This course covers some of the latest advances that bring us closer to constructing such models. These advances span the areas of program synthesis/induction, programming languages, machine learning, and probabilistic programming. | |||||
Lernziel | The main objective of this course is to expose students to the latest and most exciting research in the area of explainable and interpretable artificial intelligence, a topic of fundamental and increasing importance. Upon completion of the course, the students should have mastered the underlying methods and be able to apply them to a variety of problems. | |||||
Inhalt | The material draws on some of the latest research advances in several areas of computer science: program synthesis/induction, programming languages, deep learning, and probabilistic programming. The material consists of three interconnected parts: Part I: Program Synthesis/Induction ---------------------------------------- Synthesis is a new frontier in AI where the computer programs itself from user provided examples. Synthesis has significant applications for non-programmers as well as for programmers where it can provide massive productivity increase (e.g., wrangling for data scientists). Modern synthesis techniques excel at learning functions over discrete spaces from (partial) intent. There have been a number of recent, exciting breakthroughs in techniques that discover complex, interpretable/explainable functions from few examples, partial sketches and other forms of supervision. Topics covered: - Theory of program synthesis: version spaces, counter-example guided inductive synthesis (CEGIS) with SAT/SMT, synthesis from noisy examples, learning with few examples, compositional synthesis, lower bounds on learning. - Applications of techniques: synthesis for end users (e.g., spreadsheets), data analytics and financial computing, interpretable machine learning models for structured data. - Combining neural networks and synthesis Part II: Robustness of Deep Learning ----------------------------------------- Deep learning methods based on neural networks have made impressive advances in recent years. A fundamental challenge with these models is that of understanding what the trained neural network has actually learned, for example, how stable / robust the network is to slight variations of the input (e.g., an image or a video), how easy it is to fool the network into mis-classifying obvious inputs, etc. Topics covered: - Basics of neural networks: fully connected, convolutional networks, residual networks, activation functions - Finding adversarial examples in deep learning with SMT - Methods and tools to guarantee robustness of deep nets (e.g., via affine arithmetic, SMT solvers); synthesis of robustness specs Part III: Probabilistic Programming -------------------------------------- Probabilistic programming is an emerging direction whose goal is democratize the construction of probabilistic models. In probabilistic programming, the user specifies a model while inference is left to the underlying solver. The idea is that the higher level of abstraction makes it easier to express, understand and reason about probabilistic models. Topics covered: - Inference: MCMC samplers and tactics (approximate), symbolic inference (exact). - Semantics: basic measure theoretic semantics of probability; bridging measure theory and symbolic inference. - Frameworks and languages: WebPPL (MIT/Stanford), PSI (ETH), Picture/Venture (MIT), Anglican (Oxford). - Synthesis for probabilistic programs: this connects to Part I - Applications of probabilistic programming: using the above solvers for reasoning about bias in machine learning models (connects to Part II), reasoning about computer networks, security protocols, approximate computing, cognitive models, rational agents. | |||||
263-2810-00L | Advanced Compiler Design | W | 7 KP | 3V + 2U + 1A | R. Eigenmann, 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-3010-00L | Big Data | W | 8 KP | 3V + 2U + 2A | G. Fourny | |
Kurzbeschreibung | The key challenge of the information society is to turn data into information, information into knowledge, knowledge into value. This has become increasingly complex. Data comes in larger volumes, diverse shapes, from different sources. Data is more heterogeneous and less structured than forty years ago. Nevertheless, it still needs to be processed fast, with support for complex operations. | |||||
Lernziel | This combination of requirements, together with the technologies that have emerged in order to address them, is typically referred to as "Big Data." This revolution has led to a completely new way to do business, e.g., develop new products and business models, but also to do science -- which is sometimes referred to as data-driven science or the "fourth paradigm". Unfortunately, the quantity of data produced and available -- now in the Zettabyte range (that's 21 zeros) per year -- keeps growing faster than our ability to process it. Hence, new architectures and approaches for processing it were and are still needed. Harnessing them must involve a deep understanding of data not only in the large, but also in the small. The field of databases evolves at a fast pace. In order to be prepared, to the extent possible, to the (r)evolutions that will take place in the next few decades, the emphasis of the lecture will be on the paradigms and core design ideas, while today's technologies will serve as supporting illustrations thereof. After visiting this lecture, you should have gained an overview and understanding of the Big Data landscape, which is the basis on which one can make informed decisions, i.e., pick and orchestrate the relevant technologies together for addressing each business use case efficiently and consistently. | |||||
Inhalt | This course gives an overview of database technologies and of the most important database design principles that lay the foundations of the Big Data universe. The material is organized along three axes: data in the large, data in the small, data in the very small. A broad range of aspects is covered with a focus on how they fit all together in the big picture of the Big Data ecosystem. - physical storage: distributed file systems (HDFS), object storage(S3), key-value stores - logical storage: document stores (MongoDB), column stores (HBase), graph databases (neo4j), data warehouses (ROLAP) - data formats and syntaxes (XML, JSON, RDF, Turtle, CSV, XBRL, YAML, protocol buffers, Avro) - data shapes and models (tables, trees, graphs, cubes) - type systems and schemas: atomic types, structured types (arrays, maps), set-based type systems (?, *, +) - an overview of functional, declarative programming languages across data shapes (SQL, XQuery, JSONiq, Cypher, MDX) - the most important query paradigms (selection, projection, joining, grouping, ordering, windowing) - paradigms for parallel processing, two-stage (MapReduce) and DAG-based (Spark) - resource management (YARN) - what a data center is made of and why it matters (racks, nodes, ...) - underlying architectures (internal machinery of HDFS, HBase, Spark, neo4j) - optimization techniques (functional and declarative paradigms, query plans, rewrites, indexing) - applications. Large scale analytics and machine learning are outside of the scope of this course. Guest lectures planned so far: - Bart Samwel (Google) on F1, Spanner | |||||
Literatur | Papers from scientific conferences and journals. References will be given as part of the course material during the semester. | |||||
Voraussetzungen / Besonderes | This course, in the autumn semester, is only intended for: - Computer Science students - Data Science students - CBB students with a Computer Science background Another version of this course will be offered in Spring for students of other departments. However, if you would like to already start learning about databases now, a course worth taking as a preparation/good prequel to the Spring edition of Big Data is the "Information Systems for Engineers" course, offered this Fall for other departments as well, and introducing relational databases and SQL. | |||||
263-3210-00L | Deep Learning Maximale Teilnehmerzahl: 300 | W | 4 KP | 2V + 1U | T. Hofmann | |
Kurzbeschreibung | Deep learning is an area within machine learning that deals with algorithms and models that automatically induce multi-level data representations. | |||||
Lernziel | In recent years, deep learning and deep networks have significantly improved the state-of-the-art in many application domains such as computer vision, speech recognition, and natural language processing. This class will cover the mathematical foundations of deep learning and provide insights into model design, training, and validation. The main objective is a profound understanding of why these methods work and how. There will also be a rich set of hands-on tasks and practical projects to familiarize students with this emerging technology. | |||||
Voraussetzungen / Besonderes | This is an advanced level course that requires some basic background in machine learning. More importantly, students are expected to have a very solid mathematical foundation, including linear algebra, multivariate calculus, and probability. The course will make heavy use of mathematics and is not (!) meant to be an extended tutorial of how to train deep networks with tools like Torch or Tensorflow, although that may be a side benefit. The participation in the course is subject to the following conditions: 1) The number of participants is limited to 300 students (MSc and PhDs). 2) Students must have taken the exam in Machine Learning (252-0535-00) or have acquired equivalent knowledge, see exhaustive list below: Machine Learning Link Computational Intelligence Lab Link Learning and Intelligent Systems Link Statistical Learning Theory Link Computational Statistics Link Probabilistic Artificial Intelligence Link Data Mining: Learning from Large Data Sets Link | |||||
263-3300-00L | Data Science Lab Maximale Teilnehmerzahl: 30. Im Masterstudium können zusätzlich zu den Vertiefungsübergreifenden Fächern nur max. 10 Kreditpunkte über Laboratorien erarbeitet werden. Weitere Laboratorien werden auf dem Beiblatt aufgeführt. | W | 10 KP | 9P | C. Zhang, K. Schawinski | |
Kurzbeschreibung | In this class, we bring together data science applications provided by ETH researchers outside computer science and teams of computer science master's students. Two to three students will form a team working on data science/machine learning-related research topics provided by scientists in a diverse range of domains such as astronomy, biology, social sciences etc. | |||||
Lernziel | The goal of this class if for students to gain experience of dealing with data science and machine learning applications "in the wild". Students are expected to go through the full process starting from data cleaning, modeling, execution, debugging, error analysis, and quality/performance refinement. Website: Link | |||||
Voraussetzungen / Besonderes | Each student is required to send the lecturer their CV and transcript and the lecturer will decide the enrollment on a per-student basis. Moreover, the students are expected to have experience about machine learning and deep learning. EMAIL to send CV: Link | |||||
263-4500-00L | Advanced Algorithms | W | 6 KP | 2V + 2U + 1A | M. Ghaffari | |
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-4630-00L | Computer-Aided Modelling and Reasoning 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 KP | 7P | A. Lochbihler, D. Traytel | |
Kurzbeschreibung | The "computer-aided modelling and reasoning" lab is a hands-on course about using an interactive theorem prover to construct formal models of algorithms, protocols, and programming languages and to reason about their properties. The lab has two parts: The first introduces various modelling and proof techniques. The second part consists of a project in which the students apply these techniques | |||||
Lernziel | The students learn to effectively use a theorem prover to create unambiguous models and rigorously analyse them. They learn how to write precise and concise specifications, to exploit the theorem prover as a tool for checking and analysing such models and for taming their complexity, and to extract certified executable implementations from such specifications. | |||||
Inhalt | The "computer-aided modelling and reasoning" lab is a hands-on course about using an interactive theorem prover to construct formal models of algorithms, protocols, and programming languages and to reason about their properties. The focus is on applying logical methods to concrete problems supported by a theorem prover. The course will demonstrate the challenges of formal rigor, but also the benefits of machine support in modelling, proving and validating. The lab will have two parts: The first part introduces basic and advanced modelling techniques (functional programs, inductive definitions, modules), the associated proof techniques (term rewriting, resolution, induction, proof automation), and compilation of the models to certified executable code. In the second part, the students work in teams of two on a project assignment in which they apply these techniques: they build a formal model and prove its desired properties. The project lies in the area of programming languages, model checking, or information security. | |||||
Literatur | Textbook: Tobias Nipkow, Gerwin Klein. Concrete Semantics, part 1 (Link) | |||||
263-5200-00L | Data Mining: Learning from Large Data Sets | W | 4 KP | 2V + 1U | A. Krause, Y. Levy | |
Kurzbeschreibung | Many scientific and commercial applications require insights from massive, high-dimensional data sets. This courses introduces principled, state-of-the-art techniques from statistics, algorithms and discrete and convex optimization for learning from such large data sets. The course both covers theoretical foundations and practical applications. | |||||
Lernziel | Many scientific and commercial applications require us to obtain insights from massive, high-dimensional data sets. In this graduate-level course, we will study principled, state-of-the-art techniques from statistics, algorithms and discrete and convex optimization for learning from such large data sets. The course will both cover theoretical foundations and practical applications. | |||||
Inhalt | Topics covered: - Dealing with large data (Data centers; Map-Reduce/Hadoop; Amazon Mechanical Turk) - Fast nearest neighbor methods (Shingling, locality sensitive hashing) - Online learning (Online optimization and regret minimization, online convex programming, applications to large-scale Support Vector Machines) - Multi-armed bandits (exploration-exploitation tradeoffs, applications to online advertising and relevance feedback) - Active learning (uncertainty sampling, pool-based methods, label complexity) - Dimension reduction (random projections, nonlinear methods) - Data streams (Sketches, coresets, applications to online clustering) - Recommender systems | |||||
Voraussetzungen / Besonderes | Prerequisites: Solid basic knowledge in statistics, algorithms and programming. Background in machine learning is helpful but not required. | |||||
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. | |||||
Inhalt | Topics covered: - Search (BFS, DFS, A*), constraint satisfaction and optimization - Tutorial in logic (propositional, first-order) - Probability - 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-5001-00L | Introduction to Finite Elements and Sparse Linear System Solving | W | 4 KP | 2V + 1U | P. Arbenz | |
Kurzbeschreibung | The finite element (FE) method is the method of choice for (approximately) solving partial differential equations on complicated domains. In the first third of the lecture, we give an introduction to the method. The rest of the lecture will be devoted to methods for solving the large sparse linear systems of equation that a typical for the FE method. We will consider direct and iterative methods. | |||||
Lernziel | Students will know the most important direct and iterative solvers for sparse linear systems. They will be able to determine which solver to choose in particular situations. | |||||
Inhalt | I. THE FINITE ELEMENT METHOD (1) Introduction, model problems. (2) 1D problems. Piecewise polynomials in 1D. (3) 2D problems. Triangulations. Piecewise polynomials in 2D. (4) Variational formulations. Galerkin finite element method. (5) Implementation aspects. II. DIRECT SOLUTION METHODS (6) LU and Cholesky decomposition. (7) Sparse matrices. (8) Fill-reducing orderings. III. ITERATIVE SOLUTION METHODS (9) Stationary iterative methods, preconditioning. (10) Preconditioned conjugate gradient method (PCG). (11) Incomplete factorization preconditioning. (12) Multigrid preconditioning. (13) Nonsymmetric problems (GMRES, BiCGstab). (14) Indefinite problems (SYMMLQ, MINRES). | |||||
Literatur | [1] M. G. Larson, F. Bengzon: The Finite Element Method: Theory, Implementation, and Applications. Springer, Heidelberg, 2013. [2] H. Elman, D. Sylvester, A. Wathen: Finite elements and fast iterative solvers. OUP, Oxford, 2005. [3] Y. Saad: Iterative methods for sparse linear systems (2nd ed.). SIAM, Philadelphia, 2003. [4] T. Davis: Direct Methods for Sparse Linear Systems. SIAM, Philadelphia, 2006. [5] H.R. Schwarz: Die Methode der finiten Elemente (3rd ed.). Teubner, Stuttgart, 1991. | |||||
Voraussetzungen / Besonderes | Prerequisites: Linear Algebra, Analysis, Computational Science. The exercises are made with Matlab. | |||||
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 | 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 are mainly theoretical, practicing the mathematical foundations such as numerical integration, differential vector calculus, and flow field analysis. | |||||
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. | |||||
401-3055-64L | Algebraic Methods in Combinatorics | W | 6 KP | 2V + 1U | B. Sudakov | |
Kurzbeschreibung | Combinatorics is a fundamental mathematical discipline as well as an essential component of many mathematical areas, and its study has experienced an impressive growth in recent years. This course provides a gentle introduction to Algebraic methods, illustrated by examples and focusing on basic ideas and connections to other areas. | |||||
Lernziel | ||||||
Inhalt | Combinatorics is a fundamental mathematical discipline as well as an essential component of many mathematical areas, and its study has experienced an impressive growth in recent years. While in the past many of the basic combinatorial results were obtained mainly by ingenuity and detailed reasoning, the modern theory has grown out of this early stage and often relies on deep, well-developed tools. One of the main general techniques that played a crucial role in the development of Combinatorics was the application of algebraic methods. The most fruitful such tool is the dimension argument. Roughly speaking, the method can be described as follows. In order to bound the cardinality of of a discrete structure A one maps its elements to vectors in a linear space, and shows that the set A is mapped to linearly independent vectors. It then follows that the cardinality of A is bounded by the dimension of the corresponding linear space. This simple idea is surprisingly powerful and has many famous applications. This course provides a gentle introduction to Algebraic methods, illustrated by examples and focusing on basic ideas and connections to other areas. The topics covered in the class will include (but are not limited to): Basic dimension arguments, Spaces of polynomials and tensor product methods, Eigenvalues of graphs and their application, the Combinatorial Nullstellensatz and the Chevalley-Warning theorem. Applications such as: Solution of Kakeya problem in finite fields, counterexample to Borsuk's conjecture, chromatic number of the unit distance graph of Euclidean space, explicit constructions of Ramsey graphs and many others. The course website can be found at Link | |||||
401-3901-00L | Mathematical Optimization | W | 11 KP | 4V + 2U | R. Weismantel | |
Kurzbeschreibung | Mathematical treatment of diverse optimization techniques. | |||||
Lernziel | Advanced optimization theory and algorithms. | |||||
Inhalt | 1) Linear optimization: The geometry of linear programming, the simplex method for solving linear programming problems, Farkas' Lemma and infeasibility certificates, duality theory of linear programming. 2) Nonlinear optimization: Lagrange relaxation techniques, Newton method and gradient schemes for convex optimization. 3) Integer optimization: Ties between linear and integer optimization, total unimodularity, complexity theory, cutting plane theory. 4) Combinatorial optimization: Network flow problems, structural results and algorithms for matroids, matchings, and, more generally, independence systems. | |||||
Literatur | 1) D. Bertsimas & R. Weismantel, "Optimization over Integers". Dynamic Ideas, 2005. 2) A. Schrijver, "Theory of Linear and Integer Programming". John Wiley, 1986. 3) D. Bertsimas & J.N. Tsitsiklis, "Introduction to Linear Optimization". Athena Scientific, 1997. 4) Y. Nesterov, "Introductory Lectures on Convex Optimization: a Basic Course". Kluwer Academic Publishers, 2003. 5) C.H. Papadimitriou, "Combinatorial Optimization". Prentice-Hall Inc., 1982. | |||||
Voraussetzungen / Besonderes | Linear algebra. | |||||
Seminar in General Studies | ||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |
252-4202-00L | Seminar in Theoretical Computer Science | W | 2 KP | 2S | E. Welzl, B. Gärtner, M. Hoffmann, J. Lengler, A. Steger, B. Sudakov | |
Kurzbeschreibung | Präsentation wichtiger und aktueller Arbeiten aus der theoretischen Informatik, sowie eigener Ergebnisse von Diplomanden und Doktoranden. | |||||
Lernziel | Das Lernziel ist, Studierende an die aktuelle Forschung heranzuführen und sie in die Lage zu versetzen, wissenschaftliche Arbeiten zu lesen, zu verstehen, und zu präsentieren. | |||||
252-4601-00L | Current Topics in Information Security Number of participants limited to 24. | W | 2 KP | 2S | D. Basin, S. Capkun, A. Perrig | |
Kurzbeschreibung | The seminar covers various topics in information security: security protocols (models, specification & verification), trust management, access control, non-interference, side-channel attacks, identity-based cryptography, host-based attack detection, anomaly detection in backbone networks, key-management for sensor networks. | |||||
Lernziel | The main goals of the seminar are the independent study of scientific literature and assessment of its contributions as well as learning and practicing presentation techniques. | |||||
Inhalt | The seminar covers various topics in information security, including network security, cryptography and security protocols. The participants are expected to read a scientific paper and present it in a 35-40 min talk. At the beginning of the semester a short introduction to presentation techniques will be given. Selected Topics - security protocols: models, specification & verification - trust management, access control and non-interference - side-channel attacks - identity-based cryptography - host-based attack detection - anomaly detection in backbone networks - key-management for sensor networks | |||||
Literatur | The reading list will be published on the course web site. | |||||
252-5051-00L | Advanced Topics in Machine Learning Number of participants limited to 40. | W | 2 KP | 2S | J. M. Buhmann, T. Hofmann, A. Krause, G. Rätsch | |
Kurzbeschreibung | In this seminar, recent papers of the pattern recognition and machine learning literature are presented and discussed. Possible topics cover statistical models in computer vision, graphical models and machine learning. | |||||
Lernziel | The seminar "Advanced Topics in Machine Learning" familiarizes students with recent developments in pattern recognition and machine learning. Original articles have to be presented and critically reviewed. The students will learn how to structure a scientific presentation in English which covers the key ideas of a scientific paper. An important goal of the seminar presentation is to summarize the essential ideas of the paper in sufficient depth while omitting details which are not essential for the understanding of the work. The presentation style will play an important role and should reach the level of professional scientific presentations. | |||||
Inhalt | The seminar will cover a number of recent papers which have emerged as important contributions to the pattern recognition and machine learning literature. The topics will vary from year to year but they are centered on methodological issues in machine learning like new learning algorithms, ensemble methods or new statistical models for machine learning applications. Frequently, papers are selected from computer vision or bioinformatics - two fields, which relies more and more on machine learning methodology and statistical models. | |||||
Literatur | The papers will be presented in the first session of the seminar. | |||||
252-5701-00L | Advanced Topics in Computer Graphics and Vision Maximale Teilnehmerzahl: 24 | W | 2 KP | 2S | M. Gross, O. Sorkine Hornung | |
Kurzbeschreibung | This seminar covers advanced topics in computer graphics, such as modeling, rendering, animation, real-time graphics, physical simulation, and computational photography. Each time the course is offered, a collection of research papers is selected and each student presents one paper to the class and leads a discussion about the paper and related topics. | |||||
Lernziel | The goal is to get an in-depth understanding of actual problems and research topics in the field of computer graphics as well as improve presentations and critical analysis skills. | |||||
Inhalt | This seminar covers advanced topics in computer graphics, including both seminal research papers as well as the latest research results. Each time the course is offered, a collection of research papers are selected covering topics such as modeling, rendering, animation, real-time graphics, physical simulation, and computational photography. Each student presents one paper to the class and leads a discussion about the paper and related topics. All students read the papers and participate in the discussion. | |||||
Skript | no script | |||||
Literatur | Individual research papers are selected each term. See Link for the current list. | |||||
Voraussetzungen / Besonderes | Prerequisites: The courses "Computer Graphics I and II" (GDV I & II) are recommended, but not mandatory. | |||||
263-2100-00L | Research Topics in Software Engineering Maximale Teilnehmerzahl: 22 | W | 2 KP | 2S | P. Müller, T. Gross, M. Püschel, M. Vechev | |
Kurzbeschreibung | This seminar is an opportunity to become familiar with current research in software engineering and more generally with the methods and challenges of scientific research. | |||||
Lernziel | Each student will be asked to study some papers from the recent software engineering literature and review them. This is an exercise in critical review and analysis. Active participation is required (a presentation of a paper as well as participation in discussions). | |||||
Inhalt | The aim of this seminar is to introduce students to recent research results in the area of programming languages and software engineering. To accomplish that, students will study and present research papers in the area as well as participate in paper discussions. The papers will span topics in both theory and practice, including papers on program verification, program analysis, testing, programming language design, and development tools. A particular focus will be on domain-specific languages. | |||||
Literatur | The publications to be presented will be announced on the seminar home page at least one week before the first session. | |||||
Voraussetzungen / Besonderes | Organizational note: the seminar will meet only when there is a scheduled presentation. Please consult the seminar's home page for information. | |||||
263-3504-00L | Hardware Acceleration for Data Processing | W | 2 KP | 2S | G. Alonso, T. Hoefler, O. Mutlu, C. Zhang | |
Kurzbeschreibung | The seminar will cover topics related to data processing using new hardware in general and hardware accelerators (GPU, FPGA, specialized processors) in particular. | |||||
Lernziel | The seminar will cover topics related to data processing using new hardware in general and hardware accelerators (GPU, FPGA, specialized processors) in particular. | |||||
Inhalt | The general application areas are big data and machine learning. The systems covered will include systems from computer architecture, high performance computing, data appliances, and data centers. | |||||
Voraussetzungen / Besonderes | Students taking this seminar should have the necessary background in systems and low level programming. | |||||
263-3900-00L | Communication Networks Seminar Maximale Teilnehmerzahl: 20 | W | 2 KP | 2S | A. Singla | |
Kurzbeschreibung | We will study recent advances in computer networking by reading, presenting, and discussing research papers from recent iterations of the top conferences in the area, including NSDI, SIGCOMM, and CoNEXT. | |||||
Lernziel | The objectives are (a) to understand the state-of-the-art in the field; (b) to learn to read, present and critique papers; (c) to engage in discussion and debate about research questions; and (d) to identify opportunities for new research. Students are expected to attend the entire seminar, choose a topic for presentation from a given list, make a presentation on that topic, and lead the discussion. Further, for each reading, every student needs to submit a review before the in-class discussion. Students are evaluated on their submitted reviews, their presentation and discussion leadership, and participation in seminar discussions. |