Hermann Lehner: Catalogue data in Spring Semester 2017

Name Dr. Hermann Lehner
Address
Akademische Dienste (AkD)
ETH Zürich, HG F 10.3
Rämistrasse 101
8092 Zürich
SWITZERLAND
Telephone+41 44 632 20 58
E-mailhermann.lehner@akd.ethz.ch
DepartmentComputer Science
RelationshipLecturer

NumberTitleECTSHoursLecturers
252-0832-00LInformatics Information 4 credits2V + 2UM. Gross, H. Lehner
AbstractThe fundamental elements of imperative programming languages (variables, assignments,
conditional statements, loops, procedures, pointers, recursion) are explained on the basis of C++.
Simple data structures (lists, trees) and fundamental algorithms (searching, sorting)
are discussed and implemented. Finally, the concept of object oriented programming is briefly explained.
ObjectiveThe fundamental elements of imperative programming languages (variables, assignments,
conditional statements, loops, procedures, pointers, recursion) are explained on the basis of C++.
Simple data structures (lists, trees) and fundamental algorithms (searching, sorting)
are discussed and implemented. Finally, the concept of object oriented programming is briefly explained.
ContentAnhand der Programmiersprache C++ werden die elementaren Elemente der imperativen Programmiersprachen (Variablen, Zuweisungen, bedingte Anweisung, Schleifen, Prozeduren, Pointer) eingeführt. Darauf aufbauend, werden dann einfache Datenstrukturen, z.B. Listen und Bäume, sowie grundlegende Algorithmen, z.B. zum Suchen und Sortieren, behandelt. Elementare Techniken zur Analyse von Algorithmen (wie asymptotische Laufzeitanalyse, Invarianten) werden vermittelt. Abschliessend wird kurz das Konzept der Objektorientierung erläutert.
LiteratureWird noch bekannt gegeben.
252-0842-00LIntroduction to Programming and Problem Solving Information 3 credits2V + 0.5UH. Lehner
AbstractIntroduction to programming in Java and to problem solving using standard algorithms and data structures.
ObjectiveThe goals of this lecture are first, to become familiar with the programming
language Java, and second, to be able to solve given problems of the
student's subject area (for example data processing) with their own programs.

The students should know standard algorithms and data structures, they
should know how to use them and also what properties the algorithms and
data structures have.
The goal is, that students are able to make a reasonable choice of
algorithms and data structures for a given problem and that they
can implement their own program to solve the given problem.

The students will work on an own project during the lecture. They will
need to present the project during the last lecture.
ContentThe following topics will be covered:
- Programming concepts vs. programming languages
- Introduction to Java
- Arrays
- Methods and parameters
- Classes, types and objects
- I/O, using the keyboard and the screen, reading and writing files
- Exceptions
- Lambda Expressions and the Stream API
- Data structures
- Object-oriented programming
- Introduction to GUI programming
- Design patterns

The project has to be presented during the last lecture on.
Lecture notesLecture website: http://lec.inf.ethz.ch/ppl
Prerequisites / NoticePrerequisites:
- Application of software tools (252-0839-00)
- Application Oriented Programming Using MATLAB (252-0840-01)
252-2610-00LFoundations of Eiffel-Programming Information
Nur geeignet für Repetenten der Basisprüfung nach Studienreglement 2008
0 credits2GH. Lehner
Abstract
ObjectiveThe Students
- know Eiffel-specific language concepts and terminology
- understand the basic concepts of object-oriented programming using Eiffel
- are able to apply this knowledge to solve algorithmic tasks on their own
- can write software specifications using Eiffel contracts
ContentComplementary service for the lecture "Einführung in die Programmierung" of the fall semester 2015 for students in the bachelor regulations 08.

Students can enroll in this course for optimal preparation for the exam of the mentioned lecture.
Lecture notesAll material and information of this course is available on the webpage http://lec.inf.ethz.ch/gep/ (in german).
Prerequisites / Notice- Have been enrolled in "Einführung in die Programmierung" in fall semester 2015
- are studying in the bachelor regulations 08
263-2100-00LResearch Topics in Software Engineering Information Restricted registration - show details
Number of participants limited to 23.
2 credits2SH. Lehner
AbstractThis seminar introduces students to the latest research trends that help to improve various aspects of software quality.

Topics cover the following areas of research: Compilers, domain-specific languages, concurrency, formal methods, performance optimization, program analysis, program generation, program synthesis, testing, tools, verification
ObjectiveAt the end of the course, the students should be:

- familiar with a broad range of key research results in the area as well as their applications.

- know how to read and assess high quality research papers

- be able to highlight practical examples/applications, limitations of existing work, and outline potential improvements.
ContentThe course will be structured as a sequence of presentations of high-quality research papers, spanning both theory and practice. These papers will have typically appeared in top conferences spanning several areas such as POPL, PLDI, OOPSLA, OSDI, ASPLOS, SOSP, AAAI, ICML and others.
LiteratureThe publications to be presented will be announced on the seminar home page at least one week before the first session.
Prerequisites / NoticePapers will be distributed during the first lecture.