Curriculum

The curriculum of study of the elite program ‘Software Engineering’ is organized in four terms. The courses are supplemented by soft skill trainings and a individual mentoring. More information about the courses, soft skill trainings and mentoring can be found below.

First Term: Core courses

Accordion Content

This course offers an introduction to current methods in systematic software development. Starting with the software life-cycle, the course deals with the different phases of software development and the currently relevant software development processes. The main focus is the Unified Process and the usage of the UML in the different phases of development. Further topics are testing, design patterns and GUI design.

This course imparts knowledge of the design and operation of database management systems. Starting with the relational data model and its foundation, relational algebra, it continues with modeling and design techniques for databases, query languages, database access from OO-languages like Java and object-oriented databases. Furthermore, it deals with transactions, multi-user synchronization, error handling, etc.

This course introduces the audience to techniques for developing provably correct software. The course starts with techniques for an exact specification of the desired behavior and continues with a logic that can prove the correspondence between implementation and specification.

Project management is a key success factor for software development projects. Challenges for project management are increasing productivity, ensuring quality, and keeping the project within budget and timeframe. This course introduces project management functions, relevant processes and methods and tools, from risk management to estimation methods.

Winter Intersession

Compact courses and soft skill trainings

Second Term: Core and elective courses

Core Courses

Accordion Content

This course introduces fundamental concepts and methods for Distributed Systems development. Key topics are communication (Fundamental Interaction Model, Networks, Protocols and Services, Interprocess Communication), Processes, Synchronization and Coordination (Processes and Threads, Synchronization, Coordination) and Service-Oriented Architecture and Web Services (SOA, Web Services, REST, Web Service Composition).

This course introduces new paradigms for the interaction between humans and computers, the necessary theoretical background of modern interaction paradigms, and specific methods for identifying and interpreting user input and for generating and synchronizing system output. Another important topic is guidelines for usability in the design of interactive systems.

Electives

Accordion Content

This course presents state-of-the-art techniques of safety analysis. Target of these techniques is the analysis of highly security-critical systems and they yield design guidelines to improve safety of these systems. Focus of this course is the increasing importance of software in embedded systems. The lecture starts with traditional safety analysis methods and then moves on to leading-edge techniques which are based on Formal Methods.

Distinct aspects of reactive systems are concurrency, communication and non-termination. This course presents current approaches for modeling and specification of reactive systems and introduces refinement and verification techniques for reliable reactive systems.

Requirements Engineering is a crucial part of every development project. The gathered requirements are the basis of the development, integration and approval of the new system. This lecture starts with an introduction of the goals, responsibilities and topics of Requirements Engineering. It introduces different kinds or requirements, crucial steps in the process, methods and techniques of requirements gathering and the specification of the requirements. Further topics are structured documentation of requirements, use case and scenario modeling, non-functional requirements, requirements management and system models in Requirements Engineering.

Model-based software development aims to describe (as far as possible) software systems through (semi-) formal models and generate as many artifacts as possible from those models. This lecture gives an overview of model-based software engineering, focusing on the following main points: Modeling, meta-modeling, transformation, and code generation.

Implementation of Database Systems with respect to modern hardware: Storage Layer, Access Paths, Transactions, Set-Oriented Query Processing, Algebraic Operators. Understand the interaction between database system algorithms and modern computer architecture (esp. CPU, Cache, Primary Storage) and learn how to develop and modify the internals of database systems in order to make use of the properties of these computer architecture features.

Software Testing serves the evaluation and improvement of product quality by identifying problems and deficiencies. The course introduces the fundamentals of software testing, describes its position in the software development process and discusses test methods and tools as well as methods for test management.

Summer Intersession

Internship at an industry partner and soft skill trainings

Third Term: Elective courses and seminars

Accordion Content

The topic of this lecture is software architectures for distributed systems (software architectures and organizations, software architecture design, documentation of software architectures and evaluation of software architectures), semantic technologies (semantic web, ontology languages for the semantic web, description logics, reasoning with OWL and description logic reasoning) and multi-agent systems(intelligent agents, agent architectures, reactive and hybrid agents, approaches for decision finding, interaction in multi-agent systems and negotiation and coordination and cooperation through communication).

Embedded systems are designed, integrated and operated in a technical environment for a specific purpose. Examples of embedded systems application fields are automobiles, airplanes, home appliances, mobile communication and consumer electronics. This lecture gives an overview of the design, implementation and technical environment of embedded systems.

Because of the increasing pervasiveness of computers in all aspects of life and their embedding in the user’s natural environment, shaping human-computer interaction is an increasingly important challenge. This lecture presents design principles and standards, the human information-, activity- and perception processes, a user-centered development process and methods for evaluating interactive systems.

In many cases, databases are accessible to the user via web-based interfaces; examples are online shopping and web banking. A large number of users and the distribution of the application on different hard- and software systems like web servers, database servers, application servers, etc., led to the development of special software architectures and development paradigms. This lecture presents current programming languages, technologies and architectures for modern web-based information systems.

The course presents basic techniques for organizing and efficiently analyzing large amounts of data. The course discusses methods of distributed storage, distributed and parallel data processing, statistics-based optimization, map/reduce as well as different database implementations to support the analysis.

The course differentiates classical Artificial Intelligence from Machine Learning and discusses their application in the industry (e.g., Industry 4.0, Smart Factories, Smart Grids). The course presents different models and methods of AI, e.g., decision trees, regression, numerical optimization, and machine learning techniques.

This course introduces fundamental concepts, techniques, methods and applications for IT security. Among other topics, the lecture covers threats and attacks on IT systems and goals of IT security, like integrity, secrecy and availability, cryptography, access control, authentication, network security and security engineering.

Three classical approaches to programming language semantics are discussed: In operational semantics, the meaning of a programming language construct is determined by how it is to be executed and what effects it leads to. In denotational semantics, the specific mode of execution is abstracted from, and only the effect of a construct is considered. Finally, in the axiomatic approach, the effect of a construct is specified by assurances. A simple, imperative WHILE language serves as an example language for the different semantic approaches, which will be extended by syntactic constructs in the course of the lecture.

Winter Intersession

Compact courses and soft skill trainings

Fourth Term: Individual study and Master thesis

In arrangement with the Mentor, a study program adjusted to the individual abilities and interests of the respective student is integrated into the education. The individual study program leads to the Master’s thesis and may include a stay abroad, research work, or work on a project of an industrial partner.

You have any questions about the curriculum?

Reach out to us via mail at [email protected] or give us a call: +49 (0)821 / 5 98 21 78

Explore the places where former students have been for a research stay, Master Thesis or an industrial internship.

Soft Skills

The education in the elite program should enable the graduates to adopt leading positions in industry and research. The ability to work in a team, competencies as a leader and knowledge in rhetorics are essential requirements. The elite program is accompanied by education in those soft skills. Those courses will be held in summer schools and will take approximately two weeks.
The following courses are presumably part of the education in the elite program:

  • Leadership (three days)
  • Team Work and Conflicts in Teams (two days)
  • Presentation Techniques (two days)
  • Intercultural Communication (two days)
  • Authors Workshop (two days)
  • Change Management (two days)
  • Moderation Techniques (two days)

Mentoring

The highest value is put on individual and intensive support of the students in the context of the elite program.

During the study in the elite program, each student will be supported by a mentor from science or industry. This mentor consults the student and supports him in all ranges of the program. This covers the planning of the study, the choice of courses, internships and industrial projects, as well as a stay abroad and support with the planning of the later career.

Mentors are leading decision-makers of the affiliated industrial partners and the professors of the elite program.