teaching:sommersemester_2020:softwareentwicklung_in_der_wissenschaft

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

Ort DKRZ, Raum 034
Zeit Montag 14:15 - 15:45 oder Montag 16:15 - 17:45
Vorbesprechung Montag 06.04.2020 14:15
Mailingliste SIW-20

Dozenten

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.

Einführungs-Vortrag

Abschließend soll aus den Ausarbeitungen ein Bericht generiert werden. Das LaTeX-Template hierzu wird von uns vorgegeben.

14:15 - 15:45

16:15 - 17:45

  • 11.05.
    • Moderne Programmiersprachen: Rust 18) - Christian Willner Vortrag
      • 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] 19) - Christian Wolff Vortrag
  • 18.05.
    • Buildsysteme: CMake 20)
      • Inhalt: Motivation, Vergleich mit anderen Buildsystemen (siehe Meson-Thema), Benutzung, kleines Beispiel
    • Buildsysteme: Meson 21) - Erik Alaverdyan Vortrag
      • Inhalt: Motivation, Vergleich mit anderen Buildsystemen (siehe CMake-Thema), Benutzung, kleines Beispiel
  • 25.05.
  • 08.06.
    • Python: Datenverarbeitung mit numpy/pandas/matplotlib 24) - Larissa Lach Vortrag
    • Python: Probabilistic programming (Paper) 25) - Katja Neumann Vortrag
  • 15.06.
  • 22.06.
    • Machine Learning: Generative Adversarial Networks (GANs) (Paper) 28) - Hergen Lehmann
    • Continuous Integration 29) – Finn Welker Vortrag
      • Inhalt: Motivation, Möglichkeiten von CI (automatisierte Tests, Publizieren von Artefakten), CI-Frameworks (z. B. GitHub Actions, Drone CI, CircleCI)
  • 29.06.
    • Softwareverwaltung: Container 30) - Pascal Kröger Vortrag
      • Inhalt: Motivation, Technologien (Docker, Podman), Nutzungsszenarien
    • Softwareverwaltung: EasyBuild 31)
      • Inhalt: Motivation, Vergleich mit anderen Softwareverwaltungstools (siehe Spack-Thema), Benutzung
  • 06.07.
    • Numerische Reproduzierbarkeit und parallele Berechnungen (Paper) 32) - Karl Ihlenfeldt Vortrag
    • Numerische Reproduzierbarkeit: Konzept für bit-genaue Anwendungen. (Paper) 33) – Laura Wenderoth Vortrag
  • 13.07.
    • Softwareverwaltung: Container 34) - Pascal Kröger Vortrag
      • Inhalt: Motivation, Technologien (Docker, Podman), Nutzungsszenarien

Offene Themenliste

  • 14: Software-Dokumentationstool: Doxygen & Sphinx (Quelle1) (Quelle2)35)
  • 16: Software Parallelisierung: OpenMP (Quelle1) (Quelle2) [English Only]36)
  • 17: Software Parallelisierung: A Case Study for Performance Portability using OpenMP 4.5 (Paper) [English Only]37)
  • 18: Software Parallelisierung: Integrating GPU support for OpenMP offloading directives into Clang (Paper) [English Only]38)
  • 34: LLVM: Umgang mit dem AST 39)
  • 35: LLVM: Pass-Programmierung 40)
  • 36: LLVM: Profiling mit DiscoPoP (Paper)41)
  • 37: Post-Compiler Optimierungen (BOLT, Propeller [ Quelle 1, Quelle 2 ]) 42)
  • 38: Reproduzierbarkeit: Wie ein mehr davon? (Paper)43)
  • 43: Variational Autoencoder (Paper1),(Paper2) 44)
1) , 4) , 18) , 20) , 21) , 29) , 30) , 31) , 34)
Michael Kuhn
2) , 3) , 7) , 8) , 9) , 14) , 15) , 17) , 23) , 35)
Hermann Lenhart
5) , 6) , 10) , 13) , 22) , 24) , 26) , 27) , 39) , 40) , 41) , 42)
Jannek Squar
11) , 12) , 25) , 28) , 44)
Tobias Finn
16) , 19) , 36) , 37) , 38)
Georgiana Mania
32) , 33) , 43)
Petra Nerge
teaching/sommersemester_2020/softwareentwicklung_in_der_wissenschaft.txt · Last modified: 2020-07-31 18:12 (external edit)