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

Dennis Komm: Catalogue data in Spring Semester 2019

Name Dr. Dennis Komm
Inform.technologie und Ausbildung
ETH Zürich, CAB F 13.1
Universitätstrasse 6
8092 Zürich
Telephone+41 44 632 82 23
DepartmentComputer Science

252-0842-00LIntroduction to Programming and Problem Solving Information Restricted registration - show details
Number of participants limited to 40.
3 credits2V + 0.5UD. Komm
AbstractIntroduction to programming in Java and to problem solving using standard algorithms and data structures.
ObjectiveThe goals of this lecture are first, to become familiar with the programming language Java, and second, to be able to solve given problems of the student's subject area (for example data processing) with their own programs.

The students should know standard algorithms and data structures, they should know how to use them and also what properties the algorithms and data structures have. The goal is, that students are able to make a reasonable choice of algorithms and data structures for a given problem and that they can implement their own program to solve the given problem.

The students will work on an own project during the lecture. They will need to present the project during the last lecture.
ContentThe following topics will be covered:
- Programming concepts vs. programming languages
- Introduction to Java
- Arrays
- Methods and parameters
- Classes, types and objects
- I/O, using the keyboard and the screen, reading and writing files
- Exceptions
- Lambda Expressions and the Stream API
- Data structures
- Introduction to GUI programming
Lecture notesLecture website:
Prerequisites / NoticeAttention: This is a block-course that takes place only during the first seven weeks of the semester. These seven weeks are very intensive as the graded projekt is also being implemented during this time.

- Application of software tools (252-0839-00)
- Application Oriented Programming Using Python (252-0840-01)
272-0302-00LApproximation and Online Algorithms Information 4 credits2V + 1UH.‑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