Inhalte der Vorlesung

Inhalte der Vorlesung PC-V „Programmierkonzepte in der Physikalischen Chemie“ an der Albert-Ludwigs-Universität Freiburg im Wintersemester 2018/19.

Übersicht

  1. Motivation
    • Physikalische Chemie: 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 der PC
    • 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 der Physikalischen Chemie

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.