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