Home | Lehre | Videos | Texte | Vorträge | Software | Person | Impressum, Datenschutzerklärung |
Alle letzten Änderungen dieser Webseite
sind durch rote Schrift gekennzeichnet!
letzte Änderung: 1. Juli 2001
Eingeschobene Seiten sind nach dem Muster 10, 10a, 10b, 11 nummeriert. Ändere ich Skripte im Nachhinein z.B. wegen Fehlern, stelle ich zusätzlich eine kommentierende HTML-Datei namens changes.html in das jeweilige Verzeichnis.
Die Abgabefristen für die Teilaufgaben sind in der Terminliste angegeben (Abgabe bis 16 h am jeweiligen Tag). Zusätzlich soll jede Gruppe in einem kleinen Kolloquium Ihre Lösung demonstrieren, erklären und weitergehende Fragen dazu beantworten (Termin pro Gruppe nach Absprache). Ich stehe Ihnen jederzeit für Fragen zur Verfügung (E-Mail bevorzugt), werde aber darauf achten, Ihnen nur Denkanstöße z.B. zur Fehlersuche zu geben, keinesfalls fertige Lösungen. Sie sollten keine fremden Programme abkupfern. Weil Sie diese nicht so gut verstehen wie selbstgeschriebene, bringt Ihnen das sowieso bei der Benotung Nachteile.
Für das Programm vergebe ich null bis drei
Punkte, und zwar die kleinste Punktzahl aus den vier Kategorien folgender
Tabelle. Die laut Prüfungsordnung geforderte Dokumentation ist Teil
des Programms, wie sich aus der Tabelle ergibt.
Punktzahl | Problemlösung | Strukturierung/Klassen | Wahl der Bezeichner | Kommentierung |
0 | wesentlicher Teil fehlt | konfus | konfus | praktisch nicht vorhanden |
1 | weitgehend, aber z.B. wichtige Ausnahmefälle/Fehler nicht behandelt, obwohl in Aufgabe gefordert | teilweise logische Mängel | teilweise verwirrend | Das Programm ist seine eigene Dokumentation. Jede Klasse und jede Methode enthält eine Beschreibung des Algorithmus und wichtiger Variablen. |
2 | praktisch vollständig | logisch | verständlich | Zusätzlich: Alle kritischen Stellen sind kommentiert |
3 | vollständig | stark modular, leicht zu erweitern und anzupassen | selbsterklärend | Zusätzlich: Alle nicht auf den ersten Blick einleuchtenden Stellen sind kommentiert. |
Ergeben sich in allen Kategorien drei Punkte, vergebe ich vier Punkte für das Programm, wenn es deutlich über die Aufgabenstellung hinausgeht. Das kann zum Beispiel dadurch geschehen, dass die vorgegebene Funktion stark, aber sinnvoll erweitert wird, oder dass ein eventuell vorgegebenes Objektmodell drastisch verbessert wird (Begründung nötig, z.B. als Kommentar).
Im Mini-Kolloquium stelle ich Fragen an jedes Gruppenmitglied, um festzustellen, inwieweit es das Programm verstanden hat. Auch das bewerte ich mit Punkten:
14..Mär | Mi | C++ für Java-Programmierer: main, Deklaration, Header, Präprozessor, Compiler und Linker |
14. Mär | Mi | Geschichte der grafischen Oberflächen, Event/Message, Event Loop, Message Queue, Paint, Repaint/Invalidate, Beispiele für direkte Programmierung von Win32 und MacOS, Besonderheiten des X Window System |
21. Mär | Mi | C++ für Java-Programmierer: Pointer, Arrays sind Pointer oder auch nicht, Parameterübergabe, Speicherverwaltung mit malloc und new, Referenzen, const |
21. Mär | Mi | Überblick: Funktions-/Klassenbibliotheken für GUI-Programmierung, am Rande: HTML-Formulare, Tcl/Tk, Visual Basic |
28. Mär | Mi | C++ für Java-Programmierer: (weiter: Speicherverwaltung, Referenzen, const), Konstruktor, Destruktor, einfache und mehrfache Vererbung, Attribut-Initialisierung, virtuelle Methoden, überladene und überschriebene Funktionen, Default-Argumente |
28. Mär | Mi | C++ für Java-Programmierer: überladene Operatoren, Default-Methoden, Copy-Konstruktor |
18. Apr | Mi | C++ für Java-Programmierer: (weiter: Copy-Konstruktor), Exceptions, Namespaces, Strings, Stream-I/O für Konsole und Dateien |
18. Apr | Mi | C++ für Java-Programmierer: Typumwandlung, Templates, Standard-C-Library und -C++-Library (inkl. STL) im gröbsten Überblick |
25. Apr | Mi | Metaphern, Design als Prozess, Prototypen, Usablity, Evaluation, "gutes" Design, "Intuitivität" |
25. Apr | Mi | grafische Gestaltung, Icons, Interaktionsmodelle (Fitts, GOMS), Normen/Recht |
02. Mai | Mi | Fenster, Dialoge, Standard-Widgets und ihre übliche Verwendung |
02. Mai | Mi | GUI-Vermischtes: Drag & Drop, Zwischenablage, Undo, Fokus ... |
09. Mai | Mi | Zehnjahresfeier Technische Informatik |
09. Mai | Mi | Abgabe Entwicklungsaufgabe 1: C++-Klassensammlung |
16. Mai | Mi | Swing: Überblick, Objektkommunikation, Multithreading |
16. Mai | Mi | make; grafische Entwicklungsumgebungen, Debugger; assert; Besprechung der Lösungen von Entwicklungsaufgabe 1 |
28. Mai | Mo | Terminänderung, 1. Block, E404 Swing: Objektserialisierung, Layout-Manager |
28. Mai | Mo | Terminänderung, 2. Block, E404 Swing: Menüs, Untermenüs, Popup-Menüs, Schaltflächen, Icons, Zeichenflächen |
30. Mai | Mi | Swing: Dialogboxen (modal/nichtmodal), Checkboxen, Radiobuttons, Textfelder, Auswahlfelder, Listen, Scrollflächen, teilbare Flächen, Baumdarstellung |
30. Mai | Mi | MFC: Überblick, Compilierung, Objektkommunikation, Message Map |
06. Jun | Mi | MFC: Buttons, Checkboxen, Radiobuttons, Textfelder, Auswahlfelder, Listen und andere Standard-Controls |
06. Jun | Mi | MFC: Umgang mit Visual C++; Ressourcen; Assistenten; Menüs und Dialoge grafisch entwickeln |
13. Jun | Mi | MFC: Objektserialisierung, MFC-Listenklasse, Menüs, Kontextmenüs, Menü per Ressource |
13. Jun | Mi | MFC: Anwendungs- und Klassenassistent von Microsoft Visual C++, Dialog per Ressource, Dialogbehandlung (modal/nichtmodal), DDX, DDV |
13. Jun | Mi | Abgabe Entwicklungsaufgabe 2: Prototyp in Java Swing |
20. Jun | Mi | KDE 2.0: Überblick, Compilierung (moc, make), Objektkommunikation (Events, Slots und Signals) |
20. Jun | Mi | KDE 2.0: Actions, Menüs, Statuszeile |
27. Jun | Mi | KDE 2.0: Layout-Manager, Dialogboxen (modal/nichtmodal), Schaltflächen, Checkboxen, Radiobuttons, Textfelder, Auswahlfelder, Listen |
27. Jul | Mi | KDE 2.0: Session Management, Dateien, Ressourcen |
04. Jul | Mi | KDE 2.0: Umgang mit KDevelop und Qt Designer |
04. Jul | Mi | Mensch-Maschine-Kommunikation: Trends und Versuche |
16. Jul | Mo | Abgabe Entwicklungsaufgabe 3: Ausführung in MFC |
18. Jul | Mi | Abgabe Entwicklungsaufgabe 3a: Ausführung in KDE 2.0 |