[Stud.IP]
[Lernziele]
[Dozent]
[Termine]
[Ablaufplanung]
[Materialien]
[Bücher]
[Software]
[Links]
MARTIN-LUTHER-UNIVERSITÄT HALLE-WITTENBERG
Institut für Informatik
Prof. Dr. Stefan Brass
Objektorientierte Programmierung
(Winter 2008/2009)
Klausureinsicht:
- Montag, 18.05.09, 10:00 - 11:00 Uhr, Raum 2.12
- Dienstag, 19.05.09, 14:00 - 15:00 Uhr, Raum 2.12
- Außerdem auch im Sekretariat, Raum 3.24, zu den Sprechzeiten
(bis zur Archivierung der Klausuren).
- Bei Fragen stehen Prof. Dr. Stefan Brass
und Annett Thüring zu ihren Sprechzeiten
zur Verfügung.
- Wir haben grundsätzlich nichts dagegen,
daß Sie sich die Klausur mit den Korrekturen kopieren.
Es ist dabei allerdings eine Aufsicht erforderlich,
was sich nicht zu jeder Zeit technisch machen läßt.
- Klausur:
[PDF]
[ps, verkleinert]
Die Nachklausur ist für den 15.09.2009, 10:00-12:00
in Raum 509/510, 307 geplant.
Sie können an der Nachklausur auch teilnehmen,
wenn Sie an der ersten Klausur nicht teilgenommen haben.
Bücher, Notizen, Skript (schriftliche Unterlagen) sind erlaubt,
Notebooks etc. sind nicht erlaubt.
Beachten Sie bitte,
daß Sie sich auch zur Nachklausur rechtzeitig
anmelden müssen.
Die Anmeldung ist vom 01.05.2009 bis 18.08.2009
über
CSS
möglich.
Sollte die Anmeldung über CSS nicht funktionieren,
müssen Sie sich bei Ihrem Heimatprüfungsamt
(also dem für Ihren Studiengang zuständigen Prüfungsamt)
anmelden.
Bitte beachten Sie auch die Informationen
des Informatik-Prüfungamtes:
Alle Angaben ohne Gewähr!
Informieren Sie sich lieber selbst im Prüfungsamt.
Und schauen Sie bitte noch gelegentlich auf diese Seite.
Wenn ich etwas über Änderungen oder Korrekturen
erfahre,
werde ich es hier bekanntgeben.
Klausuren aus dem Wintersemester 2006/2007 (zum Üben):
Der Programmiertest ist leider sehr schlecht ausgefallen
(erster und zweiter Versuch).
Wenn Sie die Modulvorleistung nicht erreicht haben,
haben Sie zwar keinen Prüfungsversuch verbraucht
(der Programmiertest zählt nicht als Prüfung),
aber Sie können einige für das zweite Semester
geplante Vorlesungen nicht belegen.
Gehen Sie in diesem Fall zum Studienberater.
Einige Bemerkung von mir
finden Sie hier.
Erster Programmiertest
(auch gut zur Klausurvorbereitung):
Zweiter Programmiertest
(Wiederholungsmöglichkeit,
zur Klausurvorbereitung empfohlen):
Aus der Weihnachtsvorlesung:
Wettbewerb für möglichst unverständliche
C-Programme:
The International Obfuscated C Code Contest.
Link auf den Standard für C++:
[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2798.pdf].
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:
- Programmieren
(Selbständige Erstellung eigener Programme
für gegebene Aufgaben).
- Rechner, Betriebssystem und Editor/Entwicklungsumgebung
ausreichend bedienen.
- Gegebene Programme verstehen.
(z.B. Klausurfrage: Was gibt dieses Programm aus?)
- Die syntaktische Korrektheit gegebener Programme beurteilen
(dazu Syntax-Formalismen anwenden können)
- Grundkonzepte von imperativen und objekt-orientierten) Programmiersprachen
kennen,
sich leicht in neue Sprachen einarbeiten können.
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:00-13:00
- Email:
-
brass@acm.org
- Telefon:
-
0345/55-24740 (Büro)
0345/55-24750 (Sekretariat)
0345/2036377 (zu Hause, bitte nur 7-13, 16-21)
- 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-16:00
- Email:
-
annett.thuering(at)informatik.uni-halle.de
- Telefon:
-
0345/55-24739
Termine
Vorlesung:
- Dienstag, 10:15-11:45, Hörsaal 3.28
(Gebäude Von-Seckendorff-Platz 1,
das ist Gebäude 38 auf
dieser Karte).
Beginn: 07.10.2008
Übung:
- Zwei Stunden pro Woche,
es waren sechs Gruppen geplant
(immer zwei parallel, es gibt also nur drei verschiedene Zeiten),
inzwischen wird noch eine siebte angeboten
(evenfalls parallel):
Nr | Tag | Zeit | Raum | Beginn | Webseite
|
---|
1 | Montags | 12:15-13:45 | 3.34 | 06.10. |
Stud.IP
|
2 | Montags | 14:15-15:45 | 3.34 | 06.10. |
Stud.IP
|
3 | Montags | 16:15-17:45 | 3.34 | 06.10. |
Stud.IP
|
4 | Montags | 12:15-13:45 | 3.32 | 06.10. |
Stud.IP
|
5 | Montags | 14:15-15:45 | 3.32 | 06.10. |
Stud.IP
|
6 | Montags | 16:15-17:45 | 3.32 | 06.10. |
Stud.IP
|
7 | Montags | 14:15-15:45 | 3.35 | 27.10. |
Stud.IP
|
- Sie müssen sich zu den Übungen im StudIP anmelden.
Falls Sie dabei Hilfe brauchen,
kommen Sie bitte zur ersten Übung am 06.10.2008
in den Rechnerpool 3.34.
Falls in der Übung kein Platz mehr frei sein sollte,
müssen Sie allerdings warten
(die korrekt in StudIP angemeldeten Teilnehmer haben
natürlich Vorrang).
Bringen Sie bitte Benutzerkennung und Passwort mit
(sollten Sie mit den Immatrikulations-Unterlagen erhalten haben).
- Die Übung wird als praktische Übung am Rechner durchgeführt.
Zu den theoretischen Aufgaben wird eine Musterlösung
ins Netz gestellt.
Wenn daraus nicht alles klar werden sollte,
können Sie selbstverständlich fragen.
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):
- 0. Informationen zur Vorlesung
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 1. Einführung (wird eventuell noch erweitert)
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 2. Beispiele für Zuweisungen und Kontrollstrukturen
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 3. Lexikalische Syntax
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 4. Syntaxdiagramme und Grammatikregeln
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 5. Wertausdrücke (Expressions)
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 6. Anweisungen (Statements)
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 7. Arrays und Zeiger (Pointer)
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 8. Funktionen/Prozeduren
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 9. Klassen/Strukturen
(103 Folien)
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 10. Subklassen/Vererbung
(56 Folien)
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 11. Dynamische Speicherverwaltung
(34 Folien)
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 12. Überladene Funktionen und Operatoren
(33 Folien, wird ggf. noch erweitert)
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 13. Templates (Parametrisierte Klassen und Funktionen)
(53 Folien, wird ggf. noch erweitert)
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 14. Exceptions (Ausnahmebehandlung)
(15 Folien, wird ggf. noch erweitert)
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- ...
Weitere Themen (in Arbeit):
- 15. Der C Präprozessor
[in Arbeit, aber es gibt meine alten Folien für C]
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 16. Getrennte Übersetzung/Der Linker
[in Arbeit, aber es gibt meine alten Folien für C]
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 17. Der Debugger
[in Arbeit, aber es gibt meine alten Folien für C]
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 18. Namespaces
- 19. Assertions
- 20. Die Standard-Bibliothek
Klausuren aus dem Wintersemester 2006/2007 (zum Üben):
Lernkontrollen während der Vorlesung
(aus Wintersemester 2006/2007):
Übungsblätter:
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.
- 07. Oktober 2008:
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 (65 Folien)].
- 14. Oktober 2008:
Variablen, Deklarationen, Basisdatentypen, Zuweisung,
Bedingungen (if), Schleifen (while, for) an Beispielen
[Kapitel 2 (53 Folien)].
- 21. Oktober 2008:
Lexikalische Syntax [Kapitel 3 (42 Folien)],
Syntaxdiagramme [Kapitel 4 (nur bis Folie 4-11)].
- 28. Oktober 2008:
Syntaxdiagramme [Kapitel 4 (Rest: 4-12 bis 4-34)].
Wertausdrücke/Expressions [Kapitel 5 (nur bis Folie 5-41)].
- 04. November 2008:
Wertausdrücke/Expressions [Kapitel 5 (Rest: 5-42 bis 5-68)].
Statements [Kapitel 6 (bis Folie 6-14)].
- 11. November 2008:
Statements [Kapitel 6 (bis Folie 6-70)].
- 18. November 2008:
Statements [Kapitel 6 (Rest: bis 6-89)].
Arrays, Konstanten [Kapitel 7, bis 7-31]
- 25. November 2008:
Arrays, Zeiger [Kapitel 7, bis 7-64]
- 02. Dezember 2008:
Zeiger und const, Vergleich mit Zeigern in Pascal [7-64 bis 7-68]
Prozeduren, Gültigkeitsbereiche, Blöcke,
Parameterübergabemechanismen [Kapitel 8 bis 8-46].
- 09. Dezember 2008:
Prozeduren: Referenzen,
Stack, Rekursion
[Kapitel 8: Rest: 8-47 bis 8-80].
Strukturen [Kapitel 9 bis Folie 9-19]
- 16. Dezember 2008:
Union, Exkurs: Aufzählungstypen, von Strukturen zu Klassen,
private/public, Methoden, Konstruktoren
[Kapitel 9: 9-20 bis 9-65].
- 13. Januar 2009:
Konstruktoren für objektwertige Attribute (Member),
Destruktoren, statische Member (Klassen-Attribute, Klassen-Methoden),
Copy-Konstruktor, Zuweisungen, friend, Exkurs: typedef
[Kapitel 9: Rest: 9-66 bis 9-103]
Vererbung, Polymorphie [Kapitel 10, bis Folie 10-17].
(Befragung für Lehrevaluation)
- 20. Januar 2009:
Vererbung, Polymorphie [Kapitel 10, Rest: 10-18 bis 10-56]
Lebensdauer von Objekten, dynamische Speicherverwaltung,
Listen [Kapitel 11].
- 27. Januar 2009:
Überladen von Funktionen, überladene Operatoren
[Kapitel 12].
Parametrisierte Klassen (Templates) [Kapitel 13, bis Folie 13-20].
- 03. Februar 2009:
Templates (Parametrisierte Klassen und Funktionen)
[Kapitel 13, Rest].
Ausnahmebehandlung [Kapitel 14].
- Um zur Prüfung (Klausur) zugelassen zu werden,
müssen Sie zwei Voraussetzungen erfüllen:
- Sie müssen in den Hausaufgaben
mindestens 50% der Punkte erreichen.
- Sie müssen in Programmieraufgaben am Rechner
(während der Übungen)
ausreichende praktische Programmierfähigkeiten nachweisen.
Daneben muß man sich natürlich zu Modul
und zur Modulleistung (Klausur) korrekt anmelden.
- Die Hausaufgaben sind einzeln oder in Gruppen bis zu ca. 3 Personen
abzugeben.
Es können nur Personen zusammen die Hausaufgaben abgeben,
die an der gleichen Übungsgruppe teilnehmen.
Wenn Sie Hausaufgaben in einer Gruppe bearbeiten,
geben Sie bitte nur ein Exemplar für die ganze Gruppe ab.
Sie müssen jede von Ihrer Gruppe abgegebene Lösung
einzeln vorrechnen und erklären können.
Sie dürfen maximal drei Mal fehlen,
ansonsten liegt es allein im Ermessen der Übungsleiterin,
ob die Hausaufgaben-Ergebnisse angerechnet werden können.
- Die Hausaufgaben werden immer Dienstags in der Vorlesung ausgegeben
und ins Netz gestellt:
[Stud.IP]
Die Abgabe ist dann am folgenden Montag
bis 24:00 über die Übungsplatform in Stud.IP.
Am Dienstag morgen wird eine Musterlösung ins Netz gestellt.
- Die maximale Gruppengröße ist verhandelbar,
aber zu ähnliche Lösungen verschiedener Gruppen
haben ernste Konsequenzen (Täuschungsversuch:
Punkteabzug für alle beteiligten Gruppen bis zu 100%,
Ausschluß vom Modul im Wiederholungsfalle).
ACHTUNG!
Wir benutzen einen automatischen Plagiatstest.
- Während der Übung gibt es Präsenzübungen,
die dort am Rechner zu lösen sind,
und gleich dem Betreuer vorgeführt werden können.
Für diese Aufgaben gibt es keine einzelnen Punkte,
aber falls Sie im Laufe des Semesters zeigen,
daß Sie mit diesen Aufgaben gut zurecht kommen,
kann die Übungsgruppenleiterin das als äquivalent
zum Programmiertest (s.u.) werten.
Sie würden sich so die prüfungsähnliche Situation
an einem einzelnen Termin ersparen.
- Falls Sie nicht bereits während der Übungen gezeigt haben,
daß Sie einfache Programme problemlos am Rechner entwickeln
können,
müssen Sie während der Übung am 26.01.2009
einzeln am Rechner ein Programm entwickeln und es
anschließend erklären.
Neben den Hausaufgabenpunkten
ist der Nachweis praktischer Programmierfähigkeiten
Vorbedingung für die Zulassung zur Klausur.
- Die Klausur findet voraussichtlich am Dienstag,
den 31. März 2009,
10:15-11:45, in Raum 509/510 statt
(bitte achten Sie zur Sicherheit auf eventuelle weitere
Ankündigungen).
- Man kann an der Klausur und der Nachholklausur nur teilnehmen,
wenn man 50% der Hausaufgabenpunkte hat
und die praktischen Programmierfähigkeiten
in den Übungen nachgewiesen hat
(entweder verteilt über das ganze Semester,
oder beim Programmiertest am 26.01.2009).
- Die Verwendung von schriftlichen Unterlagen
(Bücher, Notizen, Kopien, etc.)
in der Klausur ist erlaubt.
- Die Verwendung von Computern in der Klausur ist nicht erlaubt.
Insbesondere kann man die zu erstellenden Programme nicht
ausprobieren.
- Mit 65% der Klausurpunkte hat man sicher bestanden,
mit 95% bekommt man eine 1.0 (A).
Diese Grenzen werden eventuell noch gesenkt.
- Es gibt eine Nachholklausur im Laufe des folgenden Sommersemesters,
der genaue Termin steht noch nicht fest.
Auch an der Nachholklausur kann natürlich nur teilnehmen,
wer die Modulvorleistung (Hausaufgaben und Programmiertest)
erfüllt.
- Für Korrekturen zu den Vorlesungsmaterialien,
Vorschläge nützlicher Web-Links,
aktive Teilnahme an den Diskussionen in der Vorlesung
u.s.w. kann es Extrapunkte geben (nach Ermessen des Dozenten
bis maximal 5% der Klausurpunkte).
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.
Manche der Bücher setzen bereits Programmierkenntnisse voraus,
manche behandeln nicht die Sprache C++
(genauere Kommentare in der Vorlesung).
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.
- Ulla Kirch-Prinz, Peter Prinz:
C++, Lernen und professionell anwenden, 3. Auflage.
mitp, 2005, ISBN 3-8266-1534-4, 895 Seiten, 44.95 Euro
Microsoft Visual C++ Book Edition auf beiliegender CD.
[Amazon.de]
- Helmut Erlenkötter:
C++, Objektorientiertes Programmieren von Anfang an, 9. Auflage.
Rowohlt, 2006, ISBN 3-499-60077-3, 332 Seiten, 10.50 Euro.
[Amazon.de]
- Bjarne Stroustrup:
The C++ Programming Language, Special Edition.
Addison-Wesley, 2000, ISBN 0-201-70073-5, 1020 Seiten,
50.89 Euro.
[Amazon.de]
- Dirk Louis:
C++ easy.
Programmieren mit einfachen Beispielen.
Markt und Technik, 2005, ISBN 3827269679, 384 Seiten,
16.95 Euro.
Mit C++ Builder X Personal Edition auf CD-ROM
(muß bei Borland aktiviert werden).
[Amazon.de]
- Scott Meyers:
Effective C++. 55 Specific Ways to Improve Your Programs and Designs,
3rd Edition.
Addison-Wesley, 2005, ISBN 0-321-33487-6, 297 Seiten,
33.89 Euro.
[Amazon.de]
- Scott Meyers:
More Effective C++. 35 New Ways to Improve Your Programs and Designs.
Addison-Wesley, 1996/(2006?),
ISBN 0-201-63371-X, 318 Seiten, 35.89 Euro.
[Amazon.de]
- RRZN (Regionales Rechenzentrum Niedersachen):
Programmiersprache C (Nachschlagewerk), 14. Aufl., 3.45 Euro
In den Übungen und beim Universitätsrechenzentrum erhältlich
(Kurt-Mothes-Straße 1, Raum 108 oder 110)
[Informationen des Rechenzentrums]
- RRZN (Regionales Rechenzentrum Niedersachen):
C++ (Von C zu C++), 12. Aufl., 3.55 Euro
In den Übungen und beim Universitätsrechenzentrum erhältlich
(Kurt-Mothes-Straße 1, Raum 108 oder 110)
[Informationen des Rechenzentrums]
- Gerhard Goos, Wolf Zimmermann:
Vorlesungen über Informatik 1.
Grundlagen und funktionales Programmieren. 4. Aufl.
Springer, 2005, ISBN 3540244050, 400 Seiten, 26.95 Euro.
[Amazon.de]
- Gerhard Goos, Wolf Zimmermann:
Vorlesungen über Informatik 2.
Objektorientiertes Programmieren und Algorithmen. 4. Aufl.
Springer, 2006, ISBN 3540244034, 375 Seiten, 26.95 Euro.
[Amazon.de]
- Hans-Jürgen Appelrath, Jochen Ludewig:
Skriptum Informatik. Eine konventionelle Einführung. 5. Aufl.
Teubner, 2000, ISBN 3519421534, 462 Seiten, 27.90 Euro.
[Amazon.de]
- Brian W. Kernighan, Dennis M. Ritchie:
The C Programming Language, 2nd Ed.
Prentice Hall, 1988, ISBN 0-13-11-362-8, 272 Seiten, 38.45 Euro.
[Amazon.de]
- Michael Seeboerger-Weichselbaum:
Programmieren mit Eclipse 3.
mitp, 2006, 3-8266-7379-4, 389 Seiten, mit CD-ROM, 29.95 Euro.
[Amazon.de]
- INCITS/ISO/IEC 14882-2003:
Programming Languages - C++.
Offizieller Standard (Kein Lehrbuch!).
PDF-Datei für $30 erhältlich beim ANSI.
[Online-Shop des ANSI]
- GNU (Free Software Foundation)
- Microsoft
- Borland
- Eclipse (Java-basierte IDE)
- Code::Blocks (Freie C++ IDE für Windows und Linux)
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@acm.org),
1. Oktober 2008
Original URL:
http://www.informatik.uni-halle.de/~brass/oop08/
[HTML 3.2 Checked]
[Links Geprüft]