Richtlinien zur Seminaraufgabe Object-Pascal

Für die Bearbeitung der Seminaraufgabe gelten die folgenden Richtlinien:

  • Jedes Semester wird kurz vor Ende der Vorlesungen (Anfang Juli bzw. Ende Januar) die neue Aufgabenstellung für das Folgesemester veröffentlicht. Es gibt eine einzige, verbindliche Aufgabe für alle IAM, IAT und IAW.
  • Die Benotung erfolgt im Wesentlichen für vier Teile: Programm, Konzeption/Algorithmen, Implementierung und Dokumentation.
    Jeder dieser Teile muß separat bestanden (also mindestens mit einer 4.3 bewertet) werden. Wird keiner oder nur ein Teil einzeln bestanden, führt dies zwangsläufig zu einer 6, zwei oder drei bestandene Teile ergeben die Note 5.
  • Datenstrukturen zum Aufbauen von dynamischen Strukturen (z.B. TList), die von Delphi zur Verfügung gestellt werden, dürfen nicht benutzt werden, es sei denn, sie sind durch die Aufgabenstellung explizit erlaubt.
  • Zusätzlich zum Programm sind immer auch Testdaten mit abzugeben. Wenn das Programm z.B. mit Dateien arbeitet, in denen Einstellungen, Spieler etc. abgelegt werden können, dann sind mehrere (je nach verschiedenen Einstellmöglichkeiten können dies durchaus 4-5 sein) Dateien mit verschiedenen Daten darin mit abzugeben, mit denen man das Programm sinnvoll testen kann
  • Globale Variablen sind soweit wie möglich einzuschränken! Überlegt bei jeder globalen Variable, die Ihr anlegt, ob sie wirklich erforderlich ist und es keine andere, lokalere Lösung gibt. Wenn wirklich mal eine globale Variable erforderlich ist, dann schaut weiterhin, ob es ausreicht, sie im implementation-Teil zu deklarieren (und sie somit nur unit-global zu machen). Sobald sie im interface-Teil steht, ist sie auch für andere Units sichtbar und somit projekt-global (was noch viel unsauberer ist)!!
  • Jedes Programm, das dynamisch Speicher anfordert und (hoffentlich) wieder freigibt, muß globale Zähler für den Speicherverbrauch beinhalten. Deklariert Euch dazu am besten in JEDER Unit, die mit Speicher arbeitet, eine Integer-Variable und initialisiert sie mit 0, z.B.
    var NewDispose : integer = 0;
    Bei jedem Aufruf von new(...) zählt Ihr die Variable dann um 1 hoch, bei jedem dispose(...) wird ihr Wert um 1 verringert. Beim Beenden des Programms sollte dann wieder der Wert 0 erreicht sein - ansonsten ist Eure Speicherverwaltung unsauber!
    Testen könnt Ihr dies z.B., indem Ihr jeweils im finalization-Teil der Unit folgenden Code einfügt:
    finalization
      Assert (NewDispose = 0, 'Speicherverwaltung in der <Unitname> unsauber. 
    Zählerstand: ' + IntToStr(NewDispose));
  • Voraussetzung für eine Bewertung der Aufgabe ist eine Dokumentation gemäß den Doku-Richtlinien zum Programmierpraktikum:
    http://www.fh-wedel.de/mitarbeiter/klk/programmierpraktikum/regelungen/doku-richtlinien/
  • Die Kommentierung des Quellcodes soll sich an die Regeln der PS2-Übung halten:
    http://www.fh-wedel.de/mitarbeiter/klk/ps2-uebung/programmierstil/inlinedokumentation/
  • Weitere nützliche Links sind Programmierstil-Richtlinien für Pascal und Delphi auf der PS2-Seite:
    http://www.fh-wedel.de/mitarbeiter/klk/ps2-uebung/programmierstil/programmierstil-pascal/ und
    http://www.fh-wedel.de/mitarbeiter/klk/ps2-uebung/programmierstil/programmierstil-delphi/
  • Es sind folgende Compilereinstellungen vorzunehmen - insbesondere darf die erweiterte Syntax NICHT eingeschaltet sein:
    http://www.fh-wedel.de/mitarbeiter/klk/delphi/compileroptionen/
  • Spätester Abgabetermin der Aufgaben ist jeweils der letzte Vorlesungstag eines Semesters. Es gibt keine Vorführung oder gemeinsame Abnahme des Programms - es reicht aus, wenn Ihr Programm und Doku einfach im Büro bei mir oder einem anderen Mitarbeiter abgebt
  • Wer bereits bis ca. 4 Wochen vor dem Abgabetermin das komplette Programm und die Dokumentation abgibt, hat die Chance, auf eine einmalige Nachbesserung innerhalb der 4 Wochen. Der genaue Termin dieser Vorabgabe wird in der jeweils aktuellen Aufgabe genannt.

Fragen, die von allgemeinem Interesse sind, bitte in die Newsgroup ptl.pascal. Für alle anderen Fragen, insbesondere bezüglich Abgabeterminen, bitte eine E-Mail an ne@fh-wedel.de