Inhalte der Vorlesung

Inhalte der Vorlesung PC-V „Programmierkonzepte in den Naturwissenschaften“ an der Universität des Saarlandes im Sommersemester 2020.

Übersicht

  1. Motivation
    • Naturwissenschaften: Datenverarbeitung und -Analyse
    • Programmierung: „Clean Code“
  2. Infrastruktur
    • Editoren/IDEs
    • Versionsverwaltung
    • Versionsnummern
    • (externe) Dokumentation
    • Bugverwaltung
    • Lizenzen und Urheberrechte
  3. Sauberer Code
    • Programmierparadigmen
    • Objektorientierte Programmierung (OOP)
    • Namen
    • Funktionen
    • Dokumentation im Code
    • Formatierung
    • Entwurfsmuster (Patterns)
    • Tests
    • Testautomatisierung und testgetriebene Entwicklung
    • Refactoring
    • Codeoptimierungen
  4. Softwarearchitektur
    • Single-Responsibility-Prinzip
    • Open-Closed-Prinzip
    • Liskov-Substitutions-Prinzip
    • Interface-Segregation-Prinzip
    • Dependency-Inversion-Prinzip
  5. Datenverarbeitung und -Analyse in den Naturwissenschaften
    • Datenformate: beständig und plattformunabhängig
    • Datenaufnahme: Metadaten
    • Datenverarbeitung und -analyse: selbstdokumentierend
    • Datenpräsentation: Abbildungs- und Berichterstellung

Übersicht als PDF-Dokument – Das PDF-Dokument entspricht dem Planungsstand vor Beginn der Vorlesung – Änderungen vorbehalten.

Beschreibung der fünf Teile

Die Vorlesung gliedert sich in fünf große Abschnitte. Nachfolgend werden die Inhalte aller fünf Bereiche knapp zusammengefasst.

Motivation

Infrastruktur

Sauberer Code

Softwarearchitektur

Datenverarbeitung in den Naturwissenschaften

Während eine minimale Infrastruktur Voraussetzung ist, um überhaupt sinnvoll Software entwickeln zu können, ist sauberer Code die Grundlage (nicht nur) für die Wissenschaftlichkeit der entwickelten Programme, weil nur so die Nachvollziehbarkeit gewährleistet werden kann. Aufgrund der inhärenten Komplexität von Datenverarbeitung und -auswertung in den Naturwissenschaften ist das Zusammenspiel der einzelnen Komponenten maßgeblich für die Flexibilität und Wartbarkeit der entwickelten Software. Das ist der Bereich der Softwarearchitektur.