Malte Schwerhoff: Catalogue data in Spring Semester 2020

Name Dr. Malte Schwerhoff
Address
Dep. Informatik
ETH Zürich, UNG F 16
Universitätstrasse 19
8092 Zürich
SWITZERLAND
Telephone+41 44 632 21 08
E-mailmalte.schwerhoff@inf.ethz.ch
DepartmentComputer Science
RelationshipLecturer

NumberTitleECTSHoursLecturers
252-0029-00LParallel Programming Information 7 credits4V + 2UT. Hoefler, H. Lehner, M. Schwerhoff
AbstractIntroduction to parallel programming: deterministic and non-deterministic programs, models for parallel computation, synchronization, communication, and fairness.
ObjectiveThe 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-00LRigorous Software Engineering Information 8 credits4V + 2U + 1AF. O. Friedrich Wicker, H. Lehner, M. Schwerhoff
AbstractThis 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
ObjectiveThe 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
ContentSome 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
LiteratureWill be announced in the lecture.
252-0832-00LComputer Science Information 4 credits2V + 2UH. Lehner, M. Schwerhoff
AbstractThe 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.
ObjectivePrimary 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.
ContentThe 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 notesA 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.
LiteratureBjarne 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-00LComputer Science I Information 4 credits2V + 2UM. Schwerhoff, H. Lehner
AbstractThe 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.
ObjectivePrimary 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.
ContentThe 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 notesA 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.
LiteratureBjarne 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-AALComputer Science Information
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 credits9RF. O. Friedrich Wicker, M. Schwerhoff
AbstractThe 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.
ObjectivePrimary 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.
ContentThe 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 notesEnglish 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.
LiteratureBjarne 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 / NoticeThis 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-00LEngineering Tool: Modelling Information
The Engineering Tool-courses are for MAVT Bachelor’s degree students only.
0.4 credits1KM. Schwerhoff
AbstractThis 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.
ObjectiveStudents 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 / NoticeLecture 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").