Practical Lab WS 18/19 Praktikum: Programmiermethoden des Wissenschaftlichen Rechnens
Praktikum: Programmiermethoden des Wissenschaftlichen Rechnens
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.):
Ü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.