Rechnergestützte Programmentwicklung
Institut für Informatik
Technische Fakultät, Christian-Albrechts-Universität zu Kiel
space  
 

Programmierpraktikum P1 (WS 2008/2009)

Dozenten

Prof. Dr. Rudolf Berghammer, Jan Christiansen, Lars Prädel

Aktuelles

Anmeldung zur Abnahme

Sie müssen rechtzeitig mit Ihrem Betreuer einen Termin für eine Abnahme vereinbaren. Dies sollte spätenstens eine Woche vor dem letzten Abnahmetermin (im Fall des ersten Aufgabenblattes also bis zum 28.11.) geschehen.

Anmeldung in der StudiDB

In der StudiDB gibt es zwei Veranstaltungen zum Programmierpraktikum: G 1.3 und G 1.3L. Für das Programmierpraktikum G 1.3L sollen sich nur die 2-Fach Bachelor eintragen. Das sind zum einen Studenten, die das Erweiterungsfach Informatik an Gymnasien studieren, aber auch alle anderen 2-Fach Bachelor. Alle anderen (Wirtschaftsinformatiker und Bachelor Informatik) müssen sich für die Veranstaltung G 1.3 anmelden, da sie ansonsten keinen Schein bekommen. Das heisst, falls Sie für die falsche Veranstaltung angemeldet sind, müssen Sie sich abmelden und bei der richtigen Veranstaltung wieder anmelden.

Leider ist mir bei der Einrichtung der Übungsgruppen ein Fehler unterlaufen. Ich habe versehentlich nur für die Veranstaltung G 1.3L Gruppen eingerichtet. Daher müssen sich alle, die bereits für diese Veranstaltung angemeldet waren, noch einmal abmelden und für eine der Gruppen anmelden. Die Gruppe, in der Sie eingetragen sind, bestimmt, welcher der Betreuer ihre Programme abnimmt. Da die Aufgaben in Zweiergruppen gelöst werden sollen, sollten Sie und Ihr Partner auf jeden Fall in der gleichen Gruppe sein. Genauere Informationen erhalten Sie noch einmal in der Einführungsvorlesung am 29. Oktober 2008, 14:15 - 15:45, CAP3-R.II.

Zuordnung

Das Programmierpraktikum P1 ist verpflichtend in den Informatik-Studiengängen Bachelor und Lehramt. Außerdem gibt es einige andere Studiengänge, deren Studienordnung die Teilnahme an diesem Praktikum vorsieht.
Die Vorlesung Informatik I und die dazugehörigen Übungen können nur die Grundkonzepte der Programmierung vermitteln; Programmieren kann man nur im Rahmen größerer Aufgaben, wie sie in diesem Praktikum durchgeführt werden, erlernen.

Die Praktikumsaufgaben sind in der Programmiersprache Scheme zu lösen und ein paralleler Besuch der Vorlesung Informatik I bei Herrn Hanus wird dringend empfohlen.

Ablauf

Das Praktikum beginnt am 29. Oktober 2008, 14:15 - 15:45, CAP3-R.II mit einer Einführungsvorlesung.
Außerdem müssen sich alle Teilnehmer in der Studierendendatenbank bis zum 12. November für diese Veranstaltung anmelden.

Es werden drei Aufgaben gestellt, welche Sie in Zweiergruppen lösen sollen. Die erste Aufgabe ist thematisch eigenständig, das Zeichnen von Apfelmännchen. In den Aufgaben 2 und 3 wird schrittweise eine komplexere Anwendung, eine Adressdatenbank, implementiert.
Zur Bearbeitung eines Aufgabenblattes haben Sie jeweils ca. drei Wochen Zeit. Innerhalb der Bearbeitungszeit müssen Sie Ihr Programm dem Ihnen zugeordneten Betreuer vorführen. Dabei müssen Sie außerdem beweisen, dass Sie das Programm verstehen. Ist Ihr Programm oder Ihr Verständnis unzureichend, haben Sie eine Woche Zeit, sich auf eine weitere Abnahme vorzubereiten. Diese wird von einem der Verantwortlichen für das Praktikum durchgeführt. Können Sie auch hier kein vollständiges Programm oder nur unzureichendes Wissen vorweisen, ist das gesamte Praktikum mit der Note 5,0 nicht bestanden. In der vorlesungsfreien Zeit findet eine Endabnahme statt, bei der auch Ihre Note festgelegt wird.

Bei den Abnahmen müssen Sie Ihre Lösungen auf den SUNs präsentieren. Daher muss Ihr Programm auf den SUNs lauffähig sein. Abnahmen werden nicht auf privaten Notebooks durchgeführt.

Die Aufgaben können in betreuten Rechnerzeiten gelöst werden. In diesen Zeiten stehen die Betreuer zur Beantwortung von Fragen und zur Hilfestellung zur Verfügung. Sie sind verpflichtet ab dem 17.11. in diesen Zeiten einmal in der Woche Ihr Programm einem Betreuer vorzuführen.

Rechnerzeiten

An den folgenden Terminen finden betreute Rechnerzeiten im Grundausbildungspool statt.

  Montag 14-18   Dienstag 12-16   Donnerstag 12-16   Freitag 10-16

Der erste Termin ist am 13. November, 12-16. Der Besuch der Rechnerzeiten ist einmal in der Woche verpflichtend.

An den oben angegebenen Terminen haben Sie im Grundausbildungspool die Möglichkeit sich von den Betreuern (Sascha Skulima, Florian Jahner, Parissa Sadeghi, Claas Anders Rathje, Marius Loewe, Jan Greve, Lars Prädel und Jan Christiansen) bei der Bearbeitung der Aufgaben helfen zu lassen.

Aufgaben

1. Aufgabenzettel / Mandelbrotmenge 

Das Modul apfel.scm, das die notwendigen Funktionen zum Zeichnen enthält. Da die Darstellung des gesamten Bereiches recht lange dauern kann, ist es zunächst sinnvoll, das Modul apfelKlein.scm mit kleineren width- und height-Werten zu verwenden.

Hier gibt es auch noch ein Bild des Apfelmännchens, einen Detailausschnitt, den Sie recht einfach im Apfelmännchen recht weit unten finden können. Als Motivation für schöne Farbfunktionen ein kleines Feuerwerk, welches ebenfalls zum Apfelmännchen gehört.

Informationen zu den Aufgaben

Modulsystem

Im Praktikum verwenden wir das von DrScheme zur Verfügung gestellte Modulsystem (How to Use Modules in PLT Scheme). Dazu müssen Sie unter Sprache -> Sprache auswählen die Sprache (module ...) wählen. Ab DrScheme Version 4.0 nennt sich die Sprache Module. Außerdem sollten Sie unter Details einblenden als Ausgabenotation Konstruktor wählen. Dies sorgt dafür, dass Terme im Interpreter auf die gewohnte Weise dargestellt werden.

Ein Modul wird mit dem Befehl (module name "htdp-advanced.ss" inhalt) definiert. Dabei ist name der Name des Moduls. Dieser muss mit dem Namen der Datei übereinstimmen. Zum Beispiel muss ein Modul mit dem Namen test in der Datei test.scm definiert sein. Das Modul htdp-advanced.ss stellt Ihnen den gesamten Sprachumfange des Fortgeschrittenen Sprachlevels der "How to design programs" Umgebung zur Verfügung.

Mit Hilfe des Befehls (require dateiname) können Sie auf die in einem anderen Modul definierten Funktionen zugreifen. Um zum Beispiel die Funktionen des Moduls test zu verwenden, lautet der Befehl (require "test.scm"). Mit dem Befehl (provide funktion_1 ... funktion_n) können Sie Funktionen für andere Module sichtbar machen. Beachten Sie, dass alle Funktionen, die nicht in einem provide auftauchen nur innerhalb des Moduls verwendet werden können, in dem sie definiert sind.

Falls Sie mit einer DrScheme Version 4.0 oder größer arbeiten, müssen Sie ein Modul mit (module name scheme inhalt) definieren.

Leider kann keine Unterstützung für DrScheme Versionen, die kleiner sind als 3.71, geleistet werden. Falls Sie Probleme mit einer Version größer 3.71 haben, schreiben Sie bitte eine Mail an Jan Christiansen.

Sonderform begin

Die Sonderform begin kann genutzt werden um Seiteneffekte in Scheme hintereinander auszuführen. Zum Beispiel ist das Zeichnen auf dem Bildschirm ein Seiteneffekt. Die Sonderform hat die Form (begin e1 ... en) und wird folgendermaßen ausgewertet:

  • Werte nacheinander die Ausdrücke e1, ..., en aus
  • Wert der Sonderform = Wert von en

Wenn der Ausdruck (setpixel 0 0 (farbe 0 0 0)) ausgewertet wird, wird der Pixel (0,0) schwarz gefärbt und der Wert des Ausdrucks ist true. Wenn der Ausdruck (begin (setpixel 0 0 (farbe 0 0 0)) (setpixel 1 1 (farbe 0 0 0))) ausgewertet wird, wird zuerst der Pixel (0,0) und dann der Pixel (1,1) schwarz gefärbt und der Wert dieses Ausdrucks ist true.

Weitere Informationen zu Scheme und dem DrScheme-System entnehmen Sie bitte den Seiten zur Übung und zur Vorlesung Informatik I.

 
Jan Christiansen - jac@informatik.uni-kiel.de
Last modified: 13-Nov-2008, 10:47:55 MET