Malte Schwerhoff: Katalogdaten im Frühjahrssemester 2020

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

NummerTitelECTSUmfangDozierende
252-0029-00LParallele Programmierung Information 7 KP4V + 2UT. Hoefler, H. Lehner, M. Schwerhoff
KurzbeschreibungEinfuehrung in das parallele Programmieren: nicht-deterministische und deterministische Programme, Modelle fuer parallele Programme, Synchronization, Kommunikation und Fairness.
LernzielEinfuehrung in das parallele Programmieren: nicht-deterministische und deterministische Programme, Modelle fuer parallele Programme, Synchronization, Kommunikation und Fairness. Uebungen beschaeftigen sich mit Threads in moderne Programmiersprachen
(Java, C#) und die Ausfuehrung von parallelen Programmen auf
Multi-Prozessor/Multi-Core basierten Systemen.
252-0216-00LRigorous Software Engineering Information 8 KP4V + 2U + 1AF. Friedrich Wicker, H. Lehner, M. Schwerhoff
KurzbeschreibungThis course introduces both theoretical and applied aspects of software engineering and analysis. It covers:

- Software Architecture
- Informal and formal Modeling
- Design Patterns
- Code Refactoring
- Program Testing
- Dynamic Program Analysis
- Static Program Analysis
LernzielThe course has two main objectives:

- Understand, end-to-end (theoretical and practical), the core techniques for building quality software

- Understand how to apply these techniques in practice
InhaltSome of the core technical topics covered will be:

- modeling and mapping of models to code
- common code design patterns
- functional and structural testing
- dynamic and static analysis
LiteraturWill be announced in the lecture.
252-0832-00LInformatik Information 4 KP2V + 2UH. Lehner, M. Schwerhoff
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.
SkriptEin Skript in englischer Sprache wird semesterbegleitend herausgegeben. Das Skript und die Folien werden 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.
252-0848-00LInformatik I Information 4 KP2V + 2UM. Schwerhoff, H. Lehner
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.
SkriptEin Skript in englischer Sprache wird semesterbegleitend herausgegeben. Das Skript und die Folien werden 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.
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, M. Schwerhoff
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.
SkriptEin Skript in englischer Sprache wird semesterbegleitend herausgegeben. Das Skript und die Folien werden 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.
Voraussetzungen / BesonderesDieser virtuelle Kurs zum Selbststudium wird im Herbstsemester auch als physikalischer Kurs angeboten. Studenten ist empfohlen die Vorlesung und Übungen des physikalischen Kurses 252-0856-00L zu besuchen.
252-0862-00LEngineering Tool: Modelling Information
Die Ingenieur-Tool-Kurse sind ausschliesslich für MAVT-Bachelor-Studierende.
0.4 KP1KM. Schwerhoff
KurzbeschreibungThis course provides an introduction to modelling, i.e. the representation of real-world entities and systems in computer programs. Basic modelling techniques will be introduced and illustrated, and students will apply these techniques in small projects, by modelling parts of systems such as a lift or a railway network.
LernzielStudents develop an intuition for modelling the essential aspects of simple applications from their field. They learn how to transform such a model into a computer program.
Voraussetzungen / BesonderesLecture Series Informatik 252-0832-00L or equivalent knowledge in programming with C++. Engineering Tool: Advanced Programming with C++ is recommended, but not mandatory.

Work on a programming project. Course can only be taken if the programming project is executed and submitted. If no solution to the programming project is submitted, the course is considered failed ("drop out").