Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:lehre:programmierkonzepte:ws2018:inhalte

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

  • Softwareentwicklung und Programmierung wird nach wie vor in den Naturwissenschaften viel zu wenig ernst genommen – obwohl sie essentiell für den wissenschaftlichen Erkenntnisgewinn ist.
  • Software zur wissenschaftlichen Datenauswertung muss notwendigerweise eine ganze Reihe nichttrivialer Kriterien erfüllen, um dem Anspruch des wissenschaftlichen Erkenntnisgewinns gerecht zu werden.
  • Für viele Probleme der von Wissenschaftlern selbst geschriebenen Software gibt es bewährte Lösungsstrategien aus der professionellen Softwareentwicklung.
  • Ziel dieser Vorlesung ist es, einen Überblick über die vorhandenen Strategien zu geben und Wege für ihre konkrete Anwendung auf Software zur wissenschaftlichen Datenauswertung aufzuzeigen.

Infrastruktur

  • Zwingende Voraussetzung für die Erstellung von Software zur wissenschaftlichen Datenanalyse (unabhängig von ihrer Komplexität) ist ein Minimum an Infrastruktur.
  • Das absolute Minimum ist eine Versionsverwaltung und Lizenzen. Für jedes etwas größere Projekt kommen (externe) Dokumentation, Versionsnummern und eine Bugverwaltung hinzu.

Sauberer Code

  • Code sollte unter allen Umständen und vor allem Anderen lesbar sein, und zwar so lesbar und ausdrucksstark wie nur möglich.
  • Lesbarkeit von Code hat viele Aspekte, von der Formatierung über Namen bis hin zu Entwurfsmustern.
  • Sauberer Code ist immer auch testbarer und möglichst vollständig durch automatisierte Tests abgedeckter Code.

Softwarearchitektur

  • Software ist mehr als die Summe der Einzelteile. Das Zusammenspiel der einzelnen Komponenten entscheidet maßgeblich über die Flexibilität und Wartbarkeit.
  • Softwarearchitektur schlägt die Brücke vom sauberen Code einzelner Module zur eigentlichen Anwendung.
  • Intuitive Lösungen widersprechen oft dem großen Ziel flexibler, erweiterbarer und wiederverwendbarer Software.

Datenverarbeitung in der Physikalischen Chemie

  • Die Datenverarbeitung in den Naturwissenschaften ist ein reales Anwendungsszenario, auf das alle bislang vorgestellten Aspekte angewendet werden können und sollen.
  • Vorgestellt wird ein Gesamtkonzept von der Datenaufnahme bis zur Publikation.
  • Die Datenverarbeitung ist inhärent komplex: Ein entsprechendes System, das die eingangs aufgestellten Kriterien berücksichtigt, ist nur mit Kenntnis der in der Vorlesung vorgestellten Themen und Aspekte umsetzbar.

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.

de/lehre/programmierkonzepte/ws2018/inhalte.txt · Zuletzt geändert: 2020/09/30 21:35 von 127.0.0.1