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 |
DS 450 – Programming for Data Scientists | 6 | Master course | Fall |
CS 500 – Advanced Software Engineering | 6 | Master course | Fall |
CS 600 – Model-Driven Development | 6 | Master course | Fall |
CS 630 – Generative Software Engineering | 6 | Master course | Spring |
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.
Topics covered include –
After taking the course, students will be familiar with Python3 and will be able to use it in data science projects.
ECTS: 6
Language: English
Prerequisites: None
Evaluation: written exam
Participants: MMSDS 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
The course introduces the fundamental principles, practices and applications of generative software engineering (GSE) as well as the supporting models, tools and services. Key topics addressed include:
After taking the course students will be familiar with the principles, practices and applications of GSE as well as supporting models, tools and services. Students will have the ability to judge, select, and apply GSE techniques and tools in practical software engineers, as well as the ability to understand academic GSE publications and to perform research in GSE. Students will have improved skills in analytical thinking and applying theoretical knowledge to solve practical problems, especially in the use of AI to enhance software engineering.
ECTS: 6
Language: English
Prerequisites: CS 500 – Advanced Software Engineering (Software Testing and Experimentation)
Recommended: Knowledge of Java and/
Evaluation: written exam
Contact: Marcus Kessel