Letztes Semester

Einführung in die Softwareentwicklung - Digitale Methodik

Dozent:innen: Univ.-Prof. Dr. Michael Wand
Kurzname: 08.079.015-DM
Kurs-Nr.: 08.079.015-DM
Kurstyp: Vorlesung

Voraussetzungen / Organisatorisches

Benötigte Vorkenntnisse
Einführung in die Programmierung

Empfohlene Literatur

Heide Balzert Lehrbuch der Objektmodellierung, Analyse und Entwurf mit der UML 2, 2. Auflage, München 2005
Ulrich Breymann: C++: eine Einführung, Hanser, 2016.
Scott Meyesr: Effective C++: 55 Specific Ways to Improve Your Programs and Designs, Addison-Wesley 2005 (für Fortgeschrittene).
Bjarne Stroustrup: The C++ Programming Language, Pearson 2013 (sehr komplex; eher als Referenz).
Robert Sedgewick, Kevin Wayne, Robert Dondero: Introduction to Programming in Python: An Interdisciplinary Approach, Addison-Wesley, 2015.

Inhalt

Die Veranstaltung EiS hat zwei Schwerpunkte: Zum einen werden allgemeine Programmiertechniken vertieft, in Ergänzung zur vorherigen Veranstaltung EiP (Einführung in die Programmierung). Zum zweiten wird der Entwurf komplexerer Softwaresysteme behandelt.

In der Vertiefung wird vor allem die Programmierung mit statisch typisierten "low-level" Sprachen, hier am Beispiel von C++, behandelt (in EiP wurden mit Python eine dynamisch typisierte "high-level" Sprache eingeführt). Hinzu kommt die Diskussion von Bibliotheken für Standarddatentypen, graphische Benutzerschnittstellen und andere I/O Operationen und nebenläufige Programmierung.

Zum zweiten Aspekt: Komplexe Softwaresysteme kann man nur realisieren, wenn man die Anforderungen an diese Systeme und deren Struktur ("Architektur") genau durchdenkt und plant. Diese Vorlesung führt in die Grundlagen der Entwicklung komplexerer Systeme ein und betrachtet hier vor allem Methoden des objektorientierten Entwurfs. Hierzu wird sowohl die Programmiersprache Python wie auch C++ betrachtet, die beide objektorientierte Programmierung (mit leicht unterschiedlichen Schwerpunkten) unterstützen. Weiterhin wird der Einsatz objektorientierter Modellierungsmethoden zur Beschreibung von Softwaresystemen (UML) und Realisierung, Dokumentation, Versonsverwaltung (SVN/GIT/HG) und der Test des von Softwaresystemen vermittelt.

Alternativen zu objektorientierten Entwurfsmustern (z.B. funktionale Ansätze) werden kurz angesprochen, und es werden Beispiele für Anwendungsarchitekturen (grobstruktur ganzer, realer Softwaresysteme) diskutiert.
 

Termine

Datum (Wochentag) Zeit Ort
16.04.2018 (Montag) 14:00 - 16:00 P 1
23.04.2018 (Montag) 14:00 - 16:00 P 1
30.04.2018 (Montag) 14:00 - 16:00 P 1
07.05.2018 (Montag) 14:00 - 16:00 P 1
14.05.2018 (Montag) 14:00 - 16:00 P 1
28.05.2018 (Montag) 14:00 - 16:00 P 1
04.06.2018 (Montag) 14:00 - 16:00 P 1
11.06.2018 (Montag) 14:00 - 16:00 P 1
18.06.2018 (Montag) 14:00 - 16:00 P 1
25.06.2018 (Montag) 14:00 - 16:00 P 1
02.07.2018 (Montag) 14:00 - 16:00 P 1