Software Engineering Laboratory CES

  Micro processor Copyright: © Loic Wendling

„Software Engineering Laboratory CES“ is a mandatory course in the fourth semester of Bachelor study program „Computational Engineering Science“



Lecture/Exercise: TBD



Univ.-Prof. Dr. rer. nat. Uwe Naumann, Dr. rer. nat. Johannes Lotz.


The main focus of this project is to give fundamental software development skills to the participants. If necessary, the participants are required to learn the programming language which they are supposed to use. Also the participants need to know how to apply this language in the context of a bigger programming system consisting of smaller parts. Furthermore they familiarize with modern development tools and learn how to document and present their results. In order to systematically check the results, participants carry out software inspections and tests. In short: The participants get taught that a solution can only be achieved by thorough planning and phrasing of interfaces.

Especially the group-dynamic effects coming from the division of tasks is an important lesson for the participants. These effects are guaranteed to take place as every group is supposed to manage the division of tasks on their own. Beside the group-dynamic troubles, matchings and presentations are going to be practiced. The presentation of results is held in front of the group and also in front of the assembly for the purpose of presentation skill improvement.

The laboratory takes place decentralized at the institutes of the RWTH University. CATS is one of them. The instructors provide enough different projects for all students of the same year. Typically there are 25 participants which are divided into 3 groups. These groups work parallel and in competition to each other on the given software problem. Within the groups the tasks are divided.

With 8 students in one group, each member plays at minimum two different roles within the group. The participants distribute these roles themselves. Thereby bumping into the following technical and social interface troubles is guaranteed.

Depending on the orientation different projects come to existence. Also the used approach, methods, programming language and development tools differ from each other. That is why at the beginning of the course there will be a lecture in which the breakdown of tasks, the expected document structures as well as the specific skills are taught. Especially teachings about simple rules of project management will be given.

The contents of the course are on one hand universally applicable and on the other hand very specific. The universally applicable parts will be prepared once and taught to all participants. For the specific parts there will be an agreement about which aspects need to be discussed in this particular course. Both parts ensure proper preparation of the required standards despite of the uniqueness of project topics.

The module carries 7 ECTS points.


  • colloquial formulation of requirements
  • design of simple software architectures
  • implementation according to programming guidelines
  • design and execution of software tests
  • examination of the results through inspection
  • systematic, structured documentation of codes as well as prior requirements or architecture
  • use of modern development tools
  • presentation of the results
  • group-dynamic effects by division of tasks


The final grade is based fully on the project assignment.