[Stud.IP]      [Dozent]      [Termine]      [Materialien]      [Ablauf]      [Prüfung]      [Bücher]      [Software]      [Links]

 

MARTIN-LUTHER-UNIVERSITÄT HALLE-WITTENBERG
Institut für Informatik
Prof. Dr. Stefan Brass

Objektorientierte Programmierung

(Wintersemester 2010)

Termin der Nachklausur: 19.07.2011, 10-12. Zur Prüfungsvorbereitung hier die erste Klausur: [PDF].

Termine für Prüfungen: [Liste des Prüfungsamts]. Für die Klausur zu dieser Vorlesung (am 22. März) kann man sich nur von 15. Februar bis 22. Februar anmelden.

Beispiel für einfaches Makefile (leicht anpassbar für eigene Programme): [Makefile].

Direkter Link zur Übungsplattform: https://uebungsportal.informatik.uni-halle.de/ws1011/oop/php/studip_login.php

Neue Version des 18. Kapitels:

Unten gibt es einen eigenen Abschnitt mit den Vorlesungs-Materialien.

Aus der Weihnachtsvorlesung:

Zweiter Programmiertest (zur Vorbereitung auf den dritten Programmiertest):

Programmiertests aus dem WS 2008/2009 (gut zur Vorbereitung auf unseren zweiten Programmiertest):

 


Lernziele


Dies ist eine Einführung in die Programmierung für das erste Semester (Studiengänge Informatik, Bioinformatik, Wirtschaftsinformatik und andere). Nach erfolgreicher Teilnahme an dieser Vorlesung sollten Sie Folgendes können:

In dieser Vorlesung wird die Sprache C++ verwendet, aber es sollte relativ leicht sein, sich später in andere Sprachen einzuarbeiten. Die meisten Teilnehmer werden im Laufe ihres Studiums und der späteren beruflichen Tätigkeit noch viele andere Programmiersprachen lernen müssen. Insofern ist die Auswahl der Sprache nicht sehr wichtig. C++ ist seit Jahren bewährt, in der Praxis verbreitet, und erlaubt es, viele Konzepte zu besprechen.

Klausur vom Wintersemester 2006/2007: [PDF]   [Postscript, verkleinert].

 


Dozent


Dr. Stefan Brass

Büro:
Raum 313 (Institut für Informatik, Von-Seckendorff-Platz 1)
Sprechstunde:
Dienstags, 12:15-13:13 (und nach Vereinbarung)
Email:
brass@informatik.uni-halle.de
Telefon:
0345/55-24740
Fax:
0345/55-27333 (im Sekretariat)
Sekretariat:
Frau Vahrenhold, Telefon 0345/55-24750, Zimmer 324

 


Übungsleiterin


Dipl.-Inform. Annett Thüring

Büro:
Raum 319 (Institut für Informatik, Von-Seckendorff-Platz 1)
Sprechstunde:
Mittwochs, 14:00-15:00.
Email:
annett.thuering@informatik.uni-halle.de
Telefon:
0345/55-24739

 


Leiter des Tutoriums


Dr. Henning Thielemann

Büro:
Raum 314 (Institut für Informatik, Von-Seckendorff-Platz 1)
Sprechstunde:
Nach Vereinbarung.
Email:
oop10@henning-thielemann.de
Telefon:
0345/55-24773

 


Termine


Vorlesung:

Übung:

Tutorium:

Programmiertests:

Sie müssen 2 von 4 Programmiertests bestehen, um zur Klausur zugelassen zu werden (außerdem Hausaufgaben machen und an der Übung ausreichend aktiv teilnehmen, genauer siehe Informationen zur Vorlesung):

Klausur:

Leistungspunkte und zeitliche Belastung:

 


Vorlesungs-Materialien


Folien:

Die Folien werden jeweils vor der Vorlesung hier ins Netz gestellt (leichte Verbesserungen/Korrekturen sind auch noch möglich, nachdem die Folien schon ins Netz gestellt wurden).

Aufgaben des ersten Programmiertests (zum Üben):

Klausuren aus früheren Semestern (zum Üben):

Lernkontrollen während der Vorlesung (aus Wintersemester 2006/2007):

Hinweis:

Postscript-Dateien können mit Aladdin Ghostscript angezeigt und ausgedruckt werden. Teurere Laserdrucker haben einen Postscript-Interpreter eingebaut. PDF-Dateien können mit dem Acrobat Reader angezeigt und gedruckt werden.

 


Ablauf (unverbindliche Planung)


  1. 05. Oktober 2010:
    Organisatorisches [Kapitel 0], Einführung zu Computern (CPU, RAM), Geschichte von Programmiersprachen, erstes Programmbeispiel (mit Erklärung aller Details), Editor (sehr kurz), Compiler, Linker, Entwicklungsumgebung [Kapitel 1: Folie 1-1 bis 1-29, 1-37 bis 1-56].
  2. 12. Oktober 2010:
    Wiederholung des "Hello, world" Beispiels, Aufruf des Compilers, Besprechung von Fehlermeldungen [Folie 1-133 bis 1-141, 1-147 bis 1-54]
    Variablen, Deklarationen, Basisdatentypen, Zuweisung, Simulation der Ausführung von Programmen, Bedingungen (if), Schleifen (while, for) an Beispielen, Debugger [Kapitel 2: Folie 2-1 bis 2-9, 2-15 bis 2-21, 2-26, 2-28 bis 2-70, 2-72 bis 2-75, ganz kurzer Überblick zum gdb].
  3. 19. Oktober 2010:
    Objektorientierte Programmierung am Beispiel: Klassen, Attribute, Methoden, public/private, Zeichenketten in C++, Zeiger, new [Kapitel 3: Folie 3-1 bis 3-74]
  4. 26. Oktober 2010:
    Beispielprogramm für Klassen mit verketteten Listen [Kapitel 3: Folie 3-76 bis 3-92], Lexikalische Syntax [Kapitel 4 (42 Folien)].
  5. 02. November 2010:
    Syntaxdiagramme [Kapitel 5 (34 Folien)].
    Wertausdrücke/Expressions: Operatoren, Vorrangregeln, Operatorbaum, Typkorrektheit, arithmetische Operatoren, Vergleichsoperatoren, logische Operatoren, Zuweisungen [Kapitel 6 (Folie 6-1 bis 6-57)].
  6. 09. November 2010:
    Wertausdrücke/Expressions: Automatische Typ-Umwandlungen, abgekürtze Zuweisungs-Operatoren, Inkrement/Dekrement, Auswertungsreihenfolge, spezielle Ausdrücke [Kapitel 6 (Folie 6-56 bis 6-76)]
    Statements: Expression Statement, Blöcke, Deklarationen, Bedingte Anweisungen (if, switch), Schleifen (while) [Kapitel 7 (Folie 7-1 bis 7-57)].
  7. 16. November 2010:
    Statements: Schleifen (while, for, do), Beispiele, break, continue, goto, return [Kapitel 7 (Folie 7-57 bis 7-97)].
    Arrays: Einführung, Deklaration, Arraygrenzen-Verletzung [Kapitel 8 (Folien 8-1 bis 8-25)].
  8. 23. November 2010:
    Arrays und Pointer: Wiederholung, C-Strings, Klasse string, Initialisierung von Arrays, mehrdimensionale Arrays, Zeiger: Einführung, Deklaration, Dereferenzierung, Null-Pointer, Zeiger und Arrays, Zeiger-Arithmetik [Kapitel 8 (Folie 8-26 bis 8-75)].
    Prozeduren: Motivation, Beispiel, Parameterübergabe [Kapitel 9 (Folien 9-1 bis 9-21)].
  9. 30. November 2010:
    Prozeduren: Gültigkeitsbereiche, Blöcke, Parameterübergabemechanismen, Prozeduren: Referenzen, Stack, Rekursion [Kapitel 9 (Folien 9-21 bis 9-92)].
    Saubere Programmierung: Konstanten, Aufzählungstypen [Kapitel 10 (Folie 10-38 bis 10-47)].
  10. 07. Dezember 2010:
    Saubere Programmierung: Aufzählungstypen, typedef, assert, defensive Programmierung, Warnungen. [Kapitel 10 (Folie 10-47 bis 10-65)].
    Strukturen, Union, von Strukturen zu Klassen, private/public, Methoden, Konstruktoren, Konstruktoren für objektwertige Attribute (Member), [Kapitel 11 (Folie 11-1 bis 11-19, 11-29 bis 11-69)]
  11. 14. Dezember 2010:
    Wiederholung zu Konstruktoren, Destruktoren, statische Member (Klassen-Attribute, Klassen-Methoden), Copy-Konstruktor, Zuweisungen, friend [Kapitel 11 (Folie 11-70 bis 11-101)]
    Subklassen/Vererbung: Motivation, Einführung, Beispiel [Kapitel 12 (Folie 12-1 bis 12-19)]
  12. 11. Januar 2011:
    Wiederholung zu Subklassen/Vererbung, Polymorphie, virtual, abstrakte Klassen, Einführung zur mehrfachen Vererbung (Details weggelassen) [Kapitel 12 (Folie 12-5 bis 12-48)]
    Lebensdauer von Objekten, Motivation für dynamische Speicherverwaltung [Kapitel 13 (Folie 13-1 bis 13-19)].
    (Befragung für Lehrevaluation)
  13. 18. Januar 2011:
    Dynamische Speicherverwaltung, Listen [Kapitel 13 (Folie 13-20 bis 13-48)].
    Überladen von Funktionen, überladene Operatoren [Kapitel 14 (33 Folien)].
  14. 25. Januar 2011:
    Parametrisierte Klassen und Funktion (Templates) [Kapitel 15 (53 Folien)].
  15. 01. Februar 2011:
    Ausnahmebehandlung [Kapitel 16 (15 Folien)], C-Präprozessor [Kapitel 17 (15 Folien)], Getrennte Übersetzung [Kapitel 18 (15 Folien)].

 


Hausaufgaben / Übungen (Modulvorleistung)


 


Prüfung: Klausur (Modulleistung)


 


Literatur (Lehrbücher)


Lehrbücher zu C++:

Ich empfehle, sich eins der folgenden Bücher zu beschaffen und begleitend zur Vorlesung zu lesen. Die Reihenfolge ist mehr oder weniger zufällig und nicht als Wertung zu verstehen. Von den meisten der englischsprachigen Bücher gibt es auch deutsche Übersetzungen, es empfiehlt sich aber im allgemeinen eher, das Original zu lesen (abhängig von vorhandenen Sprachkenntnissen und verfügbarer Zeit). Falls Sie weitere Bücher für diese Liste empfehlen würden, schicken Sie mir bitte eine EMail. Die Verfügbarkeit der Bücher in der Universitäts- und Landesbibliothek Halle können Sie im OPAC prüfen.

Literatur für Fortgeschrittene:

RRZN Handbücher:

Weitere Literatur:

 


Software


 


Literatur im WWW (Web-Links)


Dieser Abschnitt ist noch im Aufbau. Bitte schicken Sie mir eine EMail, wenn Sie Webseiten zum Thema der Vorlesung empfehlen möchten.


Stefan Brass (brass@informatik.uni-halle.de), 14. Oktober 2010

Original URL: http://www.informatik.uni-halle.de/~brass/oop10/   [XHTML 1.0 geprüft]   [CSS geprüft]   [Links Geprüft]