Modulinformationssystem Informatik

 

Programmierung URL PDF XML

Modulcode: Inf-ProgOO
Englische Bezeichnung: Programming
Modulverantwortliche(r): Prof. Dr. Reinhard von Hanxleden
Turnus: jedes Jahr im WS (WS15/16 WS16/17 WS17/18 WS18/19 WS19/20 WS20/21)
Präsenzzeiten: 4V 2Ü 1PÜ
ECTS: 10
Workload: 60 Std. Vorlesung, 30 Std. Präsenzübung, 15 Std. betreutes Praktikum, 195 Std. Selbststudium
Dauer: ein Semester
Modulkategorien: G (BSc Inf (15)) 2F-BSc (2F-BSc Inf) G (BSc WInf (15))
Lehrsprache: Deutsch
Voraussetzungen: Info

Kurzfassung:

In diesem Modul werden grundlegende Konzepte der Programmierung mit Schwerpunkt auf imperativer, prozeduraler und objektorientierter Programmierung vermittelt und von den Studierenden an konkreten Aufgaben umgesetzt.

Lernziele:

  • Einfache Algorithmen in Programme umsetzen.
  • Umfangreichere Programme nach den Prinzipien der imperativen, prozeduralen und objektorientierten Programmierung entwickeln.
  • Programme mit grundlegenden Mitteln testen und verifizieren.
  • Über Programme und Programmentwicklung in der fachspezifischen Terminologie kommunizieren.

Lehrinhalte:

  • Imperative Programmierung
    • Syntaxbeschreibung
    • Ausdrücke und Anweisungen, Kontrollstrukturen
    • Auswertungsreihenfolge (Präzedenz, Assoziativität, Links-Rechts)
    • Variablen, Datentypen, Gültigkeitsbereiche
    • Abstraktion durch Funktionen und Prozeduren, Parameterübergabe
    • Rekursion
  • Grundbegriffe der objektorientierten Programmierung
    • Abstraktion, abstrakte Datentypen, Klassen, Objekte
    • Methoden, Polymorphie, dynamische Bindung
    • Vererbung, Interfaces
    • Generische Typen, parametrisierbare Klassen, wrapper classes, boxing/unboxing
    • Designprinzipien, Top-Down vs. Bottom-Up, Dekomposition
  • Datenstrukturen
    • Verkettete Listen
    • Sets, Maps
    • Java collection classes
  • Speicherverwaltung
    • Statischer Speicher, Stack, Heap
    • Stack frames, Ablauf von Methodenaufrufen
    • Umgang mit Dateien
  • Graphische Programmierung
    • Koordinatensystem, Canvas
    • Primitive und komplexe geometrische Formen, Dekomposition
    • Bitmaps, Bildbearbeitung mit booleschen Operationen
  • Ereignisgesteuerte Programme
    • Events, event handler
    • Erstellen von grafischen Benutzeroberflächen
  • Korrektheit von Programmen, Laufzeitanalyse
    • Invarianten, Vor-/Nachbedingungen
    • Einsatz von Exceptions
    • Unit Tests
    • Laufzeitmessungen
    • Asymptotische Komplexität, O-Notation
  • Arbeit mit integrierten Entwicklungsumgebungen
    • Editieren, Browsen
    • Debugging
  • Entwurfsmuster
    • Model-View-Controller
  • Ausblick: Nebenläufigkeit
    • Threads
    • Race conditions

Weitere Voraussetzungen:

keine

Prüfungsleistung:

Schriftliche Prüfung. Voraussetzung zur Zulassung: Erfolgreiches Bearbeiten von theoretischen und Programmieraufgaben. Zur Klausurzulassung dürfen nicht mehr als zwei Serien unentschuldigt als nicht bestanden gewertet werden. Pro Serie gibt es 100 reguläre Punkte. Durch das Bearbeiten zusätzlicher Aufgaben können Bonuspunkte erreicht werden. Eine Serie gilt als bestanden, wenn man (inklusive etwaiger Bonuspunkte) mindestens 50 Punkte erreicht.

Lehr- und Lernmethoden:

Lehrgespräch, angeleitete Gruppenarbeit, betreute praktische Rechnerübungen, selbständige Arbeit einzeln und in Gruppen, Projektarbeit, Selbststudium

Verwendbarkeit:

Literatur:

E.S. Roberts: The Art and Science of Java - An Introduction to Computer Science, Addison-Wesley, Boston, 2008, ISBN 978-0321486127. Entwurfsfassung.

C. Ullenboom: Java ist auch eine Insel, Rheinwerk Computing, Bonn, 2012, ISBN: 978-3-8362-1802-3. Webseite.

Oracle Java Tutorials

Verweise:

iLearn page: http://tinyurl.com/progoo16

Kommentar: