Skip to main content

Practical Lab WS 19/20 Einführung in die Programmiermethoden des Wissenschaftlichen Rechnens

Under direction of
Prof. Marc Alexander Schweitzer
Assistants
Clelia Albrecht and Albert Ziegenhagel
Termine
Immer Mittwochs von 14:15 – 16:00
Ort
Praktikumsraum 2.041 im Neubau, Endenicher Allee 19b
Vorbesprechung
Mittwoch, 09.10.2018 um 14:15, am regulären Ort der Veranstaltung

Die Vorlesung beinhaltet ungefähr wöchentlich alternierend einen Theorie- und einen Praxisteil

Inhalt und Ziele der Vorlesung

In der modernen numerischen Softwareentwicklung werden je nach Anwendung unterschiedliche Programmiersprachen verwendet, wobei Python, C und C++ zu den am weitesten verbreiteten gehören. Zudem gibt es eine Vielzahl weiterer Werkzeuge, die die Entwicklungsarbeit organiseren oder sie sogar übernehmen, wie Versionskontrolle, Buildsysteme und die Nutzung externer Bibliotheken. Sowohl diese Arbeitsprozesse als auch die oben stehenden Programmiersprachen werden anhand der in anderen Lehrveranstaltungen vermittelten numerischen Verfahren illustriert. Das Praktikum ist aber auch für Anfänger geeignet, die noch keine oder wenig einschlägige numerische Kenntnisse besitzen.

Im einzelnen werden behandelt

  • Grundlegende Kontrollstrukturen und Programmierkonzepte anhand der Programmiersprache Python
  • Hardwarenahe und damit besonders effiziente Programmierung in C
  • Eine Einführung in moderne Programmierung in C++
  • Versionskontrolle und Organisation von Softwareentwicklung in Teams mit Hilfe von git
  • Das Buildsystem cmake
  • Parallelisierung mit MPI

Die theoretischen Grundlagen werden alle zwei Wochen in der Vorlesung vermittelt. Alternierend dazu gibt es eine Praxis-Vorlesung, in der auch individuell auf Fragen zu den Übungsaufgaben eingegangen wird.

Die benötigte Software kann leicht auf dem eigenen Rechner unter Windows, macOS oder Linux installiert werden. Für die Teilnehmer stehen am INS auch moderne Workstations unter Linux und ein großes Linux-Cluster zur Verfügung.

Folien

Der aktuellen Stand der Folien zur Vorlesung findet sich hier (zuletzt geupdatet am 16.10.2019.):

00_introduction.pdf

01_python.pdf

02_c_language.pdf

03_cpp_language_part_1.pdf

04_cpp_language_part_2.pdf

05_mpi_pybind11.pdf

Übungsaufgaben

Die Vorlesung beinhaltet nicht nur einen Theorie- sondern auch einen Praxisteil. Alternierend werden so alle zwei Wochen theoretische Grundlagen vermittelt, oder Programmieraufgaben gelöst. Nach den Theorieterminen werden Übungsblätter ausgeteilt, die zu Hause und auch während den Praxiseinheiten gelöst werden. Auf Fragen kann vor Ort somit effektiv eingegangen werden.

Die Abgabe erfolgt einzeln oder in Gruppen von 3 Personen, je nach Aufgabe.

Abgabe bis zum Start der Vorlesung am 16.10.2019: exercise_sheet_00.pdf

Abgabe bis zum Start der Vorlesung am 30.10.2019: exercise_sheet_01.pdf

Abgabe bis zum Start der Vorlesung am 13.11.2019: exercise_sheet_02.pdf Korrigierte Dateien: io.h io.c

Abgabe bis zum Start der Vorlesung am 27.11.2019: exercise_sheet_03.pdf

Abgabe bis zum Start der Vorlesung am 18.12.2019: exercise_sheet_04.pdf

Abgabe bis zum Start der Vorlesung am 15.01.2020: exercise_sheet_05.pdf

Abgabe bis zum Start der Vorlesung am 29.01.2020: exercise_sheet_06.pdf

Anmeldung

Die Anmeldung zum Programmierpraktikum muss zu den üblichen Fristen der Uni über Basis vorgenommen werden (unter »Prüfungsan- und -abmeldung«). Infos hierzu nochmal am ersten Termin.

Prüfung

Die während des Praktikums erbrachten Leistungen gehen in die Abschlussnote mit ein. Zusätzlich wird die Veranstaltung am Ende des Semesters mündlich geprüft.