Autumn Semester 2020 takes place in a mixed form of online and classroom teaching.
Please read the published information on the individual courses carefully.

Search result: Catalogue data in Autumn Semester 2014

Certificate of Advanced Studies in Computer Science Information
Focus Courses and Electives
NumberTitleTypeECTSHoursLecturers
263-3010-00LBig Data Information W6 credits3V + 1U + 1AT. Hofmann
AbstractOne of the key challenges of the information society is to turn data into information, information into knowledge, and knowledge into value. To turn data into value in this way involves collecting large volumes of data, possibly from many and diverse data sources, processing the data fast, and applying complex operations to the data.
ObjectiveOne of the key challenges of the information society is to turn data into information, information into knowledge, and knowledge into value. To turn data into value in this way involves collecting large volumes of data, possibly from many and diverse data sources, processing the data fast, and applying complex operations to the data. This combination of requirements is typically referred to as Big Data and it has led to a completely new way to do business (e.g., develop new products and business models) and do science (sometimes referred to as data-driven science or the "fourth paradigm"). Unfortunately, big data grows faster than our ability to process the data so that new architectures and approaches for processing Big Data are needed.
ContentThe goal of this course is to give an overview of Big Data technologies. All aspects are covered: data formats and models, programming languages, optimization techniques, systems, and applications.
LiteraturePapers from scientific conferences and journals. References will be given as part of the course material during the semester.
252-3610-00LSmart Energy Information W3 credits2GF. Mattern, V. Tiefenbeck
AbstractThe lecture covers the role of ICT for sustainable energy usage. Concepts of the emerging smart grid are outlined and approaches to motivate sustainable consumer choices are explained. The lecture combines technologies from ubiquitous computing and traditional ICT with insights from socio-psychological concepts and illustrates them with examples from actual applications.
ObjectiveParticipants become familiar with the challenges related to sustainable energy usage, understand the principles of a smart grid infrastructure and its applications, know the role of ubiquitous computing technologies, can explain the challenges regarding security and privacy, can reflect the basics cues to induce changes in consumer behavior, develop a general understanding of the effects of a smart grid infrastructure on energy efficiency, and know how to apply the learning to related design projects.
Content- Background on energy generation and consumption; characteristics, potential, and limitations of renewable energy sources
- Introduction to energy economics
- Smart grid and smart metering infrastructures, virtual power plants, security challenges
- Demand managemenet and home automation using ubiquitous computing technologies
- Changing consumer behavior with smart ICT
- Benefits challenges of a smart energy system
LiteratureWill be provided during the course, though a good starting point is "ICT for green: how computers can help us to conserve energy" from Friedemann Mattern, Thosten Staake, and Markus Weiss (available at http://www.vs.inf.ethz.ch/publ/papers/ICT-for-Green.pdf).
Prerequisites / NoticeThe lecture includes interactive exercises, case studies and practical examples.
263-3800-00LAdvanced Operating Systems Information W6 credits2V + 2U + 1AT. Roscoe
AbstractThis course is intended to give students a thorough understanding of design and implementation issues for modern operating systems. 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.
ObjectiveThe goals of the course are, firstly, to give students 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, and secondly, to provide them with practical experience in dealing directly with the concurrency, resource management, and abstraction problems confronting OS designers and implementers.
ContentThis course is intended to give students a thorough understanding of design and implementation issues for modern operating systems. 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. We will pay particular attention to system structures that differ from traditional monolithic arrangements of Unix/Linux and Windows.
Prerequisites / NoticeThe course consists of lectures, project work, and a written examination. Project work will be performed in small groups, where students will implement major components of a microkernel-based operating system. The final assessment will be a combination of project and examination grades.
263-5001-00LIntroduction to Finite Elements and Sparse Linear System Solving Information W4 credits2V + 1UP. Arbenz, T. Kaman
AbstractThe 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.
ObjectiveStudents 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.
ContentI. 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).
Literature[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.
Prerequisites / NoticePrerequisites: Linear Algebra, Analysis, Computational Science.
The exercises are made with Matlab.
263-5150-00LScientific Databases Information W4 credits2V + 1UG. H. Gonnet
AbstractScientific databases share many aspects with classical DBs, but have additional specific aspects. We will review Relational DBs, Object Oriented DBs, Knowledge DBs, textual DBs and the Semantic Web. All these topics will be studied from the point of view of the scientific applications (Bioinformatics, Physics, Chemistry, Health, Engineering) A toy SDB will be used for exercises.
ObjectiveThe goals of this course are to:
(a) Familiarize the students with how existing DBs can be used for
scientific applications.
(b) Recognize the areas where SciDBs differ and require additional
features compared to classical DBs.
(c) Be able to understand more easily SciDBs, improve existing ones
or design/create new ones.
(d) Familiarize the students with at least two examples of SciDBs.
Content1) - Introduction, Statement of the problem, course structure, exercises,
why Scientific DBs (SDBs) do not fit exactly the classical DB area.
Hierarchy: File systems, data bases, knowledge bases and variations.
Efficiency issues and how they differ from classical DB.

2) - Relational DB used for scientific data, pros/cons
Introduction to RDB, limitations of the model, basics of SQL,
handling of metadata, examples of scientific use of RDBs.

3) - Object Oriented DB. Rich/structured objects are very appealing
in SDB. OODB primitives and environments. OODB searching.
Space and access time efficiency of OODBs.

4) - Knowledge bases, key-value stores, ontologies, workflow-based
architectures. WASA.

5) - MapReduce / Hadoop

6) - Storing and sharing mathematical objects, Open Math, its relation
with OODB and Knowledge bases. Also the problem of chemical
formula representation.

7) - SGML and XML, human-readable databases, genomic databases.
Advantages of human-readable databases (the huge initial success
of genomic databases).

8) - Semantic web, Resource Description Framework (RDF) triples, SparQL.
An example of very flexible database for knowlege storage. Goals of
the Semantic Web, discussion about its future.

9) - An ideal scenario (and the design of a toy system with most of the
desired features for exploration and exercises).

10) - Automatic dependency management, (make and similar). The graph
theory problem. Critical paths.

11) - Functional testing, Verifiers, Consistency, Short-circuit testing,
Recovery and Automatic recovery, Backup (incremental) methods.

12) - Performance and space issues, various uses of compression,
concurrency control. Hardware issues, clusters, Cloud computing,
Crowd-sourcing.

13) - Guest speaker: Ioannis Xenarios (UniProtKB/Swiss-Prot).
LiteratureSeveral papers and online articles will be made available.
There is no single textbook for this course.
A significant amount of material will be delivered in the lectures making lecture attendance highly recommended.
263-5210-00LProbabilistic Artificial Intelligence Information W4 credits2V + 1UA. Krause
AbstractThis 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.
ObjectiveHow 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.
ContentTopics 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
Prerequisites / NoticeSolid basic knowledge in statistics, algorithms and programming
263-5902-00LComputer Vision Information W6 credits3V + 2UM. Pollefeys, L. Van Gool
AbstractThe 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.
ObjectiveThe 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.
ContentCamera 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
Prerequisites / NoticeIt is recommended that students have taken the Visual Computing lecture or a similar course introducing basic image processing concepts before taking this course.
227-0577-00LNetwork SecurityW6 credits2V + 1U + 1PB. Plattner, T. P. Dübendorfer, S. Frei, A. Perrig
AbstractThis lecture discusses fundamental concepts and technologies in the area of network security. Several case studies illustrate the dark side of the Internet and explain how to protect against such threats. A hands-on computer lab that accompanies the lecture gives a deep dive on firewalls, penetration testing and intrusion detection.
Objective•Students are aware of current threats that Internet services and networked devices face and can explain appropriate countermeasures.
•Students can identify and assess known vulnerabilities in a software system that is connected to the Internet.
•Students know fundamental network security concepts.
•Students have an in-depth understanding of important security technologies.
•Students know how to configure a real firewall and know some penetration testing tools from their own experience.
ContentRisk management and the vulnerability lifecycle of software and networked services are discussed. Threats like denial of service, spam, worms, and viruses are studied in-depth. Fundamental security related concepts like identity, availability, authentication and secure channels are introduced. State of the art technologies like secure shell, network and transport layer security, intrusion detection and prevention systems, cross-site scripting, secure implementation techniques and more for securing the Internet and web applications are presented. Several case studies illustrate the dark side of the Internet and explain how to protect against current threats. A hands-on computer lab that accompanies the lecture gives a deep dive on firewalls, penetration testing and intrusion detection.
This lecture is intended for students with an interest in securing Internet services and networked devices. Students are assumed to have knowledge in networking as taught in the Communication Networks lecture. This lecture and the exam are held in English.
Prerequisites / NoticeKnowldedge in computer networking and Internet protocols (e.g. course Communication Networks (D-ITET) or Operating Systems and Networks (D-INFK).

Due to recent changes in the Swiss law, ETH requires each student of this course to sign a written declaration that he/she will not use the information given in this for illegal purposes. This declaration will have to be signed and submitted no later than at the begining of the second lesson.
227-0778-00LHardware/Software Codesign Information W6 credits2V + 2UL. Thiele
AbstractThe course provides advanced knowledge in the design of complex computer systems, in particular embedded systems. Models and methods are discussed that are fundamental for systems that consist of software and hardware components.
ObjectiveThe course provides advanced knowledge in the design of complex computer systems, in particular embedded systems. Models and methods are discussed that are fundamental for systems that consist of software and hardware components.
ContentThe course covers the following subjects: (a) Models for describing hardware and software components (specification), (b) Hardware-Software Interfaces (instruction set, hardware and software components, reconfigurable computing, heterogeneous computer architectures, System-on-Chip), (c) Application specific instruction sets, code generation and retargetable compilation, (d) Performance analysis and estimation techniques, (e) System design (hardware-software partitioning and design space exploration).
Lecture notesMaterial for exercises, copies of transparencies.
LiteraturePeter Marwedel, Embedded System Design, Springer, ISBN-13 978-94-007-0256-1, 2011.

Peter Marwedel, Eingebettete Systeme, Springer, ISBN-13 978-3-540-34048-53, 2007.

Wayne Wolf. Computers as Components. Morgan Kaufmann, ISBN-13: 978-0123884367, 2012.

G. DeMicheli, R. Ernst and W. Wolf, Readings in Hw/Sw Co-design, M. Kaufmann, 2003.
Prerequisites / NoticePrerequisites for the course is a basic knowledge in the following areas: computer architecture, digital design, software design, embedded systems
401-0647-00LIntroduction to Mathematical Optimization Information W5 credits2V + 1UU.‑U. Haus, R. Zenklusen
AbstractIntroduction to basic techniques and problems of mathematical optimization.
ObjectiveThe goal is to get a good understanding of some of the most important mathematical optimization techniques used to solve linear programs and basic combinatorial optimization problems.
ContentTopics covered in this course include:
- Linear programming (simplex method, duality theory, shadow prices, ...).
- Basic combinatorial optimization problems (spanning trees, network flows, knapsack problem, ...).
LiteratureInformation about relevant literature will be given in the lecture.
Prerequisites / NoticeThis course is meant for students who did not already attend the course "Mathematical Optimization", which is a more advance lecture covering similar topics and more.
636-0007-00LComputational Systems BiologyW6 credits3V + 2UJ. Stelling
AbstractStudy 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).
ObjectiveThe aim of this course is to provide an introductory overview of mathematical and computational methods for the modeling, simulation and analysis of biological networks.
ContentBiology 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.
LiteratureU. Alon, An introduction to systems biology. Chapman & Hall / CRC, 2006.

Z. Szallasi et al. (eds.), System modeling in cellular biology. MIT Press, 2006.
252-1409-00LGraph Theory: Advanced Topics
Does not take place this semester.
W5 credits2V + 1U + 1A
AbstractThe course presents advanced techniques in graph theory, giving a mixture of classical and very recent methods. Topics may include
- random graphs: threshold functions and the evolution of random graphs, Achlioptas processes
- regularity lemma
- container method
- expanders
- separators in planar graphs and subexponential algorithms
- tree width
- property testing
ObjectiveUpon successful completion of the course, the students are expected to be familiar with some of the central open problems of modern graph theory and with some of the main tools that were developed in order to tackle these problems. Their understanding of the learned tools is expected to be deep enough for them to apply these tools independently.
Prerequisites / NoticeThis course requires "Graphs and Algorithms" or a similar lecture.

Attending the course without a preceding course on graph theory is possible if the student is willing to do some extra reading and to accept some standard theorems on graphs without proofs.
263-2910-00LProgram Analysis Information
Does not take place this semester.
The course will be offered again in the spring semester 2015.
W4 credits2V + 1UM. Vechev
AbstractModern program analysis techniques are the predominant approach for automatically reasoning about real world programs -- its techniques have been applied in a vast range of application domains.

The course provides an introduction to the fundamental principles, applications, and research trends of modern program analysis.

Course website: http://www.srl.inf.ethz.ch/pa.php
ObjectiveThe course has 4 main objectives:

* Understand the foundational principles behind program analysis techniques.

* Understand how to apply these principles to build practical, working analyzers for real world problems.

* Understand how to combine these techniques with other approaches (e.g. machine learning techniques) to build powerful end-to-end reasoning systems, not possible otherwise.

* Gain familiarity with the state-of-the-art in the area and the future research trends in the next 5-10 years.
ContentThe last decade has seen an explosion in modern program analysis techniques. These techniques are increasingly being used to reason about a vast range of computational paradigms including:

* finding security violations in web and mobile applications such as JavaScript and Android.
* combinations with machine learning techniques for learning from massive programming data guiding prediction of program properties and prediction of new code.
* establishing properties of biological systems (e.g. DNA computation)
* finding serious errors in systems software (e.g. Linux kernel, device drivers, file systems)
* automatic discovery of new algorithms (e.g. concurrent data structures, distributed algorithms) and end-user programming.
* compilers for domain specific languages
* architecture-driven reasoning of concurrent software (e.g. Intel's x86, ARM, IBM's Power).

This course will provide a comprehensive introduction to modern, state-of-the-art program analysis concepts, principles and research trends, including:

* Static & Dynamic Analysis:
- concepts: memory safety, typestate, concurrency analysis, abstract interpretation (domains, soundness, precision, fixed points)
- frameworks: Valgrind, FastTrack, EventRacer, Apron, PPL

* Statistical program reasoning:
- concepts: combining analysis with statistical models (e.g. Language models, Bayesian networks, Neural networks, etc)
- frameworks: Slang, JSNice (http://jsnice.org)

* Predicate abstraction:
- concepts: Graf-Saidi, Boolean programs, lazy abstraction
- frameworks: Microsoft's SLAM for C programs, Fender

* Symbolic execution:
- concepts: SMT, concolic execution
- frameworks: S2E, KLEE, Sage

* Security Analysis:
- concepts: static + dynamic combination
- example: malware detection

* Pointer analysis:
- concepts: Andersen's, Steensgaard's analysis
- frameworks: Soot, LLVM, WALA

* Program synthesis:
- concepts: L*, version spaces, PBE, CEGIS
- frameworks: Sketch, AGS, SmartEdit, ReSynth

* Applications of Analysis & Synthesis:
- GPU programs, security errors, device drivers, concurrent algorithms, end-user programming.

To gain a deeper understanding of how to apply these techniques in practice, the course will involve a small hands-on programming project where based on the principles introduced in class, the students will build a program reasoning engine (e.g. analysis, predictions) for a modern programming language.
Lecture notesThe lectures notes will be distributed in class.
LiteratureDistributed in class.
Prerequisites / NoticeThis course is aimed at both graduate (M.Sc., PhD) students as well as advanced undergraduate students.
263-3700-00LUser Interface Engineering Information
Does not take place this semester.
The course will be offered again in the spring semester 2015.
W4 credits2V + 1UO. Hilliges
AbstractAn in-depth introduction to the core concepts of user interface engineering such as input/output devices and algorithms to process human input into computing systems, principles of human perception and cognition. Current topics in UI design, in particular post-desktop interaction, mobile device interaction, augmented and mixed reality, and advanced sensor and output technologies.
ObjectiveStudents will learn about various methods to design, implement and evaluate human-computer interfaces. They will learn about the methodological differences and will learn how to choose appropriate techniques in different contexts. A fundamental understanding of human centered system design will be acquired. A particular focus is put on developing an understanding of underlying, fundamental technologies for input and output of data. Furthermore students will learn algorithms to process and interpret human input into modern computing systems.

Of particular interest will be emerging input technologies to detect touch input and input techniques and devices for mixed and augmented reality systems as well as for gestural interaction. At the end of the course students should be able to understand and apply advanced hardware and software technologies to sense and interpret user input. Students will be able to develop systems that incorporate non-standard and emerging sensor and display technologies.
ContentUser Interface Engineering covers theoretical and practical aspects relating to the design and implementation of graphical user interfaces for the traditional desktop computer and modern non-standard computing devices. This includes a thorough understanding of user interface software tools, such as windowing systems, toolkits, and user interface development environments. A particular area of interest are user interface software and technologies for advanced non-desktop user interfaces, including UIs for mobile devices but also Augmented Reality UIs, gesture and speech based user interfaces.

The course covers methodologies for human centered design of interactive systems, their implementation and evaluation. Furthermore the course introduces students to fundamental aspects of hardware for user input and output as well as important algorithms and techniques to process low-level sensor data, make sense out of noisy data and to interpret human input into computing systems.

Specific topics include:

* Fundamentals of Human-Computer Interaction and brief overview of human perception.
* Introduction to task analysis and functional design of the user interface.
* Basic principles of computer graphics used in UI implementation.
* Interaction techniques, styles and metaphors; overview of the design space.
* Input and output devices, sensing technologies (capacitive, resistive, force sensing etc).
* Practical aspects of camera based user input, including image processing and computer vision algorithms.
* Algorithms to interpret and resolve ambiguities in noisy sensor data and to extract high-level user intent.
* Techniques and algorithms for gesture recognition.
* Tools and techniques for the design, implementation and analysis of interactive systems.
Lecture notesSlides and other materials will be available online. Lecture slides on a particular topic will typically not be made available prior the completion of that lecture.
LiteratureA detailed reading list will be made available online.
Prerequisites / NoticePrerequisites: proficiency in a programming language such as C, programming methodology and style, problem analysis, program structure, algorithm analysis, data abstraction, and dynamic data. Normally met through an introductory course in programming in C, C++, Java.

The courses on "Human Computer Interaction" and "Visual Computing" are recommended but not required.

The course will be assessed by a 2 hour written examination in English. No course materials or electronic devices can be used during the examination. Note that the examination will be based on the contents of the lectures, the associated reading materials and the exercises.
  • First page Previous page Page  2  of  2     All