Name | Herr Prof. em. Dr. Thomas Gross |
Lehrgebiet | Informatik |
Adresse | Lehre D-INFK ETH Zürich, CAB H 69.2 Universitätstrasse 6 8092 Zürich SWITZERLAND |
Telefon | +41 44 632 73 42 |
thomas.gross@inf.ethz.ch | |
Departement | Informatik |
Beziehung | Professor emeritus |
Nummer | Titel | ECTS | Umfang | Dozierende | |
---|---|---|---|---|---|
252-0027-00L | Einführung in die Programmierung | 7 KP | 4V + 2U | T. Gross | |
Kurzbeschreibung | Einfü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. | ||||
Lernziel | Viele 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. | ||||
Inhalt | Grundlagen 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. | ||||
Skript | Die Vorlesungsfolien auf der Vorlesungswebseite zum Download zur Verfügung gestellt. | ||||
Literatur | Weitere Literaturangaben auf der Web Seite der Vorlesung. | ||||
Voraussetzungen / Besonderes | Die Vorlesung hat keine besonderen Voraussetzungen. Sie erwartet das gleichzeitige Belegen der anderen Informatik Vorlesungen des Basisjahres. | ||||
252-0210-00L | Compiler Design Findet dieses Semester nicht statt. Die Lerneinheit findet im FS17 wieder statt. | 8 KP | 4V + 3U | T. Gross | |
Kurzbeschreibung | Diese Vorlesung benutzt Compiler als Beispiel für moderne Software Entwicklung. Dazu werden die Kernthemen des Compilerbaus behandelt: Syntax Analyse, Symboltabellen, Code Erzeugung. Die Vorlesung und Uebungen geben den Studierenden eine gute Gelegenheit, Muster in diversen Kontexten anzuwenden. | ||||
Lernziel | Learn principles of compiler design, gain practical experience designing and implementing a medium-scale software system. | ||||
Inhalt | This course uses compilers as example to expose modern software development techniques. The course introduces the students to the fundamentals of compiler construction. Students will implement a simple yet complete compiler for an object-oriented programming language for a realistic target machine. Students will learn the use of appropriate tools (parser generators); the implementation language is Java. Throughout the course, students learn to apply their knowledge of theory (automata, grammars, stack machines, program transformation) and well-known programming techniques (module definitions, design patterns, frameworks, software reuse) in a software project. Specific topics: Compiler organization. Lexical analysis. Top-down parsing via recursive descent, table-driven parsers, bottom-up parsing. Symboltables, semantic checking. Code generation for a simple RISC machine: expression evaluation, straight line code, conditionals, loops, procedure calls, simple register allocation techniques. Storage allocation on the stack, parameter passing, runtime storage management, heaps. Special topics as time permits: introduction to global dataflow and its application to register allocation, instruction scheduling. | ||||
Literatur | Aho/Lam/Sethi/Ullmann, Compilers - Principles, Techniques, and Tools (2nd Edition) Muchnick, Advanced Compiler Design and Implementation, Morgan Kaufmann Publishers, 1997 | ||||
Voraussetzungen / Besonderes | Prerequisites: Prior exposure to modern techniques for program construction, knowledge of at least one processor architecture at the assembly language level. | ||||
252-0912-00L | Experimental Computer Systems Für Post/Doktoranden im Institut für Computersysteme. Alle anderen brauchen Bewilligung des Dozenten. | 2 KP | 2S | T. Gross | |
Kurzbeschreibung | This 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. | ||||
Lernziel | Learn how to formulate a research project, how to conduct research and how to improve presentation skills in an academic setting. | ||||
Inhalt | The 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. | ||||
Skript | Supporting material will be distributed during the seminar. | ||||
Voraussetzungen / Besonderes | Credit will be given only to those who present a paper/project. No credit for "attendance". |