Ralf Sasse: Katalogdaten im Herbstsemester 2024 |
Name | Herr Dr. Ralf Sasse |
Adresse | Lehre D-INFK ETH Zürich, CAB H 33.2 Universitätstrasse 6 8092 Zürich SWITZERLAND |
Telefon | +41 44 632 53 89 |
ralf.sasse@inf.ethz.ch | |
Departement | Informatik |
Beziehung | Dozent |
Nummer | Titel | ECTS | Umfang | Dozierende | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
252-0832-00L | Informatik I ![]() | 4 KP | 2V + 2U | C. Cotrini Jimenez, R. Sasse | ||||||||||||||||||||||||||||||||
Kurzbeschreibung | Die Vorlesung bietet eine Einführung in das Programmieren mit einem Fokus auf systematischem algorithmischem Problemlösen. Lehrsprache ist C++. Es wird keine Programmiererfahrung vorausgesetzt. | |||||||||||||||||||||||||||||||||||
Lernziel | Primäres Lernziel der Vorlesung ist die Befähigung zum Programmieren mit C++. Studenten beherrschen nach erfolgreichem Abschluss der Vorlesung die Mechanismen zum Erstellen eines Programms, sie kennen die fundamentalen Kontrollstrukturen, Datenstrukturen und verstehen, wie man ein algorithmisches Problem in ein Programm abbildet. Sie haben eine Vorstellung davon, was "hinter den Kulissen" passiert, wenn ein Programm übersetzt und ausgeführt wird. Sekundäre Lernziele der Vorlesung sind das Computer-basierte, algorithmische Denken, Verständnis der Möglichkeiten und der Grenzen der Programmierung und die Vermittlung der Denkart eines Computerwissenschaftlers. | |||||||||||||||||||||||||||||||||||
Inhalt | Wir behandeln fundamentale Datentypen, Ausdrücke und Anweisungen, (Grenzen der) Computerarithmetik, Kontrollanweisungen, Funktionen, Felder, zusammengesetzte Strukturen und Zeiger. Im Teil zur Objektorientierung werden Klassen, Vererbung und Polymorphie behandelt, es werden exemplarisch einfache dynamische Datentypen eingeführt. Die Konzepte der Vorlesung werden jeweils durch Algorithmen und Anwendungen motiviert und illustriert. | |||||||||||||||||||||||||||||||||||
Skript | Vorlesungsfolien und weiteres Material wird auf der Vorlesungshomepage zum Herunterladen bereitgestellt. | |||||||||||||||||||||||||||||||||||
Literatur | Bjarne Stroustrup: Einführung in die Programmierung mit C++, Pearson Studium, 2010 Stephen Prata: C++ Primer Plus, Sixth Edition, Addison Wesley, 2012 Andrew Koenig and Barbara E. Moo: Accelerated C++, Addison-Wesley, 2000. | |||||||||||||||||||||||||||||||||||
Kompetenzen![]() |
| |||||||||||||||||||||||||||||||||||
252-0836-00L | Informatik II ![]() | 4 KP | 2V + 2U | R. Sasse, F. Friedrich Wicker | ||||||||||||||||||||||||||||||||
Kurzbeschreibung | Der Kurs behandelt die Grundlagen des Entwurfs und der Analyse von Algorithmen und Datenstrukturen, einschliesslich Graphentheorie und -problemen. Er bietet eine Einführung in generisches, sowie paralleles, Programmieren. | |||||||||||||||||||||||||||||||||||
Lernziel | Verständnis des Entwurfs, der Analyse und der Implementation fundamentaler Algorithmen und Datenstrukturen. Überblick über die Konzepte des generischen und parallelen Programmierens. Erfahrung bei der praktischen Umsetzung all dessen in C++. | |||||||||||||||||||||||||||||||||||
Inhalt | * Asymptotische Laufzeit (algorithmische Komplexität) * Fundamentale algorithmische Probleme, z.B. Suchen, Sortieren, kürzeste Wege, Spannbäume * Klassische Datenstrukturen, z.B. Suchbäume, balancierte Bäume, Heaps, Hashtabellen * Graphentheorie und -probleme * Problemlösungsstrategien als Entwurfsmuster für Algorithmen, z.B. Induktion, Divide-and-Conquer, Backtracking, dynamische Programmierung * Generisches Programmieren: C++-Templates, Funktionen höherer Ordnung, Lambdas, Closures * Paralleles Programmieren: (Un)abhängigkeit von Berechnungen, Parallelität und Nebenläufigkeit, geteilter Speicher, Wettlaufsituationen, wechselseitiger Ausschluss, Kommunikation und Synchronisation Im Übungsbetrieb wird das Verständnis durch theoretische und/oder Programmieraufgaben (C++, Code Expert) vertieft. | |||||||||||||||||||||||||||||||||||
Skript | Das gesamte Material (Folien, Vorlesungsaufzeichnungen, Beispiele, Übungen, etc.) wird auf der Kurswebseite bzw. auf Code Expert veröffentlicht. | |||||||||||||||||||||||||||||||||||
Literatur | * T. Ottmann, P. Widmayer: Algorithmen und Datenstrukturen, Spektrum-Verlag, 5. Auflage, Heidelberg, Berlin, Oxford, 2011 * T. H. Cormen, C. E. Leiserson, R. Rivest, C. Stein: Algorithmen - Eine Einführung, Oldenbourg, 2010 * B. Stroustrup, The C++ Programming Language, 4th Edition, Addison-Wesley, 2013. * B. Stroustrup, A Tour of C++, 3rd Edition, Addison-Wesley, 2022 | |||||||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Voraussetzungen: Informatik I | |||||||||||||||||||||||||||||||||||
Kompetenzen![]() |
| |||||||||||||||||||||||||||||||||||
252-0856-AAL | Computer Science ![]() Belegung ist NUR erlaubt für MSc Studierende, die diese Lerneinheit als Auflagenfach verfügt haben. Alle andere Studierenden (u.a. auch Mobilitätsstudierende, Doktorierende) können diese Lerneinheit NICHT belegen. | 4 KP | 9R | F. Friedrich Wicker, R. Sasse | ||||||||||||||||||||||||||||||||
Kurzbeschreibung | Die Vorlesung bietet eine Einführung in das Programmieren mit einem Fokus auf systematischem algorithmischem Problemlösen. Lehrsprache ist C++. Es wird keine Programmiererfahrung vorausgesetzt. | |||||||||||||||||||||||||||||||||||
Lernziel | Primäres Lernziel der Vorlesung ist die Befähigung zum Programmieren mit C++. Studenten beherrschen nach erfolgreichem Abschluss der Vorlesung die Mechanismen zum Erstellen eines Programms, sie kennen die fundamentalen Kontrollstrukturen, Datenstrukturen und verstehen, wie man ein algorithmisches Problem in ein Programm abbildet. Sie haben eine Vorstellung davon, was "hinter den Kulissen" passiert, wenn ein Programm übersetzt und ausgeführt wird. Sekundäre Lernziele der Vorlesung sind das Computer-basierte, algorithmische Denken, Verständnis der Möglichkeiten und der Grenzen der Programmierung und die Vermittlung der Denkart eines Computerwissenschaftlers. | |||||||||||||||||||||||||||||||||||
Inhalt | Wir behandeln fundamentale Datentypen, Ausdrücke und Anweisungen, (Grenzen der) Computerarithmetik, Kontrollanweisungen, Funktionen, Felder, zusammengesetze Strukturen und Zeiger. Im Teil zur Objektorientierung werden Klassen, Vererbung und Polymorhpie behandelt, es werden exemplarisch einfache dynamische Datentypen eingeführt. Die Konzepte der Vorlesung werden jeweils durch Algorithmen und Anwendungen motiviert und illustriert. | |||||||||||||||||||||||||||||||||||
Skript | Vorlesungsfolien und weiteres Material wird auf der Vorlesungshomepage zum Herunterladen bereitgestellt. | |||||||||||||||||||||||||||||||||||
Literatur | Bjarne Stroustrup: Einführung in die Programmierung mit C++, Pearson Studium, 2010 Stephen Prata: C++ Primer Plus, Sixth Edition, Addison Wesley, 2012 Andrew Koenig and Barbara E. Moo: Accelerated C++, Addison-Wesley, 2000. | |||||||||||||||||||||||||||||||||||
Kompetenzen![]() |
| |||||||||||||||||||||||||||||||||||
252-0856-00L | Informatik ![]() | 6 KP | 2V + 2U + 2P | F. Friedrich Wicker, R. Sasse | ||||||||||||||||||||||||||||||||
Kurzbeschreibung | Die Vorlesung bietet eine Einführung in das Programmieren mit einem Fokus auf systematischem algorithmischem Problemlösen. Lehrsprache ist C++. Es wird keine Programmiererfahrung vorausgesetzt. | |||||||||||||||||||||||||||||||||||
Lernziel | Primäres Lernziel der Vorlesung ist die Befähigung zum Programmieren mit C++. Studenten beherrschen nach erfolgreichem Abschluss der Vorlesung die Mechanismen zum Erstellen eines Programms, sie kennen die fundamentalen Kontrollstrukturen, Datenstrukturen und verstehen, wie man ein algorithmisches Problem in ein Programm abbildet. Sie haben eine Vorstellung davon, was "hinter den Kulissen" passiert, wenn ein Programm übersetzt und ausgeführt wird. Sekundäre Lernziele der Vorlesung sind das Computer-basierte, algorithmische Denken, Verständnis der Möglichkeiten und der Grenzen der Programmierung und die Vermittlung der Denkart eines Computerwissenschaftlers. | |||||||||||||||||||||||||||||||||||
Inhalt | Wir behandeln fundamentale Datentypen, Ausdrücke und Anweisungen, (Grenzen der) Computerarithmetik, Kontrollanweisungen, Funktionen, Felder, zusammengesetze Strukturen und Zeiger. Im Teil zur Objektorientierung werden Klassen, Vererbung und Polymorhpie behandelt, es werden exemplarisch einfache dynamische Datentypen eingeführt. Die Konzepte der Vorlesung werden jeweils durch Algorithmen und Anwendungen motiviert und illustriert. | |||||||||||||||||||||||||||||||||||
Skript | Vorlesungsfolien und weiteres Material wird auf der Vorlesungshomepage zum Herunterladen bereitgestellt. | |||||||||||||||||||||||||||||||||||
Literatur | Bjarne Stroustrup: Einführung in die Programmierung mit C++, Pearson Studium, 2010 Stephen Prata: C++ Primer Plus, Sixth Edition, Addison Wesley, 2012 Andrew Koenig and Barbara E. Moo: Accelerated C++, Addison-Wesley, 2000. | |||||||||||||||||||||||||||||||||||
Kompetenzen![]() |
|