Skip to main content

Practical Lab WS 18/19 Praktikum: Programmiermethoden des Wissenschaftlichen Rechnens

Praktikum: 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
Besprechung
Mittwoch, 10.10.2018 um 14:15, am regulären Ort der Veranstaltung

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

Inhalt und Ziele der Vorlesung

Zur Umsetzung der Verfahren des wissenschaftlichen Rechnens werden die unterschiedlichsten Programmiersprachen und Programmpakete verwendet. In diesem Praktikum sollen eine Reihe der verbreitesten Ansätze und Methoden systematisch diskutiert werden. Diese 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. Sowohl Bachelor- als auch Masterstudenten sind willkommen.

Im einzelnen werden behandelt

  • Eine kurze Einführung in die mathematische Berechenbarkeitstheorie und
    die Wirkungsweise moderner Digitalrechner.
  • Systematische Einführung in Python, eine gut strukturierte leistungsfähige Sprache, an der die gängigen Programmierparadigment prozedural, funktional und objektorientiert erläutert werden können.
  • Speziell für numerische Berechnungen sollen auch die Erweiterungen Numerical Python, Scientific Python sowie Matplotlib zur graphischen Darstellung betrachtet werden.
  • Das Paket SymPy, das symbolische Lösungsmethoden analog zu den komemrziellen Computeralgebra-Systemen Maple oder Mathematica beinhaltet.
  • C und die darauf basierende objektorientierte Erweiterung C++, die eine maschinennahe und daher besonders effiziente Programmierung ermöglichen.
  • MATLAB als Beispiel für eine integrierte Programmierumgebung, die für die verschiedensten Bereiche des wissenschaftlichen Rechnens umfangreiche Bibliotheken bereitstellt.
  • Maple, ein Computeralgebrasystem, mit der u.a. symbolische Ausdrücke ausgewertet, z.B. Funktionen differenziert oder integriert werden können.
  • Das FEniCS Project, eine sowohl in Python wie auch in C++ verwendbare Programmsammlung zur automatischen Lösung von Differentialgleichungen nach der Methode der finiten Elemente. Dieser Themenbereich richtet sich insbesondere an Masterstudenten und wird für Bachelorstudenten nicht prüfungsrelevant sein.

Die Grundlagen werden in einem Vorlesungsteil alle zwei Woche vermittelt. Alternierend hierzu werden Programmieraufgaben zusamen gelöst. Der Arbeitsaufwand für die Arbeitsblätter beträgt ca. 4–6 Stunden pro Woche. Für die Teilnehmer stehen am INS moderne Workstations unter Linux und ein großes Linux-Cluster zur Verfügung.

Python und alle benötigten Pakete können aber auch leicht auf dem heimischen Rechner unter Windows, Mac OS X oder Linux installiert werden.

Folien

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

python.pdf

c_language.pdf

cpp_language.pdf

parallelization.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 Lösungen der Aufgaben sind innerhalb von zwei Wochen (also bis zum nächsten Theorietermin) an Clelia Albrecht UND Albert Ziegenhagel zu schicken.

Die Abgabe soll in Gruppen von 3 Personen erfolgen.

Um die Schwierigkeit und Menge der Aufgaben für das nächste Semester anpassen zu können, bitten wir alle Teilnehmer die aufgewendete Zeit zum Lösen zu erfassen und uns mitzuteilen.

exercise_sheet_00.pdf Abgabe bis zum Start der Vorlesung am 31.10.2018
exercise_sheet_01.pdf Abgabe bis zum Start der Vorlesung am 14.11.2018. Zusaetzliche Dateien: read.c, test_matrix.txt, test_rhs.txt
exercise_sheet_02.pdf Abgabe bis zum Start der Vorlesung am 28.11.2018. Zusaetzliche Dateien: b_spline_interpolation.txt
exercise_sheet_03.pdf Abgabe bis zum Start der Vorlesung am 12.12.2018
exercise_sheet_04.pdf Zusaetzliche Dateien: driven_cavity_input.txt
exercise_sheet_05.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 Veranstaltung wird mündlich am Ende des Semesters geprüft.