## Malte Schwerhoff: Catalogue data in Spring Semester 2020 |

Name | Dr. Malte Schwerhoff |

Address | Dep. Informatik ETH Zürich, CAB H 31.2 Universitätstrasse 6 8092 Zürich SWITZERLAND |

Telephone | +41 44 632 21 08 |

malte.schwerhoff@inf.ethz.ch | |

Department | Computer Science |

Relationship | Lecturer |

Number | Title | ECTS | Hours | Lecturers | |
---|---|---|---|---|---|

252-0029-00L | Parallel Programming | 7 credits | 4V + 2U | T. Hoefler, H. Lehner, M. Schwerhoff | |

Abstract | Introduction to parallel programming: deterministic and non-deterministic programs, models for parallel computation, synchronization, communication, and fairness. | ||||

Objective | The student should learn how to write a correct parallel program, how to measure its efficiency, and how to reason about a parallel program. Student should become familiar with issues, problems, pitfalls, and solutions related to the construction of parallel programs. Labs provide an opportunity to gain experience with threads, libraries for thread management in modern programming lanugages (e.g., Java, C#) and with the execution of parallel programs on multi-processor/multi-core computers. | ||||

252-0216-00L | Rigorous Software Engineering | 8 credits | 4V + 2U + 1A | F. Friedrich Wicker, H. Lehner, M. Schwerhoff | |

Abstract | This course introduces both theoretical and applied aspects of software engineering and analysis. It covers: - Software Architecture - Informal and formal Modeling - Design Patterns - Code Refactoring - Program Testing - Dynamic Program Analysis - Static Program Analysis | ||||

Objective | The course has two main objectives: - Understand, end-to-end (theoretical and practical), the core techniques for building quality software - Understand how to apply these techniques in practice | ||||

Content | Some of the core technical topics covered will be: - modeling and mapping of models to code - common code design patterns - functional and structural testing - dynamic and static analysis | ||||

Literature | Will be announced in the lecture. | ||||

252-0832-00L | Computer Science | 4 credits | 2V + 2U | H. Lehner, M. Schwerhoff | |

Abstract | The course covers the fundamental concepts of computer programming with a focus on systematic algorithmic problem solving. Taught language is C++. No programming experience is required. | ||||

Objective | Primary educational objective is to learn programming with C++. When successfully attended the course, students have a good command of the mechanisms to construct a program. They know the fundamental control and data structures and understand how an algorithmic problem is mapped to a computer program. They have an idea of what happens "behind the scenes" when a program is translated and executed. Secondary goals are an algorithmic computational thinking, understanding the possibilities and limits of programming and to impart the way of thinking of a computer scientist. | ||||

Content | The course covers fundamental data types, expressions and statements, (Limits of) computer arithmetic, control statements, functions, arrays, structural types and pointers. The part on object orientation deals with classes, inheritance and polymorphy, simple dynamic data types are introduced as examples. In general, the concepts provided in the course are motivated and illustrated with algorithms and applications. | ||||

Lecture notes | A script written in English will be provided during the semester. The script and slides will be made available for download on the course web page. | ||||

Literature | Bjarne Stroustrup: Einführung in die Programmierung mit C++, Pearson Studium, 2010 Stephen Prata, C++ Primer Plus, Sixth Edition, Addison Wesley, 2012 Andrew Koenig and Barbara E. Moo: Accelerated C++, Addison-Wesley, 2000. | ||||

252-0848-00L | Computer Science I | 4 credits | 2V + 2U | M. Schwerhoff, H. Lehner | |

Abstract | The course covers the fundamental concepts of computer programming with a focus on systematic algorithmic problem solving. Taught language is C++. No programming experience is required. | ||||

Objective | Primary educational objective is to learn programming with C++. When successfully attended the course, students have a good command of the mechanisms to construct a program. They know the fundamental control and data structures and understand how an algorithmic problem is mapped to a computer program. They have an idea of what happens "behind the scenes" when a program is translated and executed. Secondary goals are an algorithmic computational thinking, understanding the possibilities and limits of programming and to impart the way of thinking of a computer scientist. | ||||

Content | The course covers fundamental data types, expressions and statements, (Limits of) computer arithmetic, control statements, functions, arrays, structural types and pointers. The part on object orientation deals with classes, inheritance and polymorphy, simple dynamic data types are introduced as examples. In general, the concepts provided in the course are motivated and illustrated with algorithms and applications. | ||||

Lecture notes | A script written in English will be provided during the semester. The script and slides will be made available for download on the course web page. | ||||

Literature | Bjarne Stroustrup: Einführung in die Programmierung mit C++, Pearson Studium, 2010 Stephen Prata, C++ Primer Plus, Sixth Edition, Addison Wesley, 2012 Andrew Koenig and Barbara E. Moo: Accelerated C++, Addison-Wesley, 2000. | ||||

252-0856-AAL | Computer Science Enrolment ONLY for MSc students with a decree declaring this course unit as an additional admission requirement. Any other students (e.g. incoming exchange students, doctoral students) CANNOT enrol for this course unit. | 4 credits | 9R | F. Friedrich Wicker, M. Schwerhoff | |

Abstract | The course covers the fundamental concepts of computer programming with a focus on systematic algorithmic problem solving. Taught language is C++. No programming experience is required. | ||||

Objective | Primary educational objective is to learn programming with C++. After having successfully attended the course, students have a good command of the mechanisms to construct a program. They know the fundamental control and data structures and understand how an algorithmic problem is mapped to a computer program. They have an idea of what happens "behind the scenes" when a program is translated and executed. Secondary goals are an algorithmic computational thinking, understanding the possibilities and limits of programming and to impart the way of thinking like a computer scientist. | ||||

Content | The course covers fundamental data types, expressions and statements, (limits of) computer arithmetic, control statements, functions, arrays, structural types and pointers. The part on object orientation deals with classes, inheritance and polymorphism; simple dynamic data types are introduced as examples. In general, the concepts provided in the course are motivated and illustrated with algorithms and applications. | ||||

Lecture notes | English lecture notes will be provided during the semester. The lecture notes and the lecture slides will be made available for download on the course web page. Exercises are solved and submitted online. | ||||

Literature | Bjarne Stroustrup: Einführung in die Programmierung mit C++, Pearson Studium, 2010 Stephen Prata, C++ Primer Plus, Sixth Edition, Addison Wesley, 2012 Andrew Koenig and Barbara E. Moo: Accelerated C++, Addison-Wesley, 2000 | ||||

Prerequisites / Notice | This virtual self-study course is also offered physically in the autumn semester. We recommend to visit the classes of the course 252-0856-00L (or that of the equivalent course 252-0847-00L). While the classes are only offered in German, there are English spoken Exercises. All exercises and exams are offered bilingual (German and English). | ||||

252-0862-00L | Engineering Tool: Modelling The Engineering Tool-courses are for MAVT Bachelor’s degree students only. | 0.4 credits | 1K | M. Schwerhoff | |

Abstract | This course provides an introduction to modelling, i.e. the representation of real-world entities and systems in computer programs. Basic modelling techniques will be introduced and illustrated, and students will apply these techniques in small projects, by modelling parts of systems such as a lift or a railway network. | ||||

Objective | Students develop an intuition for modelling the essential aspects of simple applications from their field. They learn how to transform such a model into a computer program. | ||||

Prerequisites / Notice | Lecture Series Informatik 252-0832-00L or equivalent knowledge in programming with C++. Engineering Tool: Advanced Programming with C++ is recommended, but not mandatory. Work on a programming project. Course can only be taken if the programming project is executed and submitted. If no solution to the programming project is submitted, the course is considered failed ("drop out"). |