Ralf Sasse: Katalogdaten im Herbstsemester 2024

NameHerr 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
E-Mailralf.sasse@inf.ethz.ch
DepartementInformatik
BeziehungDozent

NummerTitelECTSUmfangDozierende
252-0832-00LInformatik I Information 4 KP2V + 2UC. Cotrini Jimenez, R. Sasse
KurzbeschreibungDie Vorlesung bietet eine Einführung in das Programmieren mit einem Fokus auf systematischem algorithmischem Problemlösen. Lehrsprache ist C++. Es wird keine Programmiererfahrung vorausgesetzt.
LernzielPrimä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.
InhaltWir 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.
SkriptVorlesungsfolien und weiteres Material wird auf der Vorlesungshomepage zum Herunterladen bereitgestellt.
LiteraturBjarne 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.
KompetenzenKompetenzen
Fachspezifische KompetenzenKonzepte und Theoriengeprüft
Verfahren und Technologiengeprüft
Methodenspezifische KompetenzenAnalytische Kompetenzengeprüft
Medien und digitale Technologiengeprüft
Problemlösunggeprüft
252-0836-00LInformatik II Information 4 KP2V + 2UR. Sasse, F. Friedrich Wicker
KurzbeschreibungDer 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.
LernzielVerstä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.
SkriptDas 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 / BesonderesVoraussetzungen: Informatik I
KompetenzenKompetenzen
Fachspezifische KompetenzenKonzepte und Theoriengeprüft
Verfahren und Technologiengeprüft
Methodenspezifische KompetenzenAnalytische Kompetenzengeprüft
Entscheidungsfindunggefördert
Medien und digitale Technologiengeprüft
Problemlösunggeprüft
Soziale KompetenzenKommunikationgefördert
Kooperation und Teamarbeitgefördert
Persönliche KompetenzenKreatives Denkengefördert
Kritisches Denkengefördert
252-0856-AALComputer Science Information
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 KP9RF. Friedrich Wicker, R. Sasse
KurzbeschreibungDie Vorlesung bietet eine Einführung in das Programmieren mit einem Fokus auf systematischem algorithmischem Problemlösen. Lehrsprache ist C++. Es wird keine Programmiererfahrung vorausgesetzt.
LernzielPrimä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.
InhaltWir 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.
SkriptVorlesungsfolien und weiteres Material wird auf der Vorlesungshomepage zum Herunterladen bereitgestellt.
LiteraturBjarne 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.
KompetenzenKompetenzen
Fachspezifische KompetenzenKonzepte und Theoriengeprüft
Verfahren und Technologiengeprüft
Methodenspezifische KompetenzenAnalytische Kompetenzengeprüft
Entscheidungsfindunggefördert
Medien und digitale Technologiengeprüft
Problemlösunggeprüft
Soziale KompetenzenKommunikationgefördert
Kooperation und Teamarbeitgefördert
Persönliche KompetenzenKreatives Denkengefördert
Kritisches Denkengefördert
252-0856-00LInformatik Information 6 KP2V + 2U + 2PF. Friedrich Wicker, R. Sasse
KurzbeschreibungDie Vorlesung bietet eine Einführung in das Programmieren mit einem Fokus auf systematischem algorithmischem Problemlösen. Lehrsprache ist C++. Es wird keine Programmiererfahrung vorausgesetzt.
LernzielPrimä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.
InhaltWir 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.
SkriptVorlesungsfolien und weiteres Material wird auf der Vorlesungshomepage zum Herunterladen bereitgestellt.
LiteraturBjarne 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.
KompetenzenKompetenzen
Fachspezifische KompetenzenKonzepte und Theoriengeprüft
Verfahren und Technologiengeprüft
Methodenspezifische KompetenzenAnalytische Kompetenzengeprüft
Medien und digitale Technologiengeprüft
Problemlösunggeprüft
Soziale KompetenzenKommunikationgefördert
Kooperation und Teamarbeitgefördert
Persönliche KompetenzenKreatives Denkengefördert
Kritisches Denkengefördert