Table of Contents
Proseminar „Softwareentwicklung in der Wissenschaft“
Beschreibung
Im Seminar werden wir die Softwareentwicklung in der Wissenschaft diskutieren. Im Detail der Prozess von der wissenschaftlichen Fragestellung über die Modellierung und Programmierung bis hin zur Analyse der Ergebnisse. Hierzu werden Softwareentwicklungswerkzeuge und Mechanismen vorgestellt und deren Umsetzung in der bestehenden Praxis analysiert.
Die Lehrmaterialien sind typischerweise in englischer Sprache.
Beachten Sie auch unsere allgemeinen organisatorischen Hinweise zu Seminaren.
Zielgruppe
Das Proseminar eignet sich für Studierende im Bachelortudiengängen mit Bezug zur Informatik sowie als Seminar im Masterstudiengang in den Geowissenschaften. Wir fordern explizit Studierende der angewandten Informatik zur Teilnahme auf beispielsweise Bioinformatik, Wirtschaftsinformatik sowie Geowissenschaftler. Für Studierende der Informatik und Geowissenschaften wird die Anrechnung innerhalb des Studiums problemlos möglich, Studierende anderer Studiengänge müssen die Anrechnung mit dem jeweiligen Prüfungsausschuss klären.
Interessierte Zuhörer sind auch herzlich willkommen.
Daten der Veranstaltung
Dozenten
- Dr. Hermann Lenhart (Ansprechpartner)
Theorie
Vertiefende Vorträge zu Einzelaspekten der Softwareentwicklung in der Wissenschaft, z.B:
- Modellierung und Simulation
- Leistungsanalyse und Effizienz
- Auswahl der Numerik und Algorithmen
- Algorithm Engineering
- Verifikation, und Validierung:
- Assesment of Accuracy and Reliability
- Qualität von berechneten Lösungen (floating point Repräsentation), Conditionierung
- Computer-assisted Proofs and Self-Validating Methods
- General Methods for Implementing Reliable and Correct Software
- Design and execution of validation experiments
- Solution Verification & Fehlerquellen
- Software Engineering
- …
Zeitplan
Nach der Festlegung der Themen soll der Inhalt mit dem jeweiligen Betreuer diskutiert werden.
Abschließend soll aus den Ausarbeitungen ein Bericht generiert werden. Das LaTeX-Template hierzu wird von uns vorgegeben.
14:15 - 15:45
- 11.05.
-
- Inhalt: Motivation, Arten von Tests (Vor- und Nachteile), Test-Frameworks (z. B. Google Test, Test Anything Protocol)
-
- 18.05.
- 25.05.
- Grundlegendes Python Setup (venv, pip, argparse, yaml config files) 5) - Jonas Lefert Vortrag Ausarbeitung
- 08.06.
- 15.06.
- Cloud Computing in der Wissenschaft (Quelle1)(Quelle2) 8) - Maximilian Marquardt Vortrag,Ausarbeitung
- 22.06.
- 29.06.
- 06.07.
- 13.07.
- Software-Tool für “interactive data science and scientific computing”: Jupyter Notebook (Quelle1) (Quelle2) 16) - Khorshid Biria Vortrag,Ausarbeitung
16:15 - 17:45
- 11.05.
-
- Inhalt: Motivation, grundlegende Syntax, Unterschiede zu anderen Sprachen (Vor- und Nachteile), kleines Beispielprogramm (z. B. C vs. Rust)
- Moderne Programmiersprachen: Clojure (Quelle1)(Tutorial online book - Part I and II) [English Only] 18) - Christian Wolff Vortrag,Ausarbeitung
-
- 18.05.
-
Inhalt: Motivation, Vergleich mit anderen Buildsystemen (siehe Meson-Thema), Benutzung, kleines Beispiel
-
- Inhalt: Motivation, Vergleich mit anderen Buildsystemen (siehe CMake-Thema), Benutzung, kleines Beispiel
-
- 25.05.
- 08.06.
- 15.06.
-
- Inhalt: Motivation, Vorgehensweise, Leistungsmetriken, Statistik (siehe z. B. Basis Benchmark Statistics)
- 12 Regeln für statistisch korrektes Benchmarking (Paper)
-
- 22.06.
-
- Inhalt: Motivation, Möglichkeiten von CI (automatisierte Tests, Publizieren von Artefakten), CI-Frameworks (z. B. GitHub Actions, Drone CI, CircleCI)
- 29.06.
-
Inhalt: Motivation, Vergleich mit anderen Softwareverwaltungstools (siehe Spack-Thema), Benutzung
-
- 06.07.
- Numerische Reproduzierbarkeit und parallele Berechnungen (Paper) 30) - Karl Ihlenfeldt Vortrag,Ausarbeitung
- Numerische Reproduzierbarkeit: Konzept für bit-genaue Anwendungen. (Paper) 31) – Laura Wenderoth Vortrag,Ausarbeitung
- 13.07.
-