Prof. Dr. Fritz Jobst
Programmieren 2
Stand: Sommersemester 2012
|
Ziele (Quelle: Modulhandbuch)
|
Programmieren ist eine der Kernkompetenzen von Informatiker. Sie/Er muss nicht programmieren, aber sie/er kann es.
|
Problemlösungskompetenz(Primärziel)
Die Studierenden sind in der Lage, einfache Probleme mit Techniken der Objektorientiertierung zu analysieren, sowie Algorithmen
und Datenstrukturen (insbesondere Klassenhierarchien) zur Lösung einfacher Probleme in einer objektorientierten Sprache
zu formulieren.
|
Sprachverständnis
Die Studierenden verstehen die grundlegenden Konzepte objektorientierter Programmiersprachen (z.B. Klassen, Objekte, Klassenhierarchien,
Vererbung, Interfaces, abstrakte Klassen, Überladung, Überschreibung, dynamische Bindung, Lebenszyklus von Objekten etc.)
und können diese zur praktischen Problemlösung einsetzen. Darüber hinaus sind die Studierenden in der Lage, sich zügig in
vorhandene objektorientierte Bibliotheken (z.B. GUI-Bibliotheken) einzuarbeiten und können ihnen unbekannten Programmcode
auf seine Funktionsweise hin analysieren.
|
Aufbau der Lehrveranstaltung und Inhalte
Die Lehrveranstaltung setzt auf PG1 (Prozedurale Programmierung am Beispiel C) auf. Wir behandeln in Kapitel 02 die prozeduralen
Elemente von Java, deren Struktur wir von C her kennen. Dabei geniessen wir den einfachen Umgang mit Arrays in Java. In
Kapitel 03 steigen wir in die Objektorientierung ein: Klasse, Objekte, Vererbung, Schnittstellen (Interface), Aufzählungsdatentypen,
dynamische Erzeugung von Objekten. Mit den Exceptions beherrschen wir Ausnahmesituationen.
In Kapitel 04 behandeln wir die Sammlungen in Java, wobei uns die generischen Elemente von Java den Umgang mit den Objekten
erleichtern. Kapitel 05 behandelt die Ein-/Ausgabe in Java, Kapitel 06 die Nebenläufigkeit (Threads).
|
Java
|
Erst beim Umgang mit Frameworks zur GUI wie Swing in Java erkennt man in Kapitel 07 die volle Leistungsfähigkeit der Objektorientierung.
Jetzt sieht man, welchen Nutzen man aus Konzepten wie Schnittstellen, abstrakten Klassen und Vererbung ziehen kann. Dabei
folgen wir anerkannten, bewährten Mustern der Softwareentwicklung (Patterns).
NEU im Sommersemester 2012 Wir besprechen die Entwicklung von Apps unter Android
|
GUI Android
|
|
Neben der Einführung der Objektorientierung am Beispiel von Java stellen wir uns den Herausforderungen von C++. Wir führen
C++ als das "bessere C" ein: Prototypen für Funktionen, const, Deklaration von Variablen, Zugriff auf dynamischen Speicher,
Überladen von Funktionen und Operatoren, Funktionstemplates statt Makros. Mit Hilfe des Klassenbegriffs formulieren wir
abstrakte Datentypen. C++ stellt beim Umgang mit dem Lebenszyklus von Objekten besondere Anforderungen an den Entwickler.
Deswegen studieren wir Grundlagen wie Kopierkonstruktor, Destruktoren und Wertzuweisung sorgfältig, bevor wir die die Vererbung
sowie Programmausnahmen besprechen. Zum Abschluss dieses einführenden Kurses lernen wir die Möglichkeiten der STL (Standard-Template
Library) kennen.
|
C++
|
Hinweis zu den Unterlagen und Übungsaufgaben
Einige Unterlagen zur Vorlesung stehen nur im Intranet der HS.R im Novell-Netzwerk auf dem K-Laufwerk
zur Verfügung. Die Unterlagen und Übungen werden im Verlauf der Vorlesung ergänzt.
HS.R Hochschule Regensburg/Fakultät für Informatik und Mathematik/Prof. Dr. Fritz Jobst
|