Programmieren von Systemen

Klausur und Prüfung

vorläufige Noten: sind ab jetzt im LSF eingetragen und können dort eingesehen werden.

Statistik zur Klausur

Nachklausur: 9. Oktober 2008, 10 Uhr s.t.,  in H22 (Anmeldung online)
Bitte am Prüfungstag rechtzeitig anwesend sein.
An den Hörsaal-Eingängen werden vor der Klausur Aushänge mit der Sitzordnung angebracht sein. 

Die Fachschaft bietet für die Nachklausur auch wieder ein Repititorium an.

Klausur-Einsicht: Am 16.09.2008, 13:30-15:30, O27/521

Vorlesung

- Einleitung
    * Beispiele aus der Praxis
    * Zu beachtende Aspekte
    * Lernziele
 
- Grundlegende SW-Architekturen
    * Warum Architekturen?
    * 3-Tier-Architektur (Präsentation - Anwendungslogik - Persistenz)
    * C/S-Architektur, Verteilte Architekturen, Service-orientierte Architekturen

- Präsentation: Programmierung von Benutzeroberflächen und Grafiken
    * Elemente grafischer Benutzeroberflächen (GUI)
    * Ergnonomie von Oberflächen (Grundprinzipien)
    * Model View Controler (MVC)
    * Ereignisorientierte Programmierung (Events, Event Handler,
       Callback-Methoden etc.)
    * GUI-Programmierung am Beispiel von Java Swing
    * Programmierung von 2-D-Grafiken; 3-D-Grafiken nur angerissen
    * Programmierung und Manipulation von Raster- und Vektorgrafiken
    * Ausblick: Grafische Animation, Medieninformatik etc. 

- Persistenz: Persistente Speicherung von Datensätzen mit XML
    * Einführung in XML (DTD, XML Schema, ...)
    * Speicherung von Datensätzen in XML-Dateien
    * Java-XML-API: Lesen und Schreiben von Datensätzen aus/in XML-Dateien
    * Ausblick: VL 'Informationssysteme' 

- Verteilte Programmierung: Nebenläufigkeit, Modellierung, Threads
    * Beispiele Nebenläufigkeit: Speisende Philosophen,
       Erzeuger-Verbraucher-System, Aufzugssteuerung.
    * Was gestaltet die Programmierung solcher nebenläufigen Handlungen
       besonders komplex (Kommunikation, Synchronisation, Semaphore, etc.)?
    * Modellierung nebenläufiger Systeme mit Petri-Netzen (Grundlagen, Entwurf,
       Deadlock-Erkennung)
    * Programmierung nebenläufiger Anwendungen auf Grundlage von
       Java-Threads
    * Ausblick: Kommunizierende Prozesse, Shared Memory etc.

- Programmierung verteilter Anwendungen: C/S, Remote Kommunikation
    * Beispiele für C/S - Anwendungen, Grundprinzip
    * Welche Komplexität kommt gegenüber einfacher verteilter
       Programmierung (s.o.) hinzu (Heterogenität, Fehlerbehandlung,
       No single Source of Error, etc.)
    * Programmierung von C/S-Anwendungen mittels RPC/RMI
    * Ausblick: Service-orientierte Architekturen und Service-Paradigma
       (JAXX-WS nur anreißen)

- Entwicklungswerkzeuge
    * Editoren
    * Grundidee von CASE-Tools
    * Grundidee von Eclipse

 - Weitergehend Aspekte der Programmierung komplexer Systeme
    * Architekturdesign, SW Design Patterns
    * Web-Programmierung, Service-Paradigma und Service-oriented Computing
    * Modellgetriebene Entwicklung, Model-driven Architectures
    * Programming-in-the-Small vs. Programming-in-the-Large
    * SW-Infrastrukturen: DB, Middleware

Übungen

Die Übungen werden in Tutorien mit max. 3 Teilnehmern abgehalten.


Übungsblätter und Materialien finden sich in Rubikon.

Zeit und Ort

Vorlesung:
Mi., 12-14 Uhr in O28/H22

Erste Vorlesung:
16.04.2008

Tutorium:
Termin variiert je nach Tutor
Anmeldung 17.-20.04. in Rubikon