Thomas Gross: Katalogdaten im Herbstsemester 2017

Auszeichnung: Die Goldene Eule
NameHerr Prof. em. Dr. Thomas Gross
LehrgebietInformatik
Adresse
Lehre D-INFK
ETH Zürich, CAB H 69.2
Universitätstrasse 6
8092 Zürich
SWITZERLAND
Telefon+41 44 632 73 42
E-Mailthomas.gross@inf.ethz.ch
DepartementInformatik
BeziehungProfessor emeritus

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-2100-00LResearch Topics in Software Engineering Information Belegung eingeschränkt - Details anzeigen
Maximale Teilnehmerzahl: 22
2 KP2SP. Müller, T. Gross, M. Püschel, M. Vechev
KurzbeschreibungThis seminar is an opportunity to become familiar with current research in software engineering and more generally with the methods and challenges of scientific research.
LernzielEach student will be asked to study some papers from the recent software engineering literature and review them. This is an exercise in critical review and analysis. Active participation is required (a presentation of a paper as well as participation in discussions).
InhaltThe aim of this seminar is to introduce students to recent research results in the area of programming languages and software engineering. To accomplish that, students will study and present research papers in the area as well as participate in paper discussions. The papers will span topics in both theory and practice, including papers on program verification, program analysis, testing, programming language design, and development tools. A particular focus will be on domain-specific languages.
LiteraturThe publications to be presented will be announced on the seminar home page at least one week before the first session.
Voraussetzungen / BesonderesOrganizational note: the seminar will meet only when there is a scheduled presentation. Please consult the seminar's home page for information.
263-2810-00LAdvanced Compiler Design Information 7 KP3V + 2U + 1AR. Eigenmann, T. 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.