Software Entwicklung I (W)
Name Software Entwicklung I (W)
Verantwortlich Prof. Dr. Bastian Katz
SWS 4
ECTS 5
Sprache(n) Deutsch
Lehrform SU mit Praktikum
Angebot in jedem Wintersemester
Aufwand

Präsenzstudium: ca. 42 Std., Eigenstudium: ca. 108 Std.

Voraussetzungen

keine

Ziele

Lernziele

Die Studierenden erlernen in diesem Modul die Grundzüge der systematischen Entwicklung von Software am Beispiel einer aus didaktischer Sicht geeigneten, praxisrelevanten Programmiersprache.

Kompetenzen

Die Veranstaltung adressiert die unter Inhalt aufgelisteten fachlichen Themen und entwickelt dazu in den Studierenden die folgenden Kompetenzen. Der Schwerpunkt liegt dabei auf den unteren drei Kompetenzebenen der Lernzieltaxonomie von Bloom (in der Überarbeitung nach Anderson et. al.), also Erinnern, Verstehen und Anwenden.

Die Studierenden…

  • definieren die Grundbegriffe des jeweiligen fachlichen Inhalts.
  • benennen in einem vorgegebenen Artefakt (Anforderungsdefinition, Testfall, Entwurf, Algorithmusspezifikation, Quelltext) die dort verwendeten Konstrukte / Elemente mit den korrekten Fachbegriffen.
  • schreiben die konkrete Syntax eines programmier-sprachlichen Konstruktes korrekt auf und halten dabei die Syntaxkonventionen ein.
  • erklären in eigenen Worten die Bedeutung der Grundbegriffe des jeweiligen fachlichen Inhalts, insbesondere der programmiersprachlichen Konstrukte.
  • beschreiben in eigenen Worten die Unterschiede zwischen den einzelnen programmiersprachlichen Konstrukten.
  • begründen, welches programmiersprachliche Konstrukt in welchem Kontext zu verwenden ist, und warum.
  • begründen, warum Softwareentwicklung aus mehr Schritten besteht als nur der Implementierung.
  • setzen einen textuell oder grafisch vorgegebenen Entwurf in Quelltext einer festgelegten Programmiersprache um. Der Entwurf gibt dabei die Struktur der Klassen incl. von deren Attributen und Methoden vor. Für die Methoden ist der Algorithmus in seinen Grundzügen ebenfalls vorgegeben. Der Quelltext erfüllt dabei grundlegende Qualitätsanforderungen (Lesbarkeit, Testbarkeit, Korrektheit).
  • ermitteln zu einer gegebenen Implementierung und konkreten Eingabe- bzw. Startwerten das konkrete Ergebnis.

Für die höheren Kompetenzebenen Analysieren, Evaluieren und Kreieren werden erste Grundlagen gelegt. Die Studierenen…

  • geben zu einer vorgegebenen Implementierung an, was diese prinzipiell macht, abstrahiert von konkreten Eingabe- bzw. Startwerten.
  • wägen systematisch ab, welches Konzept bzw. Konstrukt der Programmiersprache am besten geeignet ist, um eine bestimmte Anforderung umzusetzen.
  • identifizieren Stärken und Verbesserungspotenzial in einem gegebenen Artefakt (z.B. Problemformulierung, Entwurf, Algorithmusspezifikation, Quelltext).
  • bewerten ihre eigene Lösung (d.h. ein von ihnen selbst erstelltes Artefakt) kritisch auf Stärken und Schwächen, die hinsichtlich grundlegender Qualitätsanforderungen bestehen (Lesbarkeit, Testbarkeit, Korrektheit).
  • entwickeln für ein einfaches Problem aus einer gegebenen Anforderungsspezifikation heraus einen Entwurf, der sowohl die Gesamtstruktur der Lösung als auch die einzelnen Algorithmen vorgibt. Der Entwurf erfüllt dabei grundlegende Qualitätsanforderungen (Korrektheit, Effizienz der Algorithmen, Testbarkeit). Ein „einfaches Problem“ ist dabei eine Aufgabenstellung, die mit max. 10 Klassen objektorientiert zu lösen ist.

Überfachliche Kompetenzen

Ergänzend entwickeln die Studierenden Informatik-relevante Schlüsselkompetenzen weiter, die für die adressierten Kompetenzebenen notwendig sind, insbesondere:

  • Abstraktes Denken
  • Analytisches Denken
  • Logisches Denken
  • Kritisches Hinterfragen
  • Strukturieren
  • Kreativität
  • Sorgfalt
Inhalt

Die Veranstaltung adressiert die Grundlagen der folgenden fachlichen Inhalte:

  • Algorithmisches Denken
  • Kontrollstrukturen
  • Objektorientierung und Klassen
  • Datentypen
  • Listen
  • Schnittstellen
  • Zeichenketten
  • Unit Tests
Medien und Methoden

Medien

  • Materialien zur Vor- und Nachbereitung (z.B. Text, Videos, ...)
  • Folien, Tafel, White Board
  • Entwicklungsumgebung für Quelltextbeispiele und selbstständiges Programmieren
  • Haptische Materialien
  • E-Learning-Plattform

Methoden

  • Seminaristischer Unterricht
  • Live-Übungen
  • Aktivierende Lehr-/Lernmethoden
  • Eigenständiges Programmieren
  • Aufgabenorientierte Diskussion und Arbeit in Kleingruppen
Literatur
  • R. Schiedermeier: Programmieren in Java, Pearson Studium, 2. Auflage, August 2010.
  • R. Schiedermeier, K. Köhler: Das Java-Praktikum: Aufgaben und Lösungen zum Programmierenlernen mit Java 7, dpunkt, 2. Auflage, September 2011.
  • M. Inden: Der Weg zum Java-Profi: Konzepte und Techniken für die professionelle Java-Entwicklung, dpunkt, 3. Auflage, Februar 2015.
  • K. Günster: Einführung in Java: Ideal für Studium und Ausbildung, Rheinwerk Computing, Januar 2015.
Zuordnungen Curricula
SPO Fachgruppe Code ab Semester Prüfungsleistungen
IB Version 2010 Pflicht IF-WI-B-05 1 benotete schriftliche Prüfung 90 Minuten
unbenoteter Leistungsnachweis
WD Version 2022 Pflicht 446 1 benotete schriftliche Prüfung 90 Minuten
unbenoteter Leistungsnachweis
WT Version 2022 Pflicht 446 1 benotete schriftliche Prüfung 90 Minuten
unbenoteter Leistungsnachweis