Currently, no news are available

In case of questions, please contact us via e-mail to:


About the Software Engineering Lab

Passing the course "Programming 2" is a mandatory prerequisite for participation in the Software Engineering Lab!

The Chair of Software Engineering offers a Software Engineering Lab (SE Lab), formerly Software-Praktikum (SoPra), in the form of a basic block course during the lecture-free period, which addresses students currently enrolled in a Bachelor’s degree program majoring and minoring in computer science. The goal of the Software Engineering Lab is to develop a non-trivial software system in Kotlin, partly in team effort and partly in individual effort. Other characteristics of the Software Engineering Lab are:

  • Time period: 26.08.2024 – 11.10.2024

  • Duration: 7 weeks (daily Monday to Friday)

  • The Software Engineering Lab consists of three phases:

    • Exercise phase (~1 week): daily lectures (beginning at 09:30) and exercises in the afternoon. At the end of the first week, on Friday, 30.08.2024, an entry exam will take place. Only participants that pass the entry exam will be admitted to the group phase.

    • Group phase (~4 weeks): design, implementation, and testing of a substantial software system in a team effort (in teams of five to eight students). Only participants that have passed the exercise phase are admitted to the group phase.
      During the group phase, compulsory attendance is required between 10:00 and 17:00 (at days with lectures between 11:00 and 17:00). There will be three additional appointments between 09:00 and 18:00.
      In exceptional cases, in which you are not able to fulfill the compulsory attendance on single days of the group phase, please inform your tutor during the course. We then will take a hardship decision about the attendance for individual days, which may also be dependent on your project progress, if necessary.
      If a group fulfills all requirements for passing the group phase, we will waive the compulsory attendance for this group.

    • Individual phase (2 weeks): design, implementation, and testing of a smaller software system or extension to an existing software system (e.g., from the group phase) in an individual effort. Only participants that have passed the group phase will be admitted to the individual phase.

  • More details about the time slots and dates of the lectures and the concrete temporal sequence of the Software Engineering Lab are available in the schedule presumably in the end of July.

The Software Engineering Lab will take place on-site at the campus.

Upon registration in the CMS, you will be asked for your preferred language (English or German). We try to use this information for the tutorial assignment in the exercise phase, if possible (but without guarantee; the default language is English). Your decision in the CMS helps us to prepare the course.

We will upload a file covering organizational matters in the week before the SE Lab starts, in which we provide further information on the schedule of the course.



Passing the course "Programming 2" is a mandatory prerequisite for participation in the Software Engineering Lab!

Participation in the Software Engineering Lab requires programming skills as taught in the courses Programming 1 and Programming 2.
Students are required to bring their own laptops.



Registration for the Software Engineering Lab here in the CMS is possible from 15.07.2024.
Two registrations are necessary for participation in the Software Engineering Lab:

  1. You have to register here in the CMS by 26.08.2024.

  2. You have to register at your examinations office by 02.09.2024 (for most degree programs in computer science, this is possible via the LSF; note that the course is sometimes called ‘Softwaredesignpraktikum’ there). There you can also withdraw your registration until 02.09.2024. The LSF registration opens on 12.08.2024 and is only possible after a passing grade for the course "Programming 2" has been entered in your LSF records.
    For students who cannot register in the LSF because their course of studies does not use the LSF: You have to provide a certificate to us that confirms that you have passed "Programming 2", within the time period of the LSF registration.



  • Software design
  • Software testing
  • Team work
  • Debugging



  • Software Engineering. I. Sommerville. Addison-Wesley, 2004.
  • Software Engineering: A Practioner's Approach. R. Pressman. McGraw Hill Text, 2001.
  • Using UML: Software Engineering with Objects and Components. P. Stevens, R. Pooley. Addison-Wesley, 1999.
  • UML Distilled. M. Fowler, K. Scott. Addison-Wesley, 2000.
  • Objects, Components and Frameworks with UML, D. D'Souza, A. Wills. Addison-Wesley, 1999.
  • Designing Object-Oriented Software. R. Wirfs-Brock, B. Wilkerson, L. Wiener. Prentice Hall, 1990.
  • Design Patterns. Elements of Reusable Object-Oriented Software. E. Gamma, R. Helm, R. Johnson, J. Vlissides. Addison Wesley, 1995.
  • Pattern-Oriented Software Architecture: A System of Patterns. F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, M. Stal. Wiley, 1996.
  • Head First Design Patterns. E. Freeman, E. Robson, K. Sierra, B. Bates. O’Reilly, 2004.
  • Software Architecture: Perspectives on an Emerging Discipline. M. Shaw, D. Garlan. Prentice-Hall, 1996.
  • Refactoring: Improving the Design of Existing Code. M. Fowler, K. Beck, W. Opdyke. Addison-Wesley, 1999.
  • Software Testing and Analysis: Process, Principles and Techniques. M. Pezze. Wiley. 2007.
Privacy Policy | Legal Notice
If you encounter technical problems, please contact the administrators.