Bachelor: Geodata Science

202 - Softwareentwicklung

Empfohlenes Studiensemester: 2

Turnus: Sommersemester

Sprachen: Deutsch, Englisch

ECTS: 5

Prüfungsform: praP oder schrP oder mdlP, weitere Angaben siehe SPO und Studienplan

Lehrform und SWS: SU (2SWS), Pra (2SWS)

Gesamter Workload: 150 Stunden

Präsenzzeit: 30 Stunden Seminaristischer Unterricht, 30 Stunden Praktikum

Selbststudium: 90 Stunden

Modulverantwortung: Prof. Dr. Benedikt Dietrich (FK07)

Weitere Lehrende: Prof. Dr. Matthias Bauer (FK07)

Empfohlene Voraussetzung für die Teilnahme

Die Studierenden können einfache mathematische und algorithmische Problemstellungen analysieren und die zur Lösung erforderlichen Schritte identifizieren.

Lernziele

Fach- und Methodenkompetenz

Die Studierenden

  • erklären in eigenen Worten die Bedeutung der Softwareentwicklung für ihren fachlichen Kontext.
  • beschreiben den Unterschied zwischen einzelnen programmiersprachlichen Konstrukten.
  • begründen, welches Sprachkonstrukt in welchem Kontext zu verwenden ist, und warum.
  • wägen systematisch ab, welches Konzept der Programmiersprache am besten geeignet ist, um eine bestimmte Anforderung in einem Algorithmus umzusetzen.
  • identifizieren Stärken und Verbesserungspotenzial in gegebenem Quelltext.
  • bewerten eine von ihnen selbst erstellte Software kritisch hinsichtlich Stärken und Schwächen, die in Bezug zu grundlegenden Qualitätsanforderungen bestehen (Lesbarkeit, Testbarkeit, Korrektheit).
  • entwickeln für ein einfaches Problem aus einer gegebenen Anforderungsspezifikation heraus eine Umsetzung in Software. Diese erfüllt dabei grundlegende Qualitätsanforderungen. (Ein „einfaches Problem“ ist dabei eine Aufgabenstellung, die mit maximal ca. 500 Zeilen Quelltext zu lösen ist.)
  • erstellen schematisch grundlegende Testfälle.
  • nutzen ein Werkzeug, um Testfälle automatisiert auszuführen.
  • setzen systematisch Werkzeuge ein, die den Grad der erreichten Testabdeckung ermitteln.
  • nutzen Werkzeug zur Versionsverwaltung sowie eine moderne IDE und Build-Werkzeuge.
  • gleichen beim Verwenden des Debuggers das, was der Debugger anzeigt, ab mit der eigenen mentalen Erwartung, bis beides nicht mehr zueinander passt und zeigen so Soll-/Ist-Differenzen auf.
  • bearbeiten Software in kleinen Teams und formulieren dabei als Feedback-Geber ihre Kritik gemäß Feedback-Regeln. Sie halten als Feedback-Nehmer beim Empfangen von Kritik die formalen Feedback-Regeln ein.

Inhalt

Grundlegende Konzepte der Softwareentwicklung auf der Basis einer aktuellen, allgemein verfügbaren Programmiersprache. Im Einzelnen werden behandelt:

  • Grundkonzepte des verwendeten Programmierparadigmas (objektorientiert, funktional oder imperativ)
  • Testen
  • Grundlegende Algorithmen
  • Ausnahmebehandlung
  • Systematische Fehlersuche und Debugging

Lehrmethoden und Lernformen

Tafel, Folien, Beamer, Selbstlernmaterial, Lehr-/Lernvideos, Lesetexte

Verwendbarkeit des Moduls

Bachelor Digital Engineering, Bachelor Geodata Science

Literatur

  • Bjarne Stroustrup, Programming: Principles and Practice Using C++, 2nd edition, Addison-Wesley, 2014, ISBN 9780321992789
  • Robert C. Martin, Clean Code: A Handbook of Agile Software Craftsmanship, Pearson, 2008, ISBN 9780136083238