Lehrveranstaltungsübersicht

Einführung in die Softwareentwicklung

Dozent:innen: Univ.-Prof. Dr. Michael Wand; Jan Disselhoff; Ann-Christin Wörl
Kurzname: Einf. Softwareentw.
Kurs-Nr.: 08.079.015
Kurstyp: Vorlesung/Übung

Voraussetzungen / Organisatorisches

Benötigte Vorkenntnisse
Einführung in die Programmierung

Inhalt

In dieser Veranstaltung bauen wir auf die erlenten Grundkenntnisse aus "Einführung in die Programmierung" auf und übertragen diese auf komplexere Softwaresysteme. Dabei steht die sinnvolle Zerlegung komplexer Software in Komponenten, Schnittstellen und Bibliotheken im Vordergrund. Dabei werden vor allem Ideen zum objektorientierten und funktionalen Entwurf von Systemen diskutiert und gegenübergestellt. Konkreter teilen sich die Themen ein in Programmiertechniken, die in "Einführung in die Progrmmierung" noch nicht oder nur am Rande angesprochen wurden, sowie Techniken für den Entwurf komplexerer Systeme, bei denen es stärker um die Organisation von Systemen geht.

Programmiertechniken

  1. Statische Typisierung
  2. Hardwarenahe Programmierung und Techniken für effiziente Abstraktionen,
  3. Funktionsvariablen und Funktionen höherer Ordnung,
  4. Bibliotheksfunktionen der Systemumgebung: Eingabe- / Ausgabe, Netzwerkzugriff
  5. Graphische Benutzerschnittstellen
  6. Programmiersprachen jenseits von Python (Scala, ggf. Beispiele von hardwarenahen Sprachen)

Softwareentwurf

  1. Modularisierung
  2. Objekte, Klassen und Schnittstellen
  3. Vererbung, abstrakte Klassen und dynamischer Dispatch
  4. Abstraktion und Geheimnisprinzip
  5. Generische Datentypen
  6. Visualisierung mit Hilfe von Diagrammen (z.B. Klassendiagramme)
  7. Einfache/grundlegende Entwurfs- und Architekturmuster

Die Konzepte werden dabei in der aus EIP bekannten Programmiersprache Python erklärt; zusätzlich wird Scala als Programmiersprache eingeführt, in der sich einige der Programmiertechniken eleganter umsetzen lassen. Hardwarenahe Programmiersprachen werden kurz am Rande diskutiert, wenn es um hardwarenahe Programmierung geht.
 

Zusätzliche Informationen

Weitere, aktualisierte Informationen finden Sie auf der WWW-Seite der Veranstaltung:

https://luna.informatik.uni-mainz.de/eis24/
(Verfügbar ab April 2024)

Termine

Datum (Wochentag) Zeit Ort
16.04.2024 (Dienstag) 12:15 - 13:45 00 151 Audi Max
1312 - Aulagebäude/Mensa I
23.04.2024 (Dienstag) 12:15 - 13:45 00 151 Audi Max
1312 - Aulagebäude/Mensa I
30.04.2024 (Dienstag) 12:15 - 13:45 00 151 Audi Max
1312 - Aulagebäude/Mensa I
07.05.2024 (Dienstag) 12:15 - 13:45 00 151 Audi Max
1312 - Aulagebäude/Mensa I
14.05.2024 (Dienstag) 12:15 - 13:45 00 151 Audi Max
1312 - Aulagebäude/Mensa I
21.05.2024 (Dienstag) 12:15 - 13:45 00 151 Audi Max
1312 - Aulagebäude/Mensa I
28.05.2024 (Dienstag) 12:15 - 13:45 00 151 Audi Max
1312 - Aulagebäude/Mensa I
04.06.2024 (Dienstag) 12:15 - 13:45 00 151 Audi Max
1312 - Aulagebäude/Mensa I
11.06.2024 (Dienstag) 12:15 - 13:45 00 151 Audi Max
1312 - Aulagebäude/Mensa I
18.06.2024 (Dienstag) 12:15 - 13:45 00 151 Audi Max
1312 - Aulagebäude/Mensa I
25.06.2024 (Dienstag) 12:15 - 13:45 00 151 Audi Max
1312 - Aulagebäude/Mensa I
02.07.2024 (Dienstag) 12:15 - 13:45 00 151 Audi Max
1312 - Aulagebäude/Mensa I
09.07.2024 (Dienstag) 12:15 - 13:45 00 151 Audi Max
1312 - Aulagebäude/Mensa I
16.07.2024 (Dienstag) 12:15 - 13:45 00 151 Audi Max
1312 - Aulagebäude/Mensa I