Softwareentwicklung II (IB)
Fakultät für Informatik und Mathematik ©
Name Softwareentwicklung II (IB)
Verantwortlich Prof. Dr. Veronika Thurner
SWS 4
ECTS 5
Sprache(n) Deutsch
Lehrform SU mit Praktikum
Angebot in jedem Sommersemester
Aufwand

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

Voraussetzungen

Grundlegende Kenntnisse der Wirtschaftsinformatik

Grundlegende Kompetenzen in Softwareentwiclkung, entsprechend dem Modul Softwareentwicklung I

Ziele

Lernziele

Die Studierenden erlernen in diesem Modul fortgeschrittene Konzepte der systematischen Entwicklung von Software am Beispiel einer aus didaktischer Sicht geeigneten, praxisrelevanten Programmiersprache.

Kompetenzen

Die Veranstaltung fokussiert die unter Inhalt aufgelisteten fachlichen Themen und entwickelt dazu in den Studierenden die folgenden Kompetenzen.

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, 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.

Der Fokus liegt dabei auf fortgeschrittenen Programmierkonzepten sowie den höheren Kompetenzebenen gemäß der Lernzieltaxonomie von Bloom (in der Überarbeitung von Anderson et. al.), also Analysieren, Evaluieren und Kreieren. 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 folgenden fachlichen Inhalte:

  • Vererbung
  • Exceptions
  • Arrays (Vertiefung, Mehrdimensional)
  • Listen
  • Generics
  • Collection-Framework
  • Unit Tests (Vertiefung)
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-06 2 benotete schriftliche Prüfung 90 Minuten
unbenoteter Leistungsnachweis