Summer semester 2021

The content on this page was translated automatically.

Due to the Corona Pandemic, all courses of the summer semester 2021 will be held digitally until further notice (as of 27.04.2021).

The entire organization of the courses is done via the learning platform Moodle. If you would like to participate in one of the events listed below, please register for the corresponding Moodle courses; you will find the corresponding link directly at the respective event.

Further information from the University of Kassel on dealing with the Corona virus can be found here, updated daily.

Students learn basic abstract data types of computer science, efficient data structures for their implementation as well as efficient graph and optimization algorithms. They learn to implement such algorithms and data structures in Java and therefore first become familiar with the language and its object-oriented concepts. Students deepen their skills in asymptotic runtime analysis and acquire further skills in algorithm evaluation.

In the accompanying exercises, they apply what they have learned to the design and implementation of their own algorithms and data structures, among other things.

Participant group
Students in the Bachelor of Computer Science and others.


- Lecture

  • Monday, from 14:15-15:45, room 1603
    Lecturer: Prof. Dr. Claudia Fohry
    The first lecture will take place on 12.04.2021.

- Small group exercises

  • Tuesday, 12:15-13:45, Room -1607
    Supervisor: M.Sc. Lukas Reitz
    The first exercise will take place on 13.04.2021
  • Tuesday, 16:00-17:30, Room 1114
    Supervisor: M.Sc. Lukas Reitz
    The first exercise will take place on 13.04.2021
  • Wednesday, 10:00-11:30 a.m., Room -1607
    Supervisor: R├╝diger Nather
    The first exercise will take place on 14.04.2021

Bachelor 4 SWS (6 CP)

For further information please contact Prof. Dr. Claudia Fohry and M.Sc. Lukas Reitz.

Further information about the course can be found in Moodle.

The course first covers the established programming systems OpenMP and MPI in greater depth than in the bachelor's program. Emphasis will be placed on advanced language constructs such as OpenMP tasks, MPI communicators, and hybrid MPI/OpenMP programming. We will discuss the use of these constructs using example applications. The focus is on the design goals of performance and scalability. In addition, some more complex synchronization problems will be discussed.

In the second part of the course, current parallel programming systems will be presented and compared with established systems. Typical approaches of these systems are Partitioned Global Address Space (PGAS) and Task-based Parallel Programming (TaPP). Individual languages will be learned and tested, e.g. Chapel, TBB, HPX and Charm++. In addition, we discuss cross-cutting topics such as design patterns, fault tolerance, and elasticity.

To attend the course, prior knowledge of Parallel Processing 1 and 2 is an advantage, but not mandatory. The course is divided into a lecture and a practical part. The practical part includes the development of programs with the programming systems covered. In the practical course you will typically work in teams of two. The internship, together with a final discussion, forms the basis for the evaluation of the course.

Students in the Master of Computer Science after PO 2010 or 2018. For students after PO 2018, the course can be included in the elective as well as in the concentrations Software Development (as a required course) and Environmental Informatics (as an elective).

Event times:

  • Wednesday, 12:00-13:30, Room 2307A.
  • Thursday, 08:30-10:00 a.m., room 2307A

The first event will take place on Wednesday, 14.04.2021.

Master 4 SWS (6 CP)

Prof. Dr. Claudia Fohry

 Further information about the course can be found in Moodle.

The course covers a selection of parallel algorithms for different problems and architecture classes. First, we learn basic design techniques and runtime estimation techniques using the Parallel Random Access Machine model. Then we look at algorithms for multicore processors and clusters that can be implemented using OpenMP and MPI, respectively. Depending on the prior knowledge and interest of the participants, implementation is also part of the course. The algorithms considered range from regular algorithms for matrix computations to parallel optimization methods and parallel graph algorithms. Finally, algorithms for special scenarios may be covered: fault-tolerant parallel algorithms as well as efficient algorithms for memory hierarchies.

The course will be evaluated on the basis of a project paper with a final examination discussion. The main focus of the project is the own development of efficient algorithms. These algorithms are analyzed with respect to their runtime and, if the participants have the necessary prior knowledge, implemented and evaluated experimentally.

The course complements the courses "Introduction to Parallel Processing" (Bachelor) and "Parallel Programming" (Master), but can also be taken without prior knowledge in parallel programming.

Students in the Master of Computer Science

Course times:

  • Monday, 12:00-13:30, room 2307A
  • Tuesday, 12:00-13:30, room 2307A 

The first event will take place on Monday, 12.04.2021.

Master 4 SWS (6 CP)

Prof. Dr. Claudia Fohry

 Further information about the course can be found in Moodle.