inf031 - Objektorientierte Modellierung und Programmierung (Vollständige Modulbeschreibung)

inf031 - Objektorientierte Modellierung und Programmierung (Vollständige Modulbeschreibung)

Originalfassung Englisch PDF Download
Modulbezeichnung Objektorientierte Modellierung und Programmierung
Modulkürzel inf031
Kreditpunkte 9.0 KP
Workload 270 h
Einrichtungsverzeichnis Department für Informatik
Verwendbarkeit des Moduls
  • Fach-Bachelor Informatik (Bachelor) > Basismodule
  • Fach-Bachelor Mathematik (Bachelor) > Nebenfachmodule
  • Fach-Bachelor Wirtschaftsinformatik (Bachelor) > Basiscurriculum
  • Fach-Bachelor Wirtschaftswissenschaften (Bachelor) > Studienrichtung Wirtschaftsinformatik
  • Zwei-Fächer-Bachelor Informatik (Bachelor) > Basismodule
Zuständige Personen
  • Schönberg, Christian (Modulverantwortung)
  • Lehrenden, Die im Modul (Prüfungsberechtigt)
Teilnahmevoraussetzungen
Nützlichle Vorkenntnisse: inf030 Programmierung, Datenstrukturen und Algorithmen
Kompetenzziele
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
Lehr-/Lernform 1V + 1Ü
Vorkenntnisse Nützlichle Vorkenntnisse: inf030 Programmierung, Datenstrukturen und Algorithmen
Lehrveranstaltungsform Kommentar SWS Angebotsrhythmus Workload Präsenz
Vorlesung 4 SoSe 56
Übung 2 SoSe 28
Präsenzzeit Modul insgesamt 84 h
Prüfung Prüfungszeiten Prüfungsform
Gesamtmodul
Am Ende der Veranstaltung
Portfolio oder Klausur oder mündliche Prüfung