inf031 - Object-oriented Modelling and Programming (Complete module description)

inf031 - Object-oriented Modelling and Programming (Complete module description)

Original version English PDF Download
Module label Object-oriented Modelling and Programming
Modulkürzel inf031
Credit points 9.0 KP
Workload 270 h
Institute directory Department of Computing Science
Verwendbarkeit des Moduls
  • Bachelor's Programme Business Informatics (Bachelor) > Basiscurriculum
  • Bachelor's Programme Computing Science (Bachelor) > Basismodule
  • Bachelor's Programme Economics and Business Administration (Bachelor) > Studienrichtung Wirtschaftsinformatik
  • Bachelor's Programme Mathematics (Bachelor) > Nebenfachmodule
  • Dual-Subject Bachelor's Programme Computing Science (Bachelor) > Basismodule
Zuständige Personen
  • Schönberg, Christian (module responsibility)
  • Lehrenden, Die im Modul (Prüfungsberechtigt)

Useful subject-specific prior knowledge:

  • imperative programming with Java
  • basics of object orientation (classes and objects)
  • fundamentals of algorithms (complexity, solution methods)


This prior knowledge can be acquired, for example, in the module inf030 Programming, Algorithms and Data Structures. There are no formal prerequisites for participation.

Skills to be acquired in this module

Object-orientation is the state of the art in software development today. Given problems are first converted into an object-oriented model and then into an object-oriented programme with the help of object-oriented analysis and design methods. The aim of the ‘Object-oriented Modelling and Programming’ module is to learn the basic concepts of object-oriented modelling using UML as a modelling notation and object-oriented programming using the Java programming language. After completing the module, students should be able to independently develop object-oriented programmes based on Java to solve medium-sized problems.

Subject-related competences

The students

  • know basic concepts of object-oriented modelling and UML as a modelling notation
  • know basic concepts of object-oriented programming with Java
  • know the terminology of object-oriented modelling and programming and use the corresponding terms precisely in discussions
  • can describe what object-oriented programmes presented to them do
  • develop models and programmes independently to solve medium-sized problems
  • systematically examine their own and other people's models and programmes for errors
  • use modern development environments for modelling and developing programs
  • know the differences between the imperative, object-oriented, functional, logical and rule-based programming paradigms

Methodological competences

The students

  • independently develop programs for given problems by consistently applying the concepts of object-oriented modelling and programming
  • transfer practical experience in programme development to new tasks
  • develop programmes with concurrency independently
  • can independently apply known solution methods to complex problems

Social competences

The students

  • communicate the structure and mode of operation of self-developed models and programmes to others
  • present independently developed solutions to small tasks to groups


The students

  • organise themselves when developing models and programs for small and medium-sized problems in computer science
  • incorporate the concepts of object-oriented programme design into their work
Module contents

In the first part, basic concepts of object-oriented modelling and programming are taught:

  • models and modelling
  • UML class diagrams
  • classes and objects
  • data encapsulation
  • inheritance
  • polymorphism and dynamic binding
  • exception handling
  • genericity


In the second part, important concepts and classes of the JDK class library are introduced and the classes are used to solve medium-sized problems:

  • Java Collection API
  • I/O and streams
  • parallel programming with threads
  • GUI applications with JavaFX


In the third part, advanced solution strategies are presented and further programming paradigms are introduced and compared with the object-oriented paradigm:

  • backtracking, branch and bound, greedy
  • local search, evolutionary algorithms
  • functional programming (e.g. Java-Lamdas, Standard ML)
  • logical programming (e.g. Prolog)
  • rule-based programming (e.g. RuleBook)


The lecture part is supplemented by a comprehensive exercise part, in which the content taught is implemented using practical examples. 



  • Lecture Notes (made available via Stud.IP during the course of the lecture)

Recommended secondary literature

  • Heide Balzert: Lehrbuch der Objektmodellierung: Analyse und Entwurf mit der UML 2, Spektrum Akademischer Verlag
  • Dietmar Ratz, Jens Scheffler, Detlev Seese, Jan Wiesenberger: Grundkurs Programmieren in Java, Carl Hanser Verlag.
  • Christian Ullenboom: Java ist auch eine Insel: Programmieren lernen mit dem Standardwerk für Java- Entwickler, Rheinwerk Computing
  • Christian Ullenboom: Java SE 8 Standard-Bibliothek: Das Handbuch für Entwickler, Rheinwerk Computing
Language of instruction German
Duration (semesters) 1 Semester
Module frequency every summer term
Module capacity unlimited
Teaching/Learning method 1V + 1Ü
Previous knowledge Nützlichle Vorkenntnisse: inf030 Programmierung, Datenstrukturen und Algorithmen
Form of instruction Comment SWS Frequency Workload of compulsory attendance
Lecture 4 SoSe 56
Exercises 2 SoSe 28
Präsenzzeit Modul insgesamt 84 h
Examination Prüfungszeiten Type of examination
Final exam of module

At the end of the Semester.

written exam / portfolio (short written exams) / oral exam