Programmierung Show URL Convert to PDF XML representation

 

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)
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)) G (BSc Winf. (15))
Lehrsprache: Deutsch

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

Voraussetzungen:

keine

Prüfungsleistung:

Schriftliche Prüfung. Voraussetzung zur Zulassung: 1) Erfolgreiches Bearbeiten von theoretischen und Programmieraufgaben, nachgewiesen durch fristgerechte Abgaben im iLearn und Korrektur in Anwesenheit ("Minitestate") während der praktischen Rechnerübungen. 2) Teilnahme an den praktischen Rechnerübungen; bei mehr als zweimaligem Fehlen ist ein ärztliches Attest vorzulegen

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: