We offer regular courses for bachelor and master students on various aspects of Software Engineering. We also offer seminars and theses at both the bachelor and master level.
Course name | Credits | Details | Term |
---|---|---|---|
CS 304 – Programmierpratikum I | 5 | Bachelor course | Fall |
CS 305 – Programmierpraktikum II | 5 | Bachelor course | Spring |
CS 306 – Praktikum Software Engineering | 5 | Bachelor course | Spring |
CS 308 – Softwaretechnik I | 6 | Bachelor course | Spring |
CS 470 – Python for Data Scientists | 6 | Master course | Spring |
CS 500 – Advanced Software Engineering | 6 | Master course | Fall |
CS 600 – Model-Driven Development | 6 | Master course | Fall |
Im Programmierpraktikum I werden grundlegende Kenntnisse der objektorientierten Programmierung auf Basis der Sprache Java vermittelt. Die Studierenden werden von dieser Sprache vor allem folgende Grundmerkmale und Konzepte kennenlernen:
ECTS: 5
Sprache: Deutsch
Vorkenntnisse: Benutzerkenntnisse eines modernen Betriebssystems
Prüfungsleistung: Programmiertestat
Im Programmierpraktikum II werden die erworbenen Kenntnisse aus der Veranstaltung Programmierpraktikum I erweitert und vertieft. Basierend auf der Programmiersprache Java, werde hier die folgenden Themengebiete vermittelt:
Darüber hinaus werden Werkzeuge für die Teamorientierte Entwicklung größerer Programmpakete vorgestellt. Dazu gehört insbesondere die Entwicklungsumgebung Eclipse.
ECTS: 5
Sprache: Deutsch
Vorkenntnisse: Programmierpraktikum I
Prüfungsleistung: Programmiertestat
This is the practical course accompanying Softwaretechnik I. It teaches students to use their knowledge of the theory of software engineering to develop their own software systems.
The students will receive a set of requirements for a software system just as if they were working on a real industrial project. Their tasks is then to produce a complete software system including a working implementation, a design document, etc. based on the requirements. The students will develop their own solutions in small teams. Each team will have regular meetings to discuss their progress and assign specific tasks to each student in the team.
The goal of this practical course is to gain a far deeper understanding of software engineering than is possible via studies of the theory alone.
ECTS: 5
Language: English
Prerequisites: CS 302 – Praktische Informatik I, CS 307 – Algorithmen und Datenstrukturen, CS 304 – Programmierpraktikum I, CS 305 – Programmierpraktikum II
Evaluation: written report, developed software system, team meetings, colloquia, practical exams, programming projects
This course teaches students about engineering methods and tools for team-oriented development of non-trivial software systems. In particular:
The students learn about key technologies and processes of modern software engineering. After completion of the course they will be able to describe, design and develop complex software systems while accounting for requirements and risks common in industrial projects (e.g. quality, costs, deadlines, etc).
ECTS: 6
Language: English
Evaluation: written exam
Prerequisites: CS 302 – Praktische Informatik I, CS 307 – Algorithmen und Datenstrukturen, CS 304 – Programmierpraktikum I
Recommended: CS 305 – Programmierpraktikum II
The course will provide data scientists with the knowledge they need to be able to apply Python3 in data science projects. It assumes that students are familiar with another object-oriented programming language such as Java, C# or C++, but does not assume any prior Python knowledge.
Topics covered include –
After taking the course, students will be familiar with Python3 and will be able to use it in data science projects. Moreover, students get the opportunity to learn Python interactively using Jupyter notebooks and state-of-the-art tools and libraries.
ECTS: 6
Language: English
Prerequisites: None
Evaluation: written exam (possibly including a programming test)
Participants: MMDS students only
The course deals with the model-based specification of software systems and components as well as their verification, validation and quality assurance. The emphasis is on view-based specification methods that use multiple views, expressed in multiple languages, to describe orthogonal aspects of software systems/
After taking the course, students will be familiar with the latest state-of-the-art techniques for specifying the externally visible properties of a software system/
ECTS: 6
Language: English
Prerequisites: None
Evaluation: written exam
The course focuses on the principles, practices and tools involved in advanced model driven development. This includes established modeling standard languages (e. g. UML, ATL, OCL, etc. ) and modeling infrastructures (e.g. MOF, EMF, etc. ) as well as bleeding edge, state-of-the-art modeling technologies (e. g. LML, PLM, etc.). Key topics addressed include:
After taking the course students will be familiar with the accepted best practices and technologies used in mainstream model-driven development as well as state-of-the-art modeling technologies emerging from research institutions. Students will also know how to apply modeling technologies in real-world projects and will have the capability to analyse, understand and model complex systems.
ECTS: 6
Language: English
Prerequisites: CS 500 – Advanced Software Engineering
Evaluation: written exam