Malte Schwerhoff: Katalogdaten im Herbstsemester 2022 |
Name | Herr Dr. Malte Schwerhoff |
Adresse | Dep. Informatik ETH Zürich, CAB H 31.2 Universitätstrasse 6 8092 Zürich SWITZERLAND |
Telefon | +41 44 632 21 08 |
malte.schwerhoff@inf.ethz.ch | |
Departement | Informatik |
Beziehung | Dozent |
Nummer | Titel | ECTS | Umfang | Dozierende | |
---|---|---|---|---|---|
252-0232-AAL | Software Engineering Belegung ist NUR erlaubt für MSc Studierende, die diese Lerneinheit als Auflagenfach verfügt haben. Alle anderen Studierenden (u.a. auch Mobilitätsstudierende, Doktorierende) können diese Lerneinheit NICHT belegen. | 6 KP | 13R | F. Friedrich Wicker, M. Schwerhoff | |
Kurzbeschreibung | This course introduces both theoretical and applied aspects of software engineering. It covers: - Software Architecture - Informal and formal Modeling - Design Patterns - Software Engineering Principles - Code Refactoring - Program Testing | ||||
Lernziel | The course has two main objectives: - Obtain an end-to-end (both, theoretical and practical) understanding of the core techniques used for building quality software. - Be able to apply these techniques in practice. | ||||
Inhalt | While the lecture will provide the theoretical foundations for the various aspects of software engineering, the students will apply those techniques in project work that will span over the whole semester - involving all aspects of software engineering, from understanding requirements over design and implementation to deployment and change requests. | ||||
Literatur | Will be announced in the lecture | ||||
252-0836-00L | Informatik II | 4 KP | 2V + 2U | M. Schwerhoff, 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 | ||||
252-0864-00L | Engineering Tool: Parallel and Concurrent Programming in C++ Die Ingenieur-Tool-Kurse sind ausschliesslich für MAVT-Bachelor-Studierende. | 0.4 KP | 1K | M. Schwerhoff | |
Kurzbeschreibung | This course provides an introduction to parallel and concurrent programming, using C++. Basic challenges and concepts will be introduced and illustrated, and applied by students in small projects. | ||||
Lernziel | Students develop a basic understanding of the advantages and pitfalls of concurrency, and gain an overview of the field and its concepts. They learn how to solve small problems using concurrent programs. | ||||
Voraussetzungen / Besonderes | The course can only be passed if the projects are successfully implemented and submitted. If no or insufficient solutions are submitted, the course is considered failed. | ||||
252-0865-00L | Vorkurs Informatik | 1 KP | 1P | M. Schwerhoff | |
Kurzbeschreibung | Die Veranstaltung bietet eine Einführung in die Grundlagen der Programmierung mit C++. Es wird keine Programmiererfahrung vorausgesetzt. | ||||
Lernziel | Verständnisaufbau für grundlegende Konzepte der imperativen Programmierung sowie für das systematische Herangehen an Programmierprobleme. Studierende können einfache C++-Programme lesen und schreiben. | ||||
Inhalt | Diese Veranstaltung führt Sie in die Grundlagen des Programmierens mit C++ ein. Programmieren bedeutet, einem Computer eine Abfolge von Befehlen zu erteilen, deren Abarbeitung ein bestimmtes Problem löst. Der Kurs setzt sich wie folgt zusammen: - Allgemeine Einführung in die Informatik: Entwicklung, Ziele, elementare Konzepte - Interaktives Tutorial zum Selbststudium als Einführung in C++: behandelt werden Variablen, Datentypen, Verzweigungen und Schleifen - Einführung in das systematische Lösen von Programmierproblemen mittels schrittweiser Verfeinerung - Zwei kleine Programmierprojekte: praktische Anwendung der gelernten Grundlagen | ||||
Skript | Das Lernmaterial ist vollständig online verfüg- und nutzbar; die Programmierprojekte werden in einer Online-Entwicklungsumgebung umgesetzt. |