## Dennis Komm: Catalogue data in Spring Semester 2020 |

Name | Prof. Dr. Dennis Komm |

Field | Algorithms and Didactics |

Address | Professur Algorithmen und Didaktik ETH Zürich, CAB F 10.1 Universitätstrasse 6 8092 Zürich SWITZERLAND |

Telephone | +41 44 632 82 23 |

dennis.komm@inf.ethz.ch | |

URL | https://people.inf.ethz.ch/dkomm/ |

Department | Computer Science |

Relationship | Associate Professor |

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

252-0842-00L | Introduction to Programming and Problem Solving Number of participants limited to 80. | 3 credits | 2V + 1U | D. Komm | |

Abstract | Core concepts of Computer Science and their implementation in Python. | ||||

Learning objective | The 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 notes | Lecture website: http://lec.inf.ethz.ch/ppl | ||||

Prerequisites / Notice | Recommendation: - Foundations of Computer Science (252-0852-00) - Application Oriented Programming Using Python (252-0840-01) | ||||

272-0302-00L | Approximation and Online Algorithms | 5 credits | 2V + 1U + 1A | H.‑J. Böckenhauer, D. Komm | |

Abstract | This lecture deals with approximative algorithms for hard optimization problems and algorithmic approaches for solving online problems as well as the limits of these approaches. | ||||

Learning objective | Get 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. | ||||

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

Literature | The 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 |