Das Herbstsemester 2020 findet in einer gemischten Form aus Online- und Präsenzunterricht statt.
Bitte lesen Sie die publizierten Informationen zu den einzelnen Lehrveranstaltungen genau.

Thomas Gross: Katalogdaten im Herbstsemester 2018

NameHerr Prof. Dr. Thomas Gross
LehrgebietInformatik
Adresse
Institut für Computersysteme (eh.)
ETH Zürich, CAB H 69.2
Universitätstrasse 6
8092 Zürich
SWITZERLAND
Auszeichnung: Die Goldene Eule
Telefon+41 44 632 73 42
E-Mailthomas.gross@inf.ethz.ch
DepartementInformatik
BeziehungEmeritierter Professor

NummerTitelECTSUmfangDozierende
252-0027-00LEinführung in die Programmierung Information 7 KP4V + 2UT. Gross
KurzbeschreibungEinführung in grundlegende Konzepte der modernen Programmierung. Vermittlung der Fähigkeit, Programme von höchster Qualität zu entwickeln. Einführung in Prinzipien des Software Engineering mit objekt-orientiertem Ansatz.
LernzielViele Menschen können Programme schreiben. Die Ziele der Vorlesung "Einführung in die Programmierung" gehen aber darüber hinaus: sie lehrt die fundamentalen Konzepte und Fertigkeiten, die nötig sind, um professionelle Programme zu erstellen. Nach erfolgreichem Abschluss der Vorlesung beherrschen Studenten die fundamentalen Kontrollstrukturen, Datenstrukturen, die Verfahren zur Problemlösung und Mechanismen von Programmiersprachen, die die moderne Programmierung auszeichnen. Sie kennen die Grundregeln für die Produktion von Software in hoher Qualität. Sie haben die nötigen Vorkenntnisse für weiterführende Vorlesungen, die das Programmieren in spezialisierten Anwendungsgebieten vorstellen.
InhaltGrundlagen der objekt-orientierten Programmierung. Objekte und Klassen. Vor- und Nachbedingungen, Invarianten, Design by Contract. Elementare Kontrollstrukturen. Zuweisungen und Referenzierung. Grundbegriffe aus der Hardware. Elementare Datenstrukturen und Algorithmen. Rekursion. Vererbung und Interfaces, Einführung in Event-driven Design und Concurrent Programming. Grundkonzepte aus Software Engineering wie dem Softwareprozess, Spezifikation und Dokumentation, Reuse und Quality Assurance.
SkriptDie Vorlesungsfolien auf der Vorlesungswebseite zum Download zur Verfügung gestellt.
LiteraturWeitere Literaturangaben auf der Web Seite der Vorlesung.
Voraussetzungen / BesonderesDie Vorlesung hat keine besonderen Voraussetzungen. Sie erwartet das gleichzeitige Belegen der anderen Informatik Vorlesungen des Basisjahres.
252-0912-00LExperimental Computer Systems
Für Post/Doktoranden im Institut für Computersysteme. Alle anderen brauchen Bewilligung des Dozenten.
2 KP2ST. Gross
KurzbeschreibungThis graduate seminar provides doctoral students in computer science a chance to discuss their research. Enrollement requires permission of the instructor.
Credit units are granted only to active participants.
LernzielLearn how to formulate a research project, how to conduct research and how to improve presentation skills in an academic setting.
InhaltThe seminar will explore different topics from a research perspective. The seminar is open to assistants of the Department of Computer Science (Informatik), Computer Systems Institute. Others should contact the instructor.
SkriptSupporting material will be distributed during the seminar.
Voraussetzungen / BesonderesCredit will be given only to those who present a paper/project. No credit for "attendance".
263-2810-00LAdvanced Compiler Design Information
Findet dieses Semester nicht statt.
7 KP3V + 2U + 1AT. Gross
KurzbeschreibungThis course covers advanced topics in compiler design: SSA intermediate representation and its use in optimization, just-in-time compilation, profile-based compilation, exception handling in modern programming languages.
LernzielUnderstand translation of object-oriented programs, opportunities and difficulties in optimizing programs using state-of-the-art techniques (profile-based compilation, just-in-time compilation, runtime system interaction)
InhaltThis course builds conceptually on Compiler Design (a basic class for advanced undergraduates), but this class is not a prerequisite. Students should however have a solid understanding of basic compiler technology.

The focus is on handling the key features of modern object-oriented programs. We review implementations of single and multiple inheritance (incl. object layout, method dispatch) and optimization opportunities.

Specific topics: intermediate representations (IR) for optimizing compilers, static single assignment (SSA) representation, constant folding, partial redundancy optimizations, profiling, profile-guided code generation. Special topics as time permits: debugging optimized code, multi-threading, data races, object races, memory consistency models, programming language design. Review of single inheritance, multiple inheritance, object layout, method dispatch, type analysis, type propagation and related topics.

This course provides another opportunity to explore software design in a medium-scale software project.
LiteraturAho/Lam/Sethi/Ullmann, Compilers - Principles, Techniques, and Tools (2nd Edition). In addition, papers as provided in the class.
Voraussetzungen / BesonderesA basic course on compiler design is helpful but not mandatory. Student should have programming skills/experience to implement an optimizer (or significant parts of an optimizer) for a simple object-oriented language. The programming project is implemented using Java.