Veranstaltung: 19523x ProInformatik III: Objektorientierte Programmierung

Sommersemester 2013
Veranstalter: Prof. Dr. Marco Block-Berlitz, Michael Kmoch (Übungsleiter), Eduard J. Wolf, Benjamin Gehmlich, Toni Schiemank

Termine:
    Vorlesung: 8:30-11 Uhr (s.t.) täglich, Hörsaal Takustr. 9
    Tutorien: 12-14 und 14-16 Uhr (c.t.) täglich, Räume werden noch bekanntgegeben

Aktuelles

Stand 05.08.2013: Forumfreischaltung
Wer nach der Registrierung noch keine Freischaltung für das Forum erhalten hat, schreibt bitte eine Email mit dem Loginnamen direkt an den Dozenten.

Stand 05.08.2013: Vorlesungsstart und -ort
Die erste Vorlesung startet am 05.08.2012 um 9 Uhr c.t. im großen Hörsaal der Informatik.

Inhalt der Veranstaltung

Grundlagen der Berechenbarkeitstheorie [1, 8]: Berechnungsmodelle (Loop, While, Goto), Universelle Registermaschinen, Syntax und operationelle Semantik imperativer Programmiersprachen
Formale Verfahren zur Spezifikation und Verifikation von imperativen Programmen [2]: Bedingungen auf dem Zustandsraum (assertions), Hoare-Kalkül, partielle Korrektheit, Termination, Model-Checking, Unit-Tests
Konzepte imperativer und objektorientierter Programmierung am Beispiel Java [3, 4]: Primitive und zusammengesetzte Datentypen, Methoden (Prozeduren und Funktionen), Parameterübergabe, Überladung, Module, Klassen, Objekte, Erstellung und Verwendung von Bibliotheken, Klassenkonzept, Vererbung, abstrakte Klassen, Interfaces, UML, AWT, Swing, Applets, Kleine praktische Anwendungen (Bildverarbeitung, KI, OpenGL, GLSL), Spieleprogrammierung, Automatisierte Tests mit JUnit
Programmiermethodik [3, 6, 9]: Prinzipien der Programmentwicklung, Debuggen und Fehlerbehandlungen, Teile und Herrsche, Backtracking, Test-Driven-Development
Analyse von Laufzeit und Speicherbedarf [6, 7, 8]: Landau-Symbolik, Uniformes versus Bit-Komplexitätsmaß, Umwandlung von Rekursion in Iteration, Analyse von Such- und Sortieralgorithmen

Scheinkriterien

Regelmäßige Teilnahme an den Vorlesungen und Übungen, 60% der möglichen Punkte aller Übungen (bei n-1 Übungszetteln müssen mindestens 20% erreicht sein) berechtigen zur Klausurteilnahme. Bestehen der Klausur am vorletzten Vorlesungstag (29.08.2012, 8:30 Uhr, s.t.). Die Note des Scheins entspricht der Klausurnote.

I Theoretischer Teil

Alle Folien und Skripte der Vorlesung (falls vorhanden) und Verweise zu Literatur und anderen Projekten werden hier bereitgestellt. Trotzdem empfehle ich jedem Teilnehmer der Veranstaltung, alle Notizen eigenständig anzufertigen.

Inhalte und Folien zu den Vorlesungen

1. Tag (05.08.2013) [PDF]:

2. Tag (06.08.2013) [PDF]:

3. Tag (07.08.2013) [PDF]:

4. Tag (08.08.2013) [PDF]:

5. Tag (09.08.2013) [PDF]:

6. Tag (12.08.2013) [PDF]:

7. Tag (13.08.2013) [PDF]:

8. Tag (14.08.2013) [PDF]:

9. Tag (15.08.2013) [PDF]:

10. Tag (16.08.2013) [PDF]:

11. Tag (19.08.2013) [PDF]:

12. Tag (20.08.2013) [Tafelvorlesung, CODE]:

13. Tag (21.08.2013) [Tafelvorlesung]:

14. Tag (22.08.2013) [PDF]:

15. Tag (23.08.2013) [ZIP]:

II Praktischer Teil

Bearbeitung der Übungszettel individuell. Jeder Übungszettel wird auf dieser Seite entsprechend zum Download zur Verfügung gestellt. Die Regularien zur Abgabe und zum Vorzeigen der Lösungen werden in den Übungen bekannt gegeben.

Übungsaufgaben

Musterlösungen zu den Aufgaben und Forum

Literatur und Links zur Vertiefung

Im Laufe der Vorlesungen werden entsprechende Angaben zu weiterführender Literatur hier eintragen. Das Gleiche gilt für wichtige Links. Wir sind für Ergänzungshinweise dankbar.

Linkliste

  • Java bei Oracle
  • Editor Notpad++
  • Entwicklungsumgebung Eclipse
  • Code-Konventionen
  • Eulerproject
  • Java-Uni
  • Literaturliste

    [1] Hoffmann D.W.: "Theoretische Informatik", Hanser-Verlag 2009
    [2] Kleuker S.: "Formale Modelle der Softwareentwicklung - Model-Checking, Verifikation, Analyse und Simulation", Vieweg-Teubner-Verlag 2009
    [3] Block M.: "Java Intensivkurs - In 14 Tagen lernen Projekte erfolgreich zu realisieren", 2. Auflage, Springer-Verlag 2009
    [4] Gries D., Gries P.: "Multimedia Introduction to Programming Using Java", Springer-Verlag 2005
    [5] Weiss M.A.: "Data Structures & Problem Solving Using Java", 3. Auflage, Addison-Wesley-Verlag 2005
    [6] Cormen T.H., Leiserson C.E., Rivest R.L., Stein C.: "Introduction to Algorithms", 3. Auflage, MIT Press Verlag 2009
    [7] Logufatu D.: "Grundlegende Algorithmen mit Java: Vom Algorithmus zum fertigen Programm.", Vieweg-Teubner-Verlag 2008
    [8] Hoffmann D.W.: "Theoretische Informatik", Hanser-Verlag 2009
    [9] Martin R.C.: "Clean Code", Prentice Hall International Verlag 2008