Manuela Fischer: Katalogdaten im Frühjahrssemester 2022 |
Name | Frau Dr. Manuela Fischer |
Adresse | Lehre D-INFK ETH Zürich, CAB H 33.1 Universitätstrasse 6 8092 Zürich SWITZERLAND |
Telefon | +41 44 632 74 61 |
manuela.fischer@inf.ethz.ch | |
URL | http://people.inf.ethz.ch/fiscmanu/ |
Departement | Informatik |
Beziehung | Dozentin |
Nummer | Titel | ECTS | Umfang | Dozierende | |
---|---|---|---|---|---|
252-0842-00L | Programmieren und Problemlösen ![]() | 3 KP | 2V + 1U | D. Komm, M. Dahinden, M. Fischer | |
Kurzbeschreibung | Informatikkonzepte und deren Umsetzung in Python. | ||||
Lernziel | Die Ziele der Lehrveranstaltung sind einerseits das Programmieren in Python zu vertiefen und andererseits Informatikkonzepte kennenzulernen, die im Algorithmendesign Anwendung finden. Hierbei liegt der Fokus auf dem algorithmischen Denken, also der Fähigkeit, Probleme systematisch mit Hilfe von entwickelten Algorithmen zu lösen. Es werden verschiedene Strategien für das Problemlösen vorgestellt, theoretisch analysiert und praktisch in Python umgesetzt. Die Verknüpfung von Theorie und Praxis ist in dieser Lehrveranstaltung zentral. | ||||
Inhalt | - Repetition von grundlegenden Programmierkonzepten wie Variablen, Listen, Kontrollstrukturen und Schleifen - Einlesen und darstellen von Daten - Komplexitätstheorie - Sortieren und Suchen - Dynamische Programmierung - Rekursion - Graph-Algorithmen | ||||
Skript | Vorlesungswebseite: http://lec.inf.ethz.ch/ppl | ||||
Literatur | Die ausführlichen Folien werden auf der Vorlesungshomepage zum Herunterladen bereitgestellt. | ||||
Voraussetzungen / Besonderes | Empfehlung: - Grundlagen der Informatik (252-0852-00) - Anwendungsnahes Programmieren mit Python (252-0840-01) | ||||
252-0846-00L | Informatik II ![]() | 4 KP | 2V + 2U | M. Fischer, R. Sasse | |
Kurzbeschreibung | Dieser Kurs behandelt Grundlagen für das Programmieren und Arbeiten mit Daten. Informatik II legt die Grundlage für das Verständnis, den Entwurf und die Analyse von Algorithmen und Datenstrukturen. | ||||
Lernziel | Basierend auf Kenntnissen aus der Vorlesung Informatik I ist das primäre Ziel dieses Kurses das konstruktive Wissen über Datenstrukturen und Algorithmen. Nach erfolgreichem Besuch des Kurses beherrschen die Teilnehmer die Mechanismen zum Erstellen eines Programms in Python und zum Arbeiten mit mehrdimensionalen Daten mithilfe von Python-Bibliotheken. Die Studierenden verstehen insbesondere, wie ein algorithmisches Problem mit einem ausreichend effizienten Computerprogramm gelöst werden kann. Sekundäre Bildungsziele sind formales Denken, die Macht der Abstraktion und Modellierungsfähigkeiten. In dem Fach "Informatik II" wird die Kompetenz Modellierung, Programmieren und Datenanalyse & Interpretation gelehrt, angewandt und geprüft. | ||||
Inhalt | Einführung von Python: von Java zu Python, erweiterte Konzepte und integrierte Datenstrukturen in Python; Analysieren von Daten, Bearbeiten von Daten mit Numpy und Visualisieren mit Matplotlib; mathematische Werkzeuge zur Analyse von Algorithmen (asymptotisches Funktionswachstum, Rekurrenzgleichungen, Rekurrenzbäume); klassische algorithmische Probleme (Suchen, Auswahl und Sortieren), Entwurfsparadigmen für die Entwicklung von Algorithmen (Divide and Conquer und dynamische Programmierung), Datenstrukturen für verschiedene Zwecke (verknüpfte Listen, Bäume, Heaps, Hash-Tabellen). Die Beziehung und enge Kopplung zwischen Algorithmen und Datenstrukturen wird mit Graph-Algorithmen (Traversieren, Topologische Sortierung, Kürzeste Wege, Minimaler Spannbaum, Maximaler Fluss) und geometrischen Algorithmen (Scanline) veranschaulicht. Die im Kurs bereitgestellten Konzepte werden mit praktisch relevanten Algorithmen und Anwendungen motiviert und veranschaulicht. Die in diesem Kurs verwendete Programmiersprache ist Python. Die Übungen werden in Code Expert, einem Online-IDE- und Übungsmanagementsystem, durchgeführt. | ||||
Skript | Die Folien werden auf der Vorlesungswebseite zum Herunterladen bereitgestellt. | ||||
Literatur | Thomas Ottmann, Peter Widmayer, Algorithmen und Datenstrukturen, Springer 2012 T. Cormen, C. Leiserson, R. Rivest, C. Stein, Algorithmen - Eine Einführung, Oldenbourg, 2010 Aditya Y. Bhargava, Algorithmen Kapieren, mitp 2019 | ||||
Voraussetzungen / Besonderes | Voraussetzungen: Kurs 252-0845 Informatik I oder äquivalente Programmierkenntnisse. Alle erforderlichen mathematischen Werkzeuge über Schulniveau werden behandelt, einschließlich einer grundlegenden Einführung in die Graphentheorie. |