Programmierung und Programmiersprachen

NUMMER: n.n.
KÜRZEL: ProPro
MODULBEAUFTRAGTE:R: Studiendekan der Fakultät für Informatik
DOZENT:IN: Siehe den jew. Eintrag im Vorlesungsverzeichnis
FAKULTÄT: Fakultät für Informatik
SPRACHE: Deutsch
SWS: 4
CREDITS: 6
WORKLOAD: 180
ANGEBOTEN IM: jedes Sommersemester

VERANSTALTUNGSART

Vorlesung mit Übung

LERNFORM

Vorlesung mit Übung

LERNZIELE

Ziel der Veranstaltung ist es, einen systematischen Überblick über Prinzipien, Methoden und Konzepte der Programmierung in modernen Programmiersprachen zu vermitteln. Der Schwerpunkt liegt auf statisch getypten und objektorientierten Programmiersprachen, insbesondere Java, wobei aber auch funktionale Programmierkonzepte vermittelt werden sollen. Studierende sollen in die Lage versetzt werden, Probleme und Lösungen systematisch zu analysieren, zu modellieren und zu implementieren, um qualitativ hochwertige und wartbare Programme entwickeln zu können. Mithilfe von Verfahren der objektorientierten Programmierung lernen die Kursteilnehmer gängige Technologien wie z.B. grafische Benutzerschnittstellen oder Client-Server-Systeme, sowie nebenläufige Programme zu implementieren. Optional vermittelt die Veranstaltung eine Einsicht in die Syntax und Semantik von Programmiersprachen.
Lernziele:
Nach dem erfolgreichen Abschluss des Moduls können Studierende
* Domänen und Probleme objektorientiert abstrahieren und modellieren;
* Lösungen für diese Probleme mit einer statisch getypten objektorientierten Programmiersprache implementieren;
* UML-Klassendiagramme lesen und erstellen
* Funktionale Programmierkonzepte anwenden
* Programme analysieren und debuggen
* Graphische Benutzerschnittstellen sowie weitere Technologien wie z.B. kleine Client-Server-Anwendungen entwickeln
* Syntax und Semantik von Programmiersprachen erläutern, sowie den grundlegenden Aufbau von Compilern und Typsystemen.

INHALT

* Grundlagen objektorientierter Programmierung mit Java
* Objektorientierte Analyse und Design mit UML-Klassendiagrammen
* Funktionale Programmierkonzepte
* Typsysteme
* Standard-Klassenbibliotheken
* Versionsverwaltung mit Git
* Ereignisbehandlung, ereignisbasierte Programmierung
* Graphische Benutzeroberflächen (GUIs)
* Objektorientierte und funktionale Datenstrukturen
* Ausnahmebehandlung
* Nebenläufigkeit, u.a. Multithreading
* Logging und Debugging
* Ein- und Ausgabe, Ausnahmebehandlung durch Exceptions
* Syntax und Semantik von Programmiersprachen

VORAUSSETZUNGEN CREDITS

Bestandene Modulabschlussprüfung