Suchergebnis: Katalogdaten im Herbstsemester 2017
|Vertiefung General Studies|
|Wahlfächer der Vertiefung General Studies|
|252-0286-00L||System Construction||W||4 KP||2V + 1U||F. O. Friedrich|
|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.|
|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: http://www.infsec.ethz.ch/appliedlabbook|
|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. |
* 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 https://www.dsl.inf.ethz.ch/ 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.
- 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|
|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.|
|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.
- 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.
- 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.
- 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)
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:
Computational Intelligence Lab
Learning and Intelligent Systems
Statistical Learning Theory
Probabilistic Artificial Intelligence
Data Mining: Learning from Large Data Sets
|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.
|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: email@example.com
|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 (www.concrete-semantics.org)|
|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.|
- 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.|
- Search (BFS, DFS, A*), constraint satisfaction and optimization
- Tutorial in logic (propositional, first-order)
- Bayesian Networks (models, exact and approximative inference, learning) - Temporal models (Hidden Markov Models, Dynamic Bayesian Networks)
- Probabilistic palnning (MDPs, POMPDPs)
- Reinforcement learning
- Combining logic and probability
|Voraussetzungen / Besonderes||Solid basic knowledge in statistics, algorithms and programming|
- Seite 1 von 2 Alle