Dennis Komm: Catalogue data in Spring Semester 2023 |
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 | 3 credits | 2V + 1U | D. Komm, M. Dahinden, M. Fischer | |||||||||||||||||||||||||||||||||||
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: https://moodle-app2.let.ethz.ch/course/view.php?id=19344 | ||||||||||||||||||||||||||||||||||||||
Literature | The slides will be available for download on the course website. | ||||||||||||||||||||||||||||||||||||||
Prerequisites / Notice | Recommendation: - Foundations of Computer Science (252-0852-00) - Application Oriented Programming Using Python (252-0840-01) | ||||||||||||||||||||||||||||||||||||||
Competencies |
| ||||||||||||||||||||||||||||||||||||||
252-4225-00L | Presenting Theoretical Computer Science The deadline for deregistering expires at the end of the second week of the semester. Students who are still registered after that date, but do not attend the seminar, will officially fail the seminar. | 2 credits | 2S | B. Gärtner, D. Komm, R. Kyng, A. Steger, D. Steurer, E. Welzl | |||||||||||||||||||||||||||||||||||
Abstract | Students present current or classical results from theoretical computer science. | ||||||||||||||||||||||||||||||||||||||
Learning objective | Students learn to read, understand and present results from theoretical computer science. The main focus and deliverable is a good presentation of 45 minutes that can easily be followed and understood by the audience. | ||||||||||||||||||||||||||||||||||||||
Content | Students present current or classical results from theoretical computer science. | ||||||||||||||||||||||||||||||||||||||
Prerequisites / Notice | The seminar takes place as a block seminar on two Saturdays in April and/or May. Each presentation is jointly prepared and given by two students (procedure according to the seminar's Moodle page). All students must attend all presentations. Participation requires successful completion of the first year, or instructor approval. | ||||||||||||||||||||||||||||||||||||||
272-0102-00L | Subject Didactics of Computer Science II Prerequisite: Subject Didactics of Computer Science I | 4 credits | 3G | J. Hromkovic, D. Komm, G. Serafini | |||||||||||||||||||||||||||||||||||
Abstract | This course deals primarily with didactic aspects of computer science and its key contributions to general education nurturing the youths' development of a unique and indispensable way of thinking while at the same time leading to their understanding of our world and to higher education entrance qualifications. | ||||||||||||||||||||||||||||||||||||||
Learning objective | This course deals primarily with didactic aspects of computer science and its key contributions to general education nurturing the youths' development of a unique and indispensable way of thinking while at the same time leading to their understanding of our world and to higher education entrance qualifications. Subject Didactics in Computer Science II deals with the adequate choice of educational content for computer science, taking in account its comprehensibility for different age groups and the didactic methods suitable for a succesful knowledge transfer. Within the scope of a semester exercise the students develop and document an adaptive teaching unit for computer science. They improve their practical knowledge of the teaching methods and techniques introduced in Subject Didactics in Computer Science I. The aim of the course is to combine the mathematical and algorithmic way of thinking with the approaches adopted by engineering disciplines. The students understand the basic concepts of computer science in the context of a broad and deep knowledge. Through this understanding, they manage to prepare teaching materials for a successful knowledge transfer and to pass their passion for the subject on to their pupils. The students know various teaching methods including their advantages and disadvantages. They can handle unequal levels of the learners' prior knowledge. Besides of holding classes the students do care about the individual pupil support. They encourage the autonomy of the learners. They manage to work with diverse target groups and to establish a positive climate for learning. The students are able to express themselves using a comprehensible and refined professional language, both spoken and written, and they master the basic terms of computer science. Besides of the English terminology they are familiar with the german expressions. The students are able to produce detailed, matured, linguistically correct and design-wise appealing teaching materials. | ||||||||||||||||||||||||||||||||||||||
Content | The main themes of Subject Didactics of Computer Science II are Cryptology and Computability. The unit focuses on the content of computer science that conveys general educational values. this aims at the understanding of basic concepts of the science, such as - Algorithm - Complexity - Determinism - Nondeterminism - Probability - Computation | ||||||||||||||||||||||||||||||||||||||
Lecture notes | Unterlagen und Folien werden zur Verfügung gestellt. | ||||||||||||||||||||||||||||||||||||||
Literature | J. Hromkovic: Sieben Wunder der Informatik: Eine Reise an die Grenze des Machbaren, mit Aufgaben und Lösungen. Vieweg+Teubner; Auflage: 2 (2008). K. Freiermuth, J. Hromkovic, L. Keller und B. Steffen: Einfuehrung in die Kryptologie: Lehrbuch für Unterricht und Selbststudium. Springer Vieweg; Auflage: 2 (2014). J. Hromkovic: Berechenbarkeit: Logik, Argumentation, Rechner und Assembler, Unendlichkeit, Grenzen der Automatisierbarkeit. Vieweg+Teubner; Auflage: 1 (2011). H.-J. Böckenhauer, J. Hromkovic: Formale Sprachen: Endliche Automaten, Grammatiken, lexikalische und syntaktische Analyse. Springer Vieweg; Auflage: 1 (Januar 2013). | ||||||||||||||||||||||||||||||||||||||
Prerequisites / Notice | Bewilligung der Dozierenden für alle Studierenden notwendig | ||||||||||||||||||||||||||||||||||||||
272-0300-00L | Algorithmics for Hard Problems This course d o e s n o t include the Mentored Work Specialised Courses with an Educational Focus in Computer Science A. | 5 credits | 2V + 1U + 1A | H.‑J. Böckenhauer, D. Komm | |||||||||||||||||||||||||||||||||||
Abstract | This course unit looks into algorithmic approaches to the solving of hard problems, particularly with moderately exponential-time algorithms and parameterized algorithms. The seminar is accompanied by a comprehensive reflection upon the significance of the approaches presented for computer science tuition at high schools. | ||||||||||||||||||||||||||||||||||||||
Learning objective | To systematically acquire an overview of the methods for solving hard problems. To get deeper knowledge of exact and parameterized algorithms. | ||||||||||||||||||||||||||||||||||||||
Content | First, the concept of hardness of computation is introduced (repeated for the computer science students). Then some methods for solving hard problems are treated in a systematic way. For each algorithm design method, it is discussed what guarantees it can give and how we pay for the improved efficiency. A special focus lies on moderately exponential-time algorithms and parameterized algorithms. | ||||||||||||||||||||||||||||||||||||||
Lecture notes | Unterlagen und Folien werden zur Verfügung gestellt. | ||||||||||||||||||||||||||||||||||||||
Literature | J. Hromkovic: Algorithmics for Hard Problems, Springer 2004. R. Niedermeier: Invitation to Fixed-Parameter Algorithms, 2006. M. Cygan et al.: Parameterized Algorithms, 2015. F. Fomin et al.: Kernelization, 2019. F. Fomin, D. Kratsch: Exact Exponential Algorithms, 2010. | ||||||||||||||||||||||||||||||||||||||
Competencies |
| ||||||||||||||||||||||||||||||||||||||
272-0302-00L | Approximation and Online Algorithms Does not take place this semester. | 5 credits | 2V + 1U + 1A | 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 | ||||||||||||||||||||||||||||||||||||||
Competencies |
|