Dennis Komm: Catalogue data in Spring Semester 2020

Name Prof. Dr. Dennis Komm
FieldAlgorithms and Didactics
Professur Algorithmen und Didaktik
ETH Zürich, CAB F 10.1
Universitätstrasse 6
8092 Zürich
Telephone+41 44 632 82 23
DepartmentComputer Science
RelationshipAssociate Professor

252-0842-00LIntroduction to Programming and Problem Solving Information Restricted registration - show details
Number of participants limited to 80.
3 credits2V + 1UD. Komm
AbstractCore concepts of Computer Science and their implementation in Python.
ObjectiveThe goals of the course are consolidating the knowledge about the programming language Python on the one hand, and learning about core concepts of computer science that are essential in algorithm design on the other hand. The focus is on computational thinking, that is, the ability to solve problems systematically by developing algorithms. Different strategies are introduced, analyzed theoretically, and implemented in Python. The combination of theory and practice is central in this course.
Content- Repetition of basic programming concepts such as variables, lists, control structures, and loops
- Reading in and visualizing data
- Complexity theory
- Sorting and searching
- Dynamic programming
- Recursion
- Graph algorithms
Lecture notesLecture website:
Prerequisites / NoticeRecommendation:
- Foundations of Computer Science (252-0852-00)
- Application Oriented Programming Using Python (252-0840-01)
272-0302-00LApproximation and Online Algorithms Information 5 credits2V + 1U + 1AH.‑J. Böckenhauer, D. Komm
AbstractThis lecture deals with approximative algorithms for hard optimization problems and algorithmic approaches for solving online problems as well as the limits of these approaches.
ObjectiveGet a systematic overview of different methods for designing approximative algorithms for hard optimization problems and online problems. Get to know methods for showing the limitations of these approaches.
ContentApproximation algorithms are one of the most succesful techniques to attack hard optimization problems. Here, we study the so-called approximation ratio, i.e., the ratio of the cost of the computed approximating solution and an optimal one (which is not computable efficiently).
For an online problem, the whole instance is not known in advance, but it arrives pieceweise and for every such piece a corresponding part of the definite output must be given. The quality of an algorithm for such an online problem is measured by the competitive ratio, i.e., the ratio of the cost of the computed solution and the cost of an optimal solution that could be given if the whole input was known in advance.

The contents of this lecture are
- the classification of optimization problems by the reachable approximation ratio,
- systematic methods to design approximation algorithms (e.g., greedy strategies, dynamic programming, linear programming relaxation),
- methods to show non-approximability,
- classic online problem like paging or scheduling problems and corresponding algorithms,
- randomized online algorithms,
- the design and analysis principles for online algorithms, and
- limits of the competitive ratio and the advice complexity as a way to do a deeper analysis of the complexity of online problems.
LiteratureThe lecture is based on the following books:

J. Hromkovic: Algorithmics for Hard Problems, Springer, 2004

D. Komm: An Introduction to Online Computation: Determinism, Randomization, Advice, Springer, 2016

Additional literature:

A. Borodin, R. El-Yaniv: Online Computation and Competitive Analysis, Cambridge University Press, 1998