Lehrveranstaltungen

Einführung in die Softwareentwicklung - Digitale Methodik

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

Voraussetzungen / Organisatorisches

Voraussetzung: Einführung in die Programmierung
 

Digitale Lehre

Die Veranstaltung wird im Sommersemester 2020 digitalen Format angeboten. Geplant sind vorab aufgezeichnete Videos anstelle der Vorlesung, ein zentrales Tutorium zur Vor- und Nachbereitung der Übungsaufgaben sowie individuelle Unterstützung beim Lösen der Aufgaben.

Die genauen Details (Zugangsdaten zu den Videos, Übungsaufgaben, weitere Instruktionen) werden im "JGU-Reader" (https://reader.uni-mainz.de/) veröffentlicht. Die Informationen werden vor Semesterbeginn (spätestens am Freitag, den 17.04.2020) im Reader (im Abschnitt "Einführung in die Softwareentwicklung") veröffentlicht und es wird eine Reader-Rundmail gesendet.

Aus dem Reader werden Links auf die weiteren Informationen in anderen Systemen gesetzt - nutzen Sie daher im Zweifelsfall stets die Readerseite als Einstiegpunkt, und achten Sie darauf, dass Sie Benachrichtigungen aus dem Reader auf Ihren Email-Account aktiviert haben und den Empfang dieser Nachrichten regelmäßig überprüfen.

Achtung - doppelte Einträge: Bitte beachten Sie, dass alle Jogustine die Veranstaltungen EiS und EiS-"Digitale Methodik" unterscheidet. Wir verwenden aber nur die Reader Seiten für die Hauptveranstaltung EiS. Die Teilnehmenden aus EiS-DM werden im Reader manuell in die Hauptveranstaltung eingetragen. Sollten Sie in Ihrer Reader-Ansicht die Hauptveranstaltung auch am Montag den 20.04.2020 oder später noch nicht sehen (wenn alles richtig ist, sehen Sie dort EiS und EiS-DM), dann geben Sie uns bitte Bescheid (Mail an David Hartmann, dahartma@uni-mainz.de), damit wir das ändern. Alle weiteren Informationen werden über die EiS-Readerseite verschickt (ältere Nachrichten sind dort archiviert - man verpasst also nichts).

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, insbesondere funktionale Ansätze, werden ebenfalls kurz angesprochen, und es werden Beispiele für Anwendungsarchitekturen (grobstruktur ganzer, realer Softwaresysteme) diskutiert.

Bemerkung: Die Veranstaltung findet auch im Sommersemester 2020 nochmals im bisherigen Format (mit C++ als Übungssprache) statt.

Termine

Datum (Wochentag) Zeit Ort
20.04.2020 (Montag) 14:00 - 16:00 HS 19
27.04.2020 (Montag) 14:00 - 16:00 HS 19
04.05.2020 (Montag) 14:00 - 16:00 HS 19
11.05.2020 (Montag) 14:00 - 16:00 HS 19
18.05.2020 (Montag) 14:00 - 16:00 HS 19
25.05.2020 (Montag) 14:00 - 16:00 HS 19
08.06.2020 (Montag) 14:00 - 16:00 HS 19
15.06.2020 (Montag) 14:00 - 16:00 HS 19
22.06.2020 (Montag) 14:00 - 16:00 HS 19
29.06.2020 (Montag) 14:00 - 16:00 HS 19
06.07.2020 (Montag) 14:00 - 16:00 HS 19