Die Objektorientierung stellt heutzutage den Stand der Technik in der Softwareentwicklung dar. Gegebene Problemstellungen werden dabei mit Hilfe objektorientierter Analyse- und Entwurfsverfahren zunächst in ein objektorientiertes Modell und anschließend in ein objektorientiertes Programm überführt. Ziel des Moduls „Objektorientierte Modellierung und Programmierung“ ist das Erlernen grundlegender Konzepte der objektorientierten Modellierung mit Hilfe der UML als Modellierungsnotation und der objektorientierten Programmierung mit der Programmiersprache Java. Die Studierenden sollen nach Abschluss des Moduls selbstständig objektorientierte Programme auf der Grundlage von Java für die Lösung mittelgroßer Probleme entwickeln können.
Fachkompetenzen
Die Studierendende:
kennen grundlegende Konzepte der objektorientierten Modellierung und UML als Modellierungsnotation
kennen grundlegende Konzepte der objektorientierten Programmierung mit Java
kennen die Terminologie der objektorientierten Modellierung und Programmierung und verwenden die entsprechenden Begriffe präzise bei Diskussionen
können beschreiben, was ihnen vorgelegte objektorientierte Programme tun
entwickeln selbstständig Modelle und Programme für die Lösung mittelgroßer Probleme
untersuchen systematisch eigene und fremde Modelle und Programme auf Fehler
setzen moderne Entwicklungsumgebungen zum Modellieren und Entwickeln von Programmen ein
kennen die Unterschiede zwischen dem imperativen, objektorientierten, funktionalen, logischen und regelbasierten Programmierparadigma
Methodenkompetenzen
Die Studierenden:
entwickeln selbstständig Programme für gegebene Probleme durch konsequente Anwendung der Konzepte der objektorientierten Modellierung und Programmierung
übertragen praktische Erfahrungen in der Programmentwicklung auf neue Aufgaben
entwickeln selbstständig Programme mit Nebenläufigkeiten
können selbstständig bekannte Lösungsmethoden auf komplexe Probleme anwenden
Sozialkompetenzen
Die Studierenden:
vermitteln die Struktur und Wirkungsweise selbst entwickelter Modelle und Programme an andere
präsentieren selbstständig entwickelte Lösungen vor Gruppen
Selbstkompetenzen
Die Studierenden:
organisieren sich beim Entwickeln von Programmen für kleine und mittelgroße Probleme der Informatik
beziehen die Konzepte des objektorientierten Programmentwurfs in ihr Handeln ein
Modulinhalte
Im ersten Teil werden grundlegende Konzepte der objektorientierten Modellierung und Programmierung vermittelt:
Modelle und Modellierung
UML-Klassendiagramme
Klassen und Objekte
Datenkapselung
Vererbung
Polymorphie und dynamisches Binden
Ausnahmebehandlung
Generizität
Im zweiten Teil werden wichtige Konzepte und Klassen der JDK-Klassenbibliothek vorgestellt und die Klassen bei der Lösung mittelgroßer Probleme eingesetzt:
Java-Collection-API
IO und Streams
GUI-Anwendungen mit JavaFX
Parallele Programmierung mit Threads
Im dritten Teil werden fortgeschrittene Lösungsstrategien vorgestellt sowie weitere Programmierparadigma eingeführt und mit dem objektorientierten Paradigma verglichen:
Backtracking, Branch and Bound, Greedy
Lokale Suche, Evolutionäre Algorithmen
Funktionale Programmierung (z.B. Java-Lamdas, Standard ML)
Logische Programmierung (z.B. Prolog)
Regelbasierte Programmierung (z.B. Drools)
Ergänzt wird der Vorlesungsteil um einen umfassenden Übungsteil, in dem insbesondere die vermittelten Inhalte an praktischen Beispielen umgesetzt werden.
Literaturempfehlungen
Essenziell:
Skript (wird entweder in gedruckter Form oder in elektronischer Form über das Stud.IP fortlaufend in der Vorlesung zur Verfügung gestellt)
Gute Sekundärliteratur:
Heide Balzert: Lehrbuch der Objektmodellierung: Analyse und Entwurf mit der UML 2, Spektrum Akademischer Verlag
Dietmar Ratz, Jens Scheffler, Detlev Seese, Jan Wiesenberger: Grundkurs Programmieren in Java, Carl Hanser Verlag.
Christian Ullenboom: Java ist auch eine Insel: Programmieren lernen mit dem Standardwerk für Java- Entwickler, Rheinwerk Computing
Christian Ullenboom: Java SE 8 Standard-Bibliothek: Das Handbuch für Entwickler, Rheinwerk Computing
Links
Unterrichtssprache
Deutsch
Dauer in Semestern
1 Semester
Angebotsrhythmus Modul
jedes Sommersemester
Aufnahmekapazität Modul
unbegrenzt
Modullevel / module level
Modulart / typ of module
Lehr-/Lernform / Teaching/Learning method
V + Ü
Vorkenntnisse / Previous knowledge
Nützlichle Vorkenntnisse: inf030 Programmierung, Datenstrukturen und Algorithmen