Nach einem allgemeinen Überblick zur Informatik konzentriert sich die Veranstaltung auf das Erlernen des Programmierens am Beispiel der Sprache Java. Sie vermittelt sowohl praktische Fertigkeiten bei der Erstellung eigener kleiner Java-Programme als auch grundlegende, sprachunabhängige Konzepte der Programmstrukturierung und -implementierung. Dazu gehören beispielsweise Ausdrücke vs. Anweisungen, Datentypen, Methoden mit Parameterübergabemechanismen, Compiler vs.  Interpreter, Speicherbereiche und Rekursion. Außerdem erhalten die Studierenden einen ersten Einblick in die Java-Klassenbibliothek; in objektorientierte, funktionale und parallele Programmierung sowie in Python als weitere Programmiersprache.

 Beispielprogramme setzen unter anderem bekannte Such- und Sortierverfahren um. Hintergrundinformationen dazu umfassen das Entwurfprinzip des Divide-and-Conquer und die asymptotische Laufzeitbewertung mit Hilfe der O-Notation. Des Weiteren werden Ansätze zur Sicherstellung der Korrektheit von Programmen wie Assertions und Debugging diskutiert. In den praktischen Übungen wird großer Wert auf die Entwicklung eines guten Programmierstils gelegt.


Die Veranstaltung beginnt mit einer Einführung zu Gegenstand, Anwendungsgebieten und Grundbegriffen des parallelen Rechnens. Wir behandeln Entwurfstechniken für parallele Algorithmen (z.B. paralleles Divide-and-Conquer) sowie allgemeine Anforderungen an den Entwurf effizienter Programme (z.B. Cacheoptimierung).

Anhand von drei exemplarischen Programmiersystemen werden dann im Hauptteil Grundkenntnisse zur parallelen Programmierung vermittelt:

  • OpenMP für Rechner mit gemeinsamem Speicher,
  • APGAS für Java" für Rechner mit verteiltem bzw. hybridem Speicher und
  • CUDA für GPUs.


In die Veranstaltung sind zwei Praktikumsabschnitte integriert, in denen die Teilnehmer in Zweierteams Programmieraufgaben lösen. Die Ergebnisse werden anschließend in Prüfungsgesprächen vorgestellt und bilden die Basis für die Bewertung der Veranstaltung.

Die Veranstaltung ersetzt die bisherigen Veranstaltungen PV1 und PV2.