Practical Lab WS 19/20 Einführung in die Programmiermethoden des Wissenschaftlichen Rechnens
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.):
Ü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.