# Search result: Catalogue data in Autumn Semester 2019

CAS in Computer Science | ||||||

Focus Courses and Electives | ||||||

Number | Title | Type | ECTS | Hours | Lecturers | |
---|---|---|---|---|---|---|

263-4500-00L | Advanced Algorithms | W | 6 credits | 2V + 2U + 1A | M. Ghaffari, A. Krause | |

Abstract | 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. | |||||

Objective | 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. | |||||

Content | 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. | |||||

Lecture notes | Link | |||||

Prerequisites / Notice | This course is designed for masters and doctoral students and it especially targets those interested in theoretical computer science, but it should also be accessible to last-year bachelor students. Sufficient comfort with both (A) Algorithm Design & Analysis and (B) Probability & Concentrations. E.g., having passed the course Algorithms, Probability, and Computing (APC) is highly recommended, though not required formally. If you are not sure whether you're ready for this class or not, please consult the instructor. | |||||

263-4640-00L | Network Security | W | 7 credits | 2V + 2U + 2A | A. Perrig, S. Frei | |

Abstract | 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. | |||||

Objective | - 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. | |||||

Content | 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. | |||||

Prerequisites / Notice | This lecture is intended for students with an interest in securing Internet communication services and network devices. Students are assumed to have knowledge in networking as taught in a Communication Networks lecture. The course will involve a course project and some smaller programming projects as part of the homework. Students are expected to have basic knowledge in network programming in a programming language such as C/C++, Go, or Python. | |||||

263-5210-00L | Probabilistic Artificial Intelligence | W | 5 credits | 2V + 1U + 1A | A. Krause | |

Abstract | 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. | |||||

Objective | How can we build systems that perform well in uncertain environments and unforeseen situations? How can we develop systems that exhibit "intelligent" behavior, without prescribing explicit rules? How can we build systems that learn from experience in order to improve their performance? We will study core modeling techniques and algorithms from statistics, optimization, planning, and control and study applications in areas such as sensor networks, robotics, and the Internet. The course is designed for upper-level undergraduate and graduate students. | |||||

Content | 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 | |||||

Prerequisites / Notice | Solid basic knowledge in statistics, algorithms and programming | |||||

263-5701-00L | Visualization | W | 5 credits | 2V + 1U + 1A | T. Günther | |

Abstract | This lecture provides an introduction into visualization of scientific and abstract data. | |||||

Objective | This lecture provides an introduction into the visualization of scientific and abstract data. The lecture introduces into the two main branches of visualization: scientific visualization and information visualization. The focus is set onto scientific data, demonstrating the usefulness and necessity of computer graphics in other fields than the entertainment industry. The exercises contain theoretical tasks on the mathematical foundations such as numerical integration, differential vector calculus, and flow field analysis, while programming exercises familiarize with the Visualization Tool Kit (VTK). In a course project, the learned methods are applied to visualize one real scientific data set. The provided data sets contain measurements of volcanic eruptions, galaxy simulations, fluid simulations, meteorological cloud simulations and asteroid impact simulations. | |||||

Content | 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. | |||||

Prerequisites / Notice | Fundamentals of differential calculus. Knowledge on numerical mathematics, computer algebra systems, as well as ordinary and partial differential equations is an asset, but not required. | |||||

263-5902-00L | Computer Vision | W | 7 credits | 3V + 1U + 2A | M. Pollefeys, V. Ferrari, L. Van Gool | |

Abstract | 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. | |||||

Objective | 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. | |||||

Content | 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 | |||||

Prerequisites / Notice | It is recommended that students have taken the Visual Computing lecture or a similar course introducing basic image processing concepts before taking this course. | |||||

227-0778-00L | Hardware/Software Codesign Does not take place this semester. | W | 6 credits | 2V + 2U | L. Thiele | |

Abstract | The 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. | |||||

Objective | The 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. | |||||

Content | The 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 notes | Material for exercises, copies of transparencies. | |||||

Literature | Peter Marwedel, Embedded System Design, Springer, ISBN-13 978-94-007-0256-1, 2011. Wayne Wolf. Computers as Components. Morgan Kaufmann, ISBN-13: 978-0123884367, 2012. | |||||

Prerequisites / Notice | Prerequisites for the course is a basic knowledge in the following areas: computer architecture, digital design, software design, embedded systems | |||||

636-0007-00L | Computational Systems Biology | W | 6 credits | 3V + 2U | J. Stelling | |

Abstract | 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). | |||||

Objective | 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. | |||||

Content | 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. | |||||

Lecture notes | Link | |||||

Literature | U. Alon, An introduction to systems biology. Chapman & Hall / CRC, 2006. Z. Szallasi et al. (eds.), System modeling in cellular biology. MIT Press, 2010. B. Ingalls, Mathematical modeling in systems biology: an introduction. MIT Press, 2013 | |||||

636-0017-00L | Computational Biology | W | 6 credits | 3G + 2A | T. Vaughan, T. Stadler | |

Abstract | The aim of the course is to provide up-to-date knowledge on how we can study biological processes using genetic sequencing data. Computational algorithms extracting biological information from genetic sequence data are discussed, and statistical tools to understand this information in detail are introduced. | |||||

Objective | Attendees will learn which information is contained in genetic sequencing data and how to extract information from this data using computational tools. The main concepts introduced are: * stochastic models in molecular evolution * phylogenetic & phylodynamic inference * maximum likelihood and Bayesian statistics Attendees will apply these concepts to a number of applications yielding biological insight into: * epidemiology * pathogen evolution * macroevolution of species | |||||

Content | The course consists of four parts. We first introduce modern genetic sequencing technology, and algorithms to obtain sequence alignments from the output of the sequencers. We then present methods for direct alignment analysis using approaches such as BLAST and GWAS. Second, we introduce mechanisms and concepts of molecular evolution, i.e. we discuss how genetic sequences change over time. Third, we employ evolutionary concepts to infer ancestral relationships between organisms based on their genetic sequences, i.e. we discuss methods to infer genealogies and phylogenies. Lastly, we introduce the field of phylodynamics, the aim of which is to understand and quantify population dynamic processes (such as transmission in epidemiology or speciation & extinction in macroevolution) based on a phylogeny. Throughout the class, the models and methods are illustrated on different datasets giving insight into the epidemiology and evolution of a range of infectious diseases (e.g. HIV, HCV, influenza, Ebola). Applications of the methods to the field of macroevolution provide insight into the evolution and ecology of different species clades. Students will be trained in the algorithms and their application both on paper and in silico as part of the exercises. | |||||

Lecture notes | Lecture slides will be available on moodle. | |||||

Literature | The course is not based on any of the textbooks below, but they are excellent choices as accompanying material: * Yang, Z. 2006. Computational Molecular Evolution. * Felsenstein, J. 2004. Inferring Phylogenies. * Semple, C. & Steel, M. 2003. Phylogenetics. * Drummond, A. & Bouckaert, R. 2015. Bayesian evolutionary analysis with BEAST. | |||||

Prerequisites / Notice | Basic knowledge in linear algebra, analysis, and statistics will be helpful. Programming in R will be required for the project work (compulsory continuous performance assessments). We provide an R tutorial and help sessions during the first two weeks of class to learn the required skills. However, in case you do not have any previous experience with R, we strongly recommend to get familiar with R prior to the semester start. For the D-BSSE students, we highly recommend the voluntary course „Introduction to Programming“, which takes place at D-BSSE from Wednesday, September 12 to Friday, September 14, i.e. BEFORE the official semester starting date Link For the Zurich-based students without R experience, we recommend the R course Link, or working through the script provided as part of this R course. | |||||

263-2810-00L | Advanced Compiler Design Does not take place this semester. | W | 7 credits | 3V + 2U + 1A | to be announced | |

Abstract | 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. | |||||

Objective | 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) | |||||

Content | 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. | |||||

Literature | Aho/Lam/Sethi/Ullmann, Compilers - Principles, Techniques, and Tools (2nd Edition). In addition, papers as provided in the class. | |||||

Prerequisites / Notice | 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. |

- Page 2 of 2 All