inf030 - Programming, Algorithms and Data Structures (Course overview)

inf030 - Programming, Algorithms and Data Structures (Course overview)

Department of Computing Science 9 KP
Module components Semester courses Wintersemester 2020/2021 Examination
  • No access 2.01.030 - Programmierung, Datenstrukturen und Algorithmen Show lecturers
    • Dr. rer. nat. Christian Schönberg

    Wednesday: 16:00 - 18:00, weekly (from 21/10/20)
    Friday: 10:00 - 12:00, weekly (from 23/10/20)
    Dates on Tuesday, 16.02.2021 16:30 - 18:30, Monday, 15.03.2021 08:00 - 10:00

    Grundlagen der Objektorientierten Programmierung, effiziente Datenstrukturen und Algorithmen

Hinweise zum Modul

No specialised prior knowledge required.


At the end of the Semester

Module examination

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

Skills to be acquired in this module

Programming is one of the basic activities of computer scientists and a prerequisite for many other courses on the computer science degree programme. The aim of the ‘Programming, Algorithms and Data Structures’ module is to learn the basic concepts of imperative, procedural and object-oriented programming using the Java programming language and to present known, efficient algorithms and data structures for various frequently occurring problems.

After completing the module, students should be able to independently develop imperative and simple object-oriented programmes based on Java to solve small problems and assess the efficiency of their programmes. They should also be able to apply important algorithms and select them based on their complexity.

Subject-related competences

The students

  • describe basic concepts of imperative programming with Java
  • recognise the terminology of imperative programming and use the corresponding terms precisely in discussions
  • recognise basic terminology of object-oriented programming
  • describe what programmes presented to them do
  • develop programmes independently to solve small problems
  • systematically examine their own and other people's programmes for errors
  • use modern programme development environments to develop and test programmes
  • create algorithms with general design concepts (e.g. greedy method, divide-and-conquer method)
  • name algorithms and data structures for solving frequently occurring problems and evaluate their applicability
  • name problems of the efficiency of algorithmic solutions to specific problems and evaluate them
  • select an algorithm and a data structure to solve a specific problem in a well-founded manner
  • apply the algorithms and data structures they have learnt in a meaningful way to given and concrete problems

Methodological competences

The students

  • solve given problems from the point of view of imperative or object-orientated programming
  • transfer practical experience in programme development to new tasks

Social competences

The students

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


The students

  • organise themselves when finding algorithmic solutions for small and medium-sized problems in computer science
  • incorporate the concepts of general programme design into their work