Markus Püschel: Catalogue data in Autumn Semester 2017

Name Prof. Dr. Markus Püschel
Field Computer Science
Institut für Computersysteme
ETH Zürich, CAB H 69.3
Universitätstrasse 6
8092 Zürich
Telephone +41 44 632 73 03
Department Computer Science
Relationship Full Professor

Number Title ECTS Hours Lecturers
252-0026-00L Algorithms and Data Structures Information 7 credits 3V + 2U + 1A P. Widmayer, M. Püschel, D. Steurer
Abstract This course is about fundamental algorithm design paradigms, classic algorithmic problems, and data structures. The connection between algorithms and data structures is explained for geometric and graph problems. For this purpose, fundamental graph theoretic concepts are introduced.
Objective An understanding of the design and analysis of fundamental algorithms and data structures.
Content Es werden grundlegende Algorithmen und Datenstrukturen vorgestellt und analysiert. Dazu gehören auf der einen Seite Entwurfsmuster für Algorithmen, wie Induktion, divide-and-conquer, backtracking und dynamische Optimierung, ebenso wie klassische algorithmische Probleme, wie Suchen und Sortieren. Auf der anderen Seite werden Datenstrukturen für verschiedene Zwecke behandelt, darunter verkettete Listen, Hashtabellen, balancierte Suchbäume, verschiedene heaps und union-find-Strukturen. Weiterhin wird Adaptivität bei Datenstrukturen (wie etwa Splay-Bäume) und bei Algorithmen (wie etwa online-Algorithmen) beleuchtet. Das Zusammenspiel von Algorithmen und Datenstrukturen wird anhand von Geometrie- und Graphenproblemen illustriert. Hierfür werden grundlegende Konzepte der Graphentheorie eingeführt.
Literature Th. Ottmann, P.Widmayer: Algorithmen und Datenstrukturen, Spektrum-Verlag, 5. Auflage, Heidelberg, Berlin, Oxford, 2011
252-2600-05L Software Engineering Seminar Information
Number of participants limited to 22.
2 credits 2S M. Püschel
Abstract The course is an introduction to research in software engineering, based on reading and presenting high quality research papers in the field. The instructor may choose a variety of topics or one topic that is explored through several papers.
Objective The main goals of this seminar are 1) learning how to read and understand a recent research paper in computer science; and 2) learning how to present a technical topic in computer science to an audience of peers.
Content The technical content of this course falls into the general area of software engineering but will vary from semester to semester.
263-2100-00L Research Topics in Software Engineering Information
Number of participants limited to 22.
2 credits 2S P. Müller, T. Gross, M. Püschel, M. Vechev
Abstract 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.
Objective 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).
Content 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.
Literature The publications to be presented will be announced on the seminar home page at least one week before the first session.
Prerequisites / Notice Organizational note: the seminar will meet only when there is a scheduled presentation. Please consult the seminar's home page for information.
263-2800-00L Design of Parallel and High-Performance Computing Information 7 credits 3V + 2U + 1A T. Hoefler, M. Püschel
Abstract Advanced topics in parallel / concurrent programming.
Objective 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-2900-00L How To Give Strong Technical Presentations Information
Does not take place this semester.
0 credits M. Püschel
Objective Wherever possible I illustrate by example and present the material in a way to make it immediately applicable. The goal is to provide the knowledge that enables the participants, whether beginner or experienced presenter, to further improve their presentation skills and hence their impact whenever they step in front of an audience.
Content This course covers all aspects of delivering strong presentations. I explain common mistakes, what works and what does not, and why. Then I discuss structure and content as well as a set of fundamental principles from graphic design that make slides communicate effectively. These principles also apply to the presentation and visualization of data which is covered in some detail. Finally, I give some useful tips on the use of Powerpoint that simplify the creation of strong presentations.