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ützliche fachspezifische Vorkenntnisse:

  • Imperative Programmierung mit Java
  • Grundlagen der Objektorientierung (Klassen und Objekte)
  • Grundlagen der Algorithmik (Komplexität, Lösungsmethoden)

 

Diese Vorkenntnisse können beispielsweise im Modul inf030 Programmierung, Datenstrukturen und Algorithmen erworben werden. Formale Teilnahmevoraussetzungen gibt es nicht.

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 Studierendenden

  • 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 zu kleinen Aufgaben vor Gruppen

Selbstkompetenzen

Die Studierenden

  • organisieren sich beim Entwickeln von Modellen und 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
  • I/O und Streams
  • Parallele Programmierung mit Threads
  • GUI-Anwendungen mit JavaFX

 

Im dritten Teil werden fortgeschrittene Lösungsstrategien vorgestellt sowie weitere Programmierparadigmen 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. RuleBook)

 

Ergänzt wird der Vorlesungsteil um einen umfassenden Übungsteil, in dem insbesondere die vermittelten Inhalte an praktischen Beispielen umgesetzt werden. 

Literaturempfehlungen

Essenziell

  • Skript (wird in elektronischer Form über das Stud.IP fortlaufend in der Vorlesung zur Verfügung gestellt)

Empfohlene 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 V+Ü
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

Klausur / Portfolio (schriftliche Kurzprüfungen) / mündliche Prüfung