Navigation auf


Department of Informatics s.e.a.l

Software Engineering

Module Number: BINF 2110
ECTS Points: 6

Course Description & Prerequisites

Introduction to Software Development: Specification, design, implementation and maintenance of large, multi-module software systems. Principles, techniques, methodologies and tools for computer aided software engineering; software processes, configuration and quality management, human-computer interfaces, hardware-software interfaces and distributed applications.Specification, design, implementation and maintenance of large, multi-module software systems. Principles, techniques, methodologies and tools for computer aided software engineering (CASE); human-computer interfaces, reactive systems, hardware-software interfaces and distributed applications.

Teaching language: English

When you complete this course, you should be able to:

  • Explain the technical and interpersonal challenges of software development
  • Communicate technical matters with programmers, managers, and clients effectively
  • Perform the activities of software development effectively, using up-to-date methodologies or tools


  • Content of the modules Informatik I and II as well as Formale Grundlagen der Informatik I;
  • BSc Informatik students: successful passing of the assessment level is a prerequisite.

Top Three Team Projects (HS12):

  • Find descriptions and pictures of the top three team projects completed for this course for HS12 here


Thomas Fritz (Instructor)

  • Office: BIN 2.D.13
  • Email:
  • Office Hours: Thursdays, 10:00-11:00 -- I am happy to speak with you if you have questions, just e-mail me if you want to schedule an appointment.

Irina Todoran (Course Assistant)

Katja Kevic (TA)

Christoph Bräunlich (TA)

Lectures & Labs

Day Time Place Responsible
Lecture Tuesday 8:15-10:00 BIN 2.A.01 Thomas Fritz
Lecture Thursday 8:15-10:00 BIN 2.A.01 Thomas Fritz
Lab Tuesday 10:00-12:00 BIN 0.B.04 & BIN 2.A.01 Irina Todoran & Katja Kevic & Christoph Bräunlich

Labs are an important part of this course. Labs will provide you with the practical knowledge and skills required for the completion of your course assignments. Each lab is designed to give you the opportunity to meet and work as a group, and attendance is mandatory.

Each lab session is supervised by a teaching assistant (TA), who will introduce the necessary tools, provide instructions for the projects, answer questions and meet with each group to discuss the progress of the project.

If, because of illness, military service or force majeure, you cannot attend a given lab, please contact the TA immediately.

There will be no mandatory labs in the first week, but you will have to complete your first assignment in the first week. The first assignment will help to ensure that you have access to the appropriate computing resources for the course. In the first week, TAs will be in the lab rooms to answer questions you have for the first assignment.

Course Resources


The course information on OLAT is required reading, as the instructor, course assistant and TAs may post important information there. You should check it about once a day. In addition, you are encouraged to post your questions about the course material in the forum. You are also encouraged to respond to questions for which you know the answer. Students who help other students by answering questions in the forum could receive extra participation credit. The instructor, course assistant and the TAs will regularly monitor the forum and try to answer your questions as promptly as possible. In case you need a face-to-face discussion, you can bring your questions regarding the course material, assignments, project and labs to:

  • the lab sessions,
  • the instructor's office hours listed above,
  • appointments made with the instructor, course assistant or your TA.


There is no textbook material for the course - the lectures, labs and assigned readings will contain all information on the exams.

Online Resources

The course material is available on OLAT or directly from the course home site.

The OLAT site also contains the course forum and the student grades for the various course activities. To access the OLAT site you need to use your student shortname and password. The course home site is accessible without any password.

The course calendar is available also on OLAT. Note that this calendar is tentative and may change.

Project Resources

You can find a collection of useful articles on the Google App Engine and related technologies here. More can be found on the Google App Engine website, in particular under the Docs and the Articles link.


Your grade in this course will be based on exams, labs, a project and class participation as shown in the table below.

Final Exam 45%
Labs and Project 30%
Midterm Exam 20%
Participation 5%

To pass this course, you must obtain a 50% overall mark and, in addition, you must:

  • pass the project overall, AND
  • pass the implementation phase of the project (both milestones), AND
  • pass the final examination.

Students who fail the project, the implementation phase of the project, or the final exam, will be assigned as the final grade in the course the minimum of 45% (grade 3.75) and the grade computed using the above formula. The instructor reserves the right to modify the course grading scheme at any time.

The participation mark will be determined based on your class participation, short quizzes (5 to 10 minutes) on the readings and lecture, lab attendance and maybe a bonus for the best projects.

Grade disputes

If you feel that your assignment, project, or exam was graded incorrectly or unfairly, PLEASE discuss the grade with your TA, course assistant or instructor, during regular office hours. You have 7 days after a grade is returned to dispute the marking (whether or not you were present to receive the returned assignment or exam).

If you find a marking error, it will be corrected immediately. I will not remark individual questions if you disagree with the marking scheme. However, I will re-mark your entire exam if you feel that the grading scheme used was unfair and would like to have your exam re-evaluated.

Posting grades

Grades will be posted regularly via OLAT.


There will be one midterm and a final examination. Each exam will be closed-book, i.e. students are NOT allowed to bring and use any additional materials to solve the exam questions.

Midterm October 30, 8:15-10:00, BIN 1.B.01
Final Exam January 15, 10:15-12:00, BIN 0.K.02

If you are unable to attend the midterm or the final exam due to illness or force majeure, you must let the instructor know in time and present to the instructor a note from your physician, detailing the period during which you were ill, in order not to be penalized (i.e., receive a grade of 0), or present a document from some other appropriate authority, respectively. In case you are unable to attend due to military service, you have to tell the instructor at the beginning of this course in September and if acceptable, also present a copy of the “Einberufungsbefehl” to Yvonne Engeler. In all cases, the instructor will then decide on the course of action to follow.

Labs & Project

One large project, broken into several assignments, including two major sprints. These are described in more detail on the Project Website

The submission procedure will be clearly specified in each assignment.

Your projects are group work, but no inter-group communication about projects is permitted unless explicitly noted in the assignment description. Please read the policies section found at the end of this course outline.

Note that the project is a mandatory component of this course. You must obtain a passing average grade in the project in order to pass the course. You must also receive a passing average grade in the implementation phase of the project.

If you are unable to complete an assignment due to illness, military service or force majeure, you have to inform the instructor as soon as possible. The same conditions mentioned above for not attending an exam apply.


The following are the rough categories of user stories we will work with:

  • Import and clean data - access the data on the remote server, and translate it into a format useful for manipulation.
  • Storage - the data should persist once uploaded. I assume that you will load your data once, or every so often on a specified interval. Once it's loaded, it should be persisted.
  • Data display - display the imported data in a tabular and a geographic format to verify it imported.
  • Sharing - allow users to share/comment on/rate the visualized data.
  • User Management - grant access to certain groups of users.
  • Software Attributes - usable, responsive, attractive.

Course Objectives

The following is a tentative list of the objectives of this course by topic. When you complete this course, you should be able to:


  • Explain the basic software development phases
  • Explain the risks of skipping or reducing any phase
  • Recognize the types of tools that are used in each phase


  • Explain the typical difficulties of technical communication
  • Describe several types of requirements
  • Argue for the need for requirements
  • Elicit requirements from a client
  • Recognize good and bad requirements


  • Design a project with UML
  • Explain and apply good design principles
  • Explain and apply common design patterns
  • Design a project in a group setting


  • Quickly implement high-quality code from a design
  • Improve code quality and productivity by using software tools
  • Explain several implementation philosophies
  • Coordinate implementation efforts using a code repository
  • Break up implementation work into units for parallel implementation
  • Identify and eliminate problems using an issue tracking system


  • Test code with unit tests, system tests, and user tests
  • Explain basic testing terminology
  • Recognize common testing frameworks employed in the industry

Intellectual Property

  • Explain basic intellectual property issues
  • Recognize the implications of common licenses
  • Explain the differences between patents, copyrights, and licenses

General Advice

  • Start the project early.
  • Attend lectures and labs. If you miss a lecture, find out what you missed from a fellow student.
  • Take notes during the lecture. Takes notes when you are reading. Re-read the material after lecture or lab to make sure you understand the main points.
  • Do the assigned reading (if there is one). Some reading will be assigned before lecture or lab. Reading this material prior to lecture or lab will ensure you get the most out of attending and will ensure we can cover more interesting material.
  • Be a good group member, peers' evaluations of your performance are important
    • Do your share of the work
    • Be polite to groupmates

Academic Conduct

Unless otherwise stated, all work in this course is to be done on an individual basis. Students should know where to draw the line between getting legitimate outside assistance with course material and outright cheating. Students who obtain too much assistance without learning the material ultimately cheat themselves the most. Submitting the work of another person as your own (i.e., plagiarism) constitutes academic misconduct, as does communication with others (either as donor or recipient) in ways other than those permitted for assignments and exams. Such actions will not be tolerated. Students should be particularly careful when hiring a tutor. It is not permitted to submit code for an assignment or lab that was written in whole or in part by a tutor. All offences will be reported to the Department of Informatics, University of Zurich.

For more information on the treatment of plagiarism at UZH, please refer to The Information Sheet on the Treatment of Plagiarism

Weiterführende Informationen


Teaser text