Sommersemester 2021

Aufgrund der Corona Pandemie finden alle Veranstaltungen des Sommersemesters 2021 bis auf weiteres digital statt (Stand 27.04.2021).

Die gesamte Organisation der Lehrveranstaltungen erfolgt über die Lernplattform Moodle. Wenn Sie an einer der u.a. Veranstaltungen teilnehmen möchten, melden Sie sich bitte zu den entsprechenden Moodlekursen an, den entprechenden Link finden Sie direkt bei der jeweiligen Veranstaltung.

Weitere Informationen der Uni Kassel zum Umgang mit dem Corona-Virus finden Sie tagesaktuell hier.
 

 

Die Studierenden lernen grundlegende abstrakte Datentypen der Informatik, effiziente Datenstrukturen für ihre Implementierung sowie effiziente Graph- und Optimierungsalgorithmen kennen. Sie lernen, derartige Algorithmen und Datenstrukturen in Java zu implementieren und machen sich deshalb zunächst mit der Sprache und ihren objektorientierten Konzepten vertraut. Die Studierenden vertiefen ihre Fertigkeiten in der asymptotischen Laufzeitanalyse und erwerben weitere Fertigkeiten in der Bewertung von Algorithmen.

In den begleitenden Übungen wenden sie das Gelernte unter anderem auf den Entwurf und die Implementierung eigener Algorithmen und Datenstrukturen an.

Teilnehmerkreis
Studierende im Bachelor Informatik u.a.

Termine

• Vorlesung

  • Montag, von 14:15-15:45 Uhr, Raum 1603
    Dozentin: Prof. Dr. Claudia Fohry
    Die erste Vorlesung findet am 12.04.2021 statt.

• Kleingruppenübungen

  • Dienstag, 12:15-13:45 Uhr, Raum -1607
    Betreuer: M.Sc. Lukas Reitz
    Die erste Übung findet am 13.04.2021 statt
     
  • Dienstag, 16:00-17:30 Uhr, Raum 1114
    Betreuer: M.Sc. Lukas Reitz
    Die erste Übung findet am 13.04.2021 statt
     
  • Mittwoch, 10:00-11:30 Uhr, Raum -1607
    Betreuer: Rüdiger Nather
    Die erste Übung findet am 14.04.2021 statt

Umfang
Bachelor 4 SWS (6 CP)

Für weitere Auskünfte stehen Ihnen Frau Prof. Dr. Claudia Fohry und Herr M.Sc. Lukas Reitz gern zur Verfügung.

Weitere Informationen zur Veranstaltung finden Sie in Moodle.

 

Die Veranstaltung behandelt zunächst die etablierten Programmiersysteme OpenMP und MPI in größerer Tiefe als im Bachelorstudium. Der Schwerpunkt wird auf fortgeschrittene Sprachkonstrukte wie OpenMP-Tasks, MPI-Kommunikatoren und hybride MPI/OpenMP-Programmierung gelegt. Wir diskutieren den Einsatz der Konstrukte anhand von Beispiel-anwendungen. Dabei stehen die Entwurfsziele Performance und Skalierbarkeit im Vordergrund. Außerdem werden einige komplexere Synchronisationsprobleme besprochen.

Im zweiten Teil der Veranstaltung werden aktuelle parallele Programmiersysteme vorgestellt und mit den etablierten Systemen verglichen. Typische Herangehensweisen dieser Systeme sind der Partitioned Global Address Space (PGAS) und die Taskbasierte Parallele Programmierung (TaPP). Einzelne Sprachen werden erlernt und erprobt, z.B. Chapel, TBB, HPX und Charm++. Daneben diskutieren wir Querschnittsthemen wie Entwurfsmuster, Fehlertoleranz und Elastizität.

Für den Besuch der Veranstaltung sind Vorkenntnisse aus Parallelverarbeitung 1 und 2 von Vorteil, aber nicht zwingend erforderlich. Die Veranstaltung gliedert sich in einen Vorlesungs- und einen Praktikumsteil. Der Praktikumsteil umfasst die Entwicklung von Programmen mit den behandelten Programmiersystemen. Im Praktikum arbeiten Sie typischerweise in Zweierteams. Das Praktikum bildet zusammen mit einem Abschlussgespräch die Basis für die Bewertung der Veranstaltung.

Teilnehmerkreis:
Studierende im Master Informatik nach PO 2010 oder 2018. Für Studierende nach PO 2018 kann die Veranstaltung sowohl im Wahlpflichtbereich als auch in die Schwerpunkte Softwareentwicklung (als Pflichtveranstaltung) und Umweltinformatik (als Wahlpflichtveranstaltung) eingebracht werden.

Veranstaltungszeiten:

  • Mittwoch, 12:00-13:30 Uhr, Raum 2307A
  • Donnerstag, 08:30-10:00 Uhr, Raum 2307A

Die erste Veranstaltung findet am Mittwoch, 14.04.2021 statt.

Umfang
Master 4 SWS (6 CP)

Dozentin:
Prof. Dr. Claudia Fohry

 Weitere Informationen zur Veranstaltung finden Sie in Moodle.

Die Veranstaltung behandelt eine Auswahl paralleler Algorithmen für verschiedene Probleme und Architekturklassen. Zunächst lernen wir anhand des Modells der Parallel Random Access Machine grundlegende Entwurfstechniken und Techniken für die Laufzeitabschätzung kennen. Danach betrachten wir Algorithmen für Mehrkernprozessoren und Cluster, die sich mittels OpenMP bzw. MPI umsetzen lassen. Je nach Vorkenntnissen und Interesse der Teilnehmer ist die Umsetzung ebenfalls Bestandteil der Veranstaltung. Die betrachteten Algorithmen reichen von regulären Algorithmen für Matrixberechnungen über parallele Optimierungsverfahren bis zu parallelen Graphalgorithmen. Abschließend werden evtl. noch Algorithmen für spezielle Szenarien behandelt: fehlertolerante parallele Algorithmen sowie effiziente Algorithmen für Speicherhierarchien.

Die Bewertung der Veranstaltung erfolgt auf Basis einer Projektarbeit mit abschließendem Prüfungsgespräch. Schwerpunkt des Projekts ist die eigene Entwicklung effizienter Algorithmen. Diese werden bezüglich ihrer Laufzeit analysiert sowie, bei entsprechenden Vorkenntnissen der Teilnehmer, implementiert und experimentell bewertet.

Die Veranstaltung ergänzt die Veranstaltungen "Einführung in die Parallelverarbeitung" (Bachelor) und "Parallele Programmierung" (Master), kann aber auch ohne Vorkenntnisse in paralleler Programmierung belegt werden.

Teilnehmer
Studierende im Master Informatik

Veranstaltungszeiten:

  • Montag, 12:00-13:30 Uhr, Raum 2307A
  • Dienstag, 12:00-13:30 Uhr, Raum 2307A 

Die erste Veranstaltung findet am Montag, 12.04.2021 statt.

Umfang
Master 4 SWS (6 CP)

Dozentin:
Prof. Dr. Claudia Fohry

 Weitere Informationen zur Veranstaltung finden Sie in Moodle.