Software Construction



Instructor: Prof. Bertrand Meyer
Course Assistant: Carol Alexandru, Gerald Schermann
Teaching Assistants: Anna Jancso
Tutors: Louis Bienz, Philip Hofmann, Sarah Zurmühle, Marc Zwimpfer
Language: English
AP (ECTS): 6.0
Target audience: Students in BSc Informatik
Registration: UZH Modulbuchungstool / module booking tool - You must book this course in the booking tool to attend.

All course information, slides, group project subscription, etc. are all in OLAT: OLAT Course.

If you cannot log in to OLAT, you can visit the course website as a guest. However, to attend the course, it must be booked through the university module booking site.

VVZ: UZH online course catalog (VVZ)
Email: (Administrative questions ONLY)

Course Information

For detailed information on the course, visit the OLAT course linked above. In particular, see the main information page for requirements and other organizational information. Also, see the schedule in OLAT.

Course overview

Knowing how to program does not make you a software engineer. The next step is to learn and practice the principles and techniques of professional software development. This course helps you climb it. It is an introduction to both:

Software architecture: methods for designing the structure of software systems, small or large, that will stand the test of time.

Software engineering: methods and tools, including non-programming aspects (project management, requirements analysis, human factors, metrics, software processes including agile methods) necessary for producing successful systems. The course relies on object technology and focuses on techniques that will scale up for large systems, with a strong emphasis on software quality.

The goal is to equip students with fundamental concepts and practices that will help them become professional software engineers, support them throughout their career, and make them stand away from ordinary programmers. The course includes a software project, emphasizing architectural and engineering skills.

The working programming language for most of the examples and for the project is Eiffel, a pure object-oriented language with a focus on software quality. Eiffel is easy to learn for anyone knowing, for example, C++, Java or C#, and the lessons of this course can be applied to those and any other programming language.