Peter Müller: Katalogdaten im Herbstsemester 2014

Auszeichnung: Die Goldene Eule
NameHerr Prof. Dr. Peter Müller
LehrgebietInformatik
Adresse
Professur für Software Technology
ETH Zürich, CAB H 84
Universitätstrasse 6
8092 Zürich
SWITZERLAND
Telefon+41 44 632 28 68
E-Mailpeter.mueller@inf.ethz.ch
URLhttp://www.pm.inf.ethz.ch
DepartementInformatik
BeziehungOrdentlicher Professor

NummerTitelECTSUmfangDozierende
252-0237-00LConcepts of Object-Oriented Programming6 KP3V + 2UP. Müller
KurzbeschreibungCourse that focuses on an in-depth understanding of object-oriented programming and compares designs of object-oriented programming languages. Topics include different flavors of type systems, inheritance models, encapsulation in the presence of aliasing, object and class initialization, program correctness, reflection
LernzielAfter this course, students will:
Have a deep understanding of advanced concepts of object-oriented programming and their support through various language features. Be able to understand language concepts on a semantic level and be able to compare and evaluate language designs.
Be able to learn new languages more rapidly.
Be aware of many subtle problems of object-oriented programming and know how to avoid them.
InhaltThe main goal of this course is to convey a deep understanding of the key concepts of sequential object-oriented programming and their support in different programming languages. This is achieved by studying how important challenges are addressed through language features and programming idioms. In particular, the course discusses alternative language designs by contrasting solutions in languages such as C++, C#, Eiffel, Java, Python, and Scala. The course also introduces novel ideas from research languages that may influence the design of future mainstream languages.

The topics discussed in the course include among others:
The pros and cons of different flavors of type systems (for instance, static vs. dynamic typing, nominal vs. structural, syntactic vs. behavioral typing)
The key problems of single and multiple inheritance and how different languages address them
Generic type systems, in particular, Java generics, C# generics, and C++ templates
The situations in which object-oriented programming does not provide encapsulation, and how to avoid them
The pitfalls of object initialization, exemplified by a research type system that prevents null pointer dereferencing
How to maintain the consistency of data structures
LiteraturWill be announced in the lecture.
Voraussetzungen / BesonderesPrerequisites:
Mastering at least one object-oriented programming language (this course will NOT provide an introduction to object-oriented programming); programming experience
252-2600-05LSoftware Engineering Seminar Information 2 KP2SP. Müller
KurzbeschreibungThe course is an introduction to research in software engineering, based on reading and presenting high quality research papers in the field. The instructor may choose a variety of topics or one topic that is explored through several papers.
LernzielThe main goals of this seminar are 1) learning how to read and understand a recent research paper in computer science; and 2) learning how to present a technical topic in computer science to an audience of peers.

The focus of the course this year is on reliability of high-performance programs.
InhaltThe technical content of this course falls into the general area of software engineering but will vary from semester to semester.
264-5810-00LProgramming Languages Seminar2 KP2SP. Müller, M. Vechev
KurzbeschreibungThis graduate seminar provides doctoral students in computer science a chance to read and discuss current research papers. Enrollment requires permission of the instructors. Credit units are granted only to active participants.
LernzielLearn about current research results in the area of programming languages, static program analysis, program verification, and related areas; practice of scientific presentations.
InhaltThe seminar will explore different topics from a research perspective.
SkriptSupporting material will be distributed during the seminar.
Voraussetzungen / BesonderesThe seminar is open to assistants of the Chair of Programming Methodology and the Software Reliability Lab (Department of Computer Science). Others should contact the instructors.