Research Group for Applied Software Engineering
Forschungsgruppe für Angewandte Softwaretechnik

Einführung in die Softwaretechnik / Introduction to Software Engineering (EIST) - Summer 2020

Course Information:

  • Language: English
  • Type: 3V + 2Ü
  • Module: IN0006
  • ECTS Credits: 6
  • Prerequisites: Lab Course - Foundations of Programming (IN0002)
    • Only students, who passed IN0002, can participate in this course
    • You must have a lot of experience with object oriented programming in Java
  • TUM Online: You must register for this course in TUM Online before the course starts
  • Course Material: You can find slides and exercises on Artemis
  • Time and Location:



Tools for Online Course

We worked very hard in the last 4 weeks to create an all online learning environment for EIST that is as close as possible to learning on campus.

We put great emphasis on interactivity during this course and expect you to participate actively throughout the course: during the lecture, tutor groups, team exercises and homework.

We have analyzed many different tools in the last weeks and after carefully evaluating all advantages and disadvantages, we decided to use the following tools to facilitate the all online EIST course:

  1. Live RBG (preferred) and (alternative) for lecture livestream and recordings
  2. Artemis for exercises and additional resources
  3. Slack as our main communication platform
  4. TUM-Conf (Zoom) for virtual tutor groups.

We prepared a PDF tutorial how to use these tools. Please download the PDF and take the time to carefully work through it before the first lecture.

We share more information in the first online lecture on Thursday, April 23, 08:15. Please make sure to attend this lecture!


Online Course - Important Information

This summer semester, we will teach the course Introduction to Software Engineering in an all online format as of the restrictions due to the Coronavirus.

We will live stream the weekly online lectures. We assume that you participate activley in the online exercises during the lecture and in our live chat where you can ask questions during the lecture.
You will also have the opportunity to participate in the tutor groups virtually following an interactive format with team work and presentations. We will provide more information on the course format in the first online lecture on Thursday, April 23, 8:15 - 11:00. Please make absolutely sure to attend this lecture!

We will communicate how to access the live stream shortly before the first lecture.

Important Information

  • Lectures and exercises are based on interaction; we expect active participation (also over the Livestream)!
  • Students can earn a bonus by completing in-class exercises, team exercises and homework successfully
  • You must have your own computer and you are required to use it during the lecture and during the virtual tutor groups!
  • You must have a lot of experience with object oriented programming in Java and with an IDE (e.g., Eclipse, IntelliJ)

Intended Learning Outcomes

After successful completion of this module, students are familiar with the basic concepts and methods of the different phases of a project, e.g. modeling the problem, reuse of classes and components, and delivery of the software. They have the ability to select and apply suitable concepts and methods for concrete problems.

The students know the most important software engineering terms and workflows and are able to analyze and evaluate given problems. In addition, students can solve concrete problems in software engineering, e.g. with the help of design patterns.


Software engineering is the establishment and systematic use of engineering principles, methods, and tools for the division of work, the development and application of extensive, complex software systems. It deals with the production and development of software, the organization and modelling of data structures and objects, and the operation of software systems. Topics of the lecture include, among others:

  • Modeling with UML
  • Process models in software development (linear, iterative, agile)
  • Requirements elicitation and analysis (functional model, dynamic model, and object model)
  • System design (specification, software architecture, architectural patterns, and design goals)
  • Object design and implementation (reuse, design patterns, and interface specification)
  • Testing (component test, integration test, and system test)
  • Software configuration management, build management, and release management
  • Software maintenance and evolution
  • Project organization and communication

Teaching and Learning Methods

By means of slide presentations with animations, the interactive lecture introduces the basic concepts and methods of software engineering and explains them using examples. Small exercises, e.g. quizzes, modeling, and programming tasks, with individual feedback help students to identify whether they have understood the basic concepts and methods.

Accompanying tutorials deepen the understanding of the concepts explained in the lecture by means of suitable team exercises and show the application of the different methods with the help of manageable problems in the different phases of software engineering. Homework enables students to deepen their knowledge in self-study. The presentation of the own solution in the accompanying tutorials improves communication skills, which are essential in software engineering. Individual feedback on homework allows students to measure learning progress and improve their skills.


Lecture with digital slides, livestream, online exercises (programming, modeling, quiz, text) with individual feedback, communication platform for the exchange between instructors, tutors, and students.


Bernd Bruegge, Allen H. Dutoit: Object-Oriented Software Engineering: Using UML, Design Patterns and Java, 3rd Edition, Pearson Education, 2010.


For further questions, please contact us at This email address is being protected from spambots. You need JavaScript enabled to view it..