Bitte unbedingt das Merkblatt lesen!
Die Einschreibung zur Lehrveranstaltung erfolgt über das LEHVIS-System. Für Fragen zu den Aufgabenblättern ist der Tutor der entsprechenden Übungsgruppe zuständig, dessen E-Mail-Adresse dem LEHVIS-System entnommen werden kann. (Dazu nach dem Einloggen auf „Übersicht“ klicken!)
Bitte achten Sie darauf, dass Sie auch E-Mails lesen, die an Ihre zentrale BTU-Adresse (…@tu-cottbus.de) und Ihre Informatikadresse (…@informatik.tu-cottbus.de) gesendet werden. Sollten Sie bereits eine private E-Mail-Adresse haben, dann können Sie die E-Mails dahin weiterleiten lassen. Für die BTU-Adresse kann diese Weiterleitung über die Administrationswebsite für den zentralen BTU-Account aktiviert werden. Hinweise zur Weiterleitung von E-Mails, die an die Informatik-Adresse gesendet wurden, finden Sie auf den entsprechenden Serviceseiten des Instituts für Informatik. (Hilfe kann Ihnen Frau Ebert geben.)
Bei organisatorischen Fragen (zum Beispiel bei Problemen beim Finden einer geeigneten Übungsgruppe) wendet man sich an Wolfgang Jeltsch. Seine offiziellen Sprechzeiten sind dienstags von 11.00 Uhr bis 13.00 Uhr und freitags von 10.00 Uhr bis 12.00 Uhr. Während dieser Zeiträume kann man ihn auf jeden Fall in seinem Büro antreffen.
Das Tutorium ist eine Hörsaalübung, in der Vorlesungsstoff wiederholt und an Beispielen verdeutlicht wird. Es findet montags von 11.30 Uhr bis 13.00 Uhr im Audimax 1 statt und wird von Prof. Dr. Peter Bachmann geleitet.
Achtung! Das erste Tutorium findet bereits am 15. Oktober 2007 statt. Dort werden hauptsächlich organisatorische Fragen behandelt.
Begleitend zur Lehrveranstaltung gibt es zwei Webforen:
Das Lösen der Übungsaufgaben und das Einreichen der Lösungen beim Tutor ist freiwillig. Die Lösungen gehen in keiner Weise in die Prüfung ein, aber ohne Üben ist die Chance zum Bestehen der Lehrveranstaltung sehr gering. Gern können Übungsaufgaben mit anderen Studenten gemeinsam gelöst werden und gern können gemeinsame Lösungen abgegeben werden, aber selbst gelöst schafft Sicherheit.
Abgebene Lösungen werden auf Richtigkeit geprüft und mit Kommentaren versehen. Die Aufgabenblätter sind sehr umfangreich und es wird nicht erwartet, dass alle Aufgaben gelöst werden. Lösungen werden nicht bewertet, aber es wird eine formale Einschätzung vorgenommen, die helfen soll, den Arbeitseifer zu steuern. Diese Einschätzung besteht aus zwei Ziffern und ist folgendermaßen zu interpretieren:
Insgesamt werden 12 Aufgabenblätter ausgegeben. Die Lösung der Aufgaben ist in schriftlicher Form beim jeweiligen Tutor abzugeben. Für manche Aufgaben sind Haskell-Programme, für manche C++-Programme zu schreiben. Die Quelltexte dieser Programme müssen über LEHVIS abgegeben werden. (Dazu nach dem Einloggen auf „Programmabgabe“ klicken!) Nur syntaktisch korrekte Quelltexte werden vom System akzeptiert und an den Tutor weitergeleitet.
Für die Programmabgabe sind Vorgaben zu benutzen:
Eine Vorgabe besteht aus einer Datei mit der Bezeichnung vorgUm.n.hs bzw. vorgUm.n.xxx.hs. Dabei ist m die Nummber des Aufgabenblattes, n die Nummer der Aufgabe und xxx ein Identifikator, der bei Aufgaben verwendet wird, in denen mehrere Funktionen zu implementieren sind. Die Vorgabedatei ist jeweils herunter zu laden und zu einer Lösung zu ergänzen. Bei der Programmabgabe ist diese Datei dann wieder einzureichen. (Hierzu den Schalter „Quelltexte senden“ verwenden!)
In der Vorgabedatei ist als Kommentar ein Standardtestfall einschließlich Lösung angegeben. Es empfiehlt sich, auf dem lokalen Rechner diesen Testfall abzuarbeiten.
Eine Vorgabe besteht aus drei Dateien:
main-FunktionDie Bedeutung von m und n ist analog zu den Haskell-Vorgaben. Alle drei Vorgaben sind in einer ZIP-Datei zusammen gefasst, die herunter zu laden und zu entpacken ist. Nur in der Datei aufgUm.n.c++ sind Ergänzungen vorzunehmen. Bei der Programmabgabe sind die drei Dateien separat einzureichen.
Im C++-Teil sind keine Standardtestfälle angegeben.
Wichtig: In den Vorgaben dürfen grundsätzlich keine vorhandenen Einträge verändert werden.
Achtung! Manche Programmieraufgaben sind auch im Programmierpraktikum gestellt. Die Studenten, die am Programmierpraktikum teilnehmen, reichen die entsprechenden Lösungen dort ein und nicht hier.
Die Aufgabenblätter inklusive Vorgaben sowie nach Abgabetermin veröffentlichte Musterlösungen finden sich in folgender Tabelle:
| lfd. Nr. | Aufgabenblatt | Vorgaben | Abgabe in der Woche | Musterlösung | |
|---|---|---|---|---|---|
| vom | bis | ||||
| 1 | Download | 22.10.2007 | 26.10.2007 | Download | |
| 2 | Download | 29.10.2007 | 02.11.2007 | Download | |
| 3 | Download | 05.11.2007 | 09.11.2007 | Download | |
| 4 | Download | 12.11.2007 | 16.11.2007 | Download | |
| 5 | Download | 26.11.2007 | 30.11.2007 | Download | |
| 6 | Download | 03.12.2007 | 07.12.2007 | Download | |
| 7 | Download | 10.12.2007 | 14.12.2007 | Download | |
| 8 | Download | 17.12.2007 | 21.12.2007 | Download | |
| 9 | Download | 14.01.2008 | 18.01.2008 | Download | |
| 10 | Download | 21.01.2008 | 25.01.2008 | Download | |
| 11 | Download | 28.01.2008 | 01.02.2008 | Download | |
| 12 | Download | 04.02.2008 | 08.02.2008 | Download | |
Es werden Übungsgruppen mit bis zu 20 Teilnehmern gebildet. Für jede Übungsgruppe ist wöchentlich ein Block als Präsenzzeit reserviert. Dieser soll zur Beantwortung von Fragen der Studenten sowie zum Besprechen von Lösungen genutzt werden.
Die vorhandenen Übungsgruppen können dem Stundenplan entnommen werden. Manche Übungsgruppen sind ausschließlich für Studenten bestimmter Studiengänge vorgesehen, andere sind unabhängig von einem bestimmten Studiengang.
Studenten, welche sowohl die Übung als auch das Programmierpraktikum absolvieren, schreiben sich bitte für Übung und Programmierpraktikum beim selben Tutor ein. Studenten, welche nur die Übung absolvieren, schreiben sich bitte bei einem Tutor ein, welcher keine Praktikumsgruppen betreut.
Zur Lösung der Haskellaufgaben können z.B. die Haskellsysteme Hugs und Helium benutzt werden. Hugs ist das System, mit dem die Programmabgaben durch LEHVIS getestet werden. Es sollte also sicher gestellt werden, dass die geschriebenen Programme mit Hugs funktionieren. Helium dagegen kann während der Programmentwicklung von Vorteil sein. Helium unterstützt zwar nur eine eingeschränkte Variante von Haskell, liefert dafür aber sehr aussagekräftige Warnungen und Fehlermeldungen. Es wurde speziell für das Erlernen von Haskell entwickelt.
Die Einschränkungen von Helium sollten im Rahmen unserer Lehrveranstaltung kaum zum Tragen kommen und im Zweifelsfall kann ja immernoch auf Hugs ausgewichen werden. Eine wichtige Einschränkung ist, dass Helium keine (n + k)-Muster unterstützt. Die folgende Definition der Fakultätsfunktion wird daher von Helium nicht akzeptiert:
fac :: Int -> Int fac 0 = 1 fac (n + 1) = (n + 1) * fac n
Das Problem ist das Muster (n + 1) in der letzten Zeile. Das ist nicht übermäßig tragisch, da man den Code wie folgt umschreiben kann:
fac :: Int -> Int fac 0 = 1 fac n = n * fac (n - 1)
Analog können sämtliche Vorkommen von (n + k)-Mustern beseitigt werden.
Zum Entwickeln und Testen der C++-Programme kann z.B. der GNU-C++-Compiler (g++) benutzt werden. Da LEHVIS die Programme mit diesem Compiler testet, müssen sie mit diesem verträglich sein.
Die folgende Tabelle gibt Installationshinweise für die einzelnen Softwarepakete für unterschiedliche Betriebssysteme. Dabei gelten die Informationen zu Debian GNU/Linux vermutlich auch für die Betriebssysteme der Ubuntufamilie. Ich würde mich freuen, wenn jemand von Ihnen Informationen zur Installation auf anderen Betriebssytemen (z.B. Mac OS X oder Fedora) hat und diese mir mitteilt.
| Hugs | Helium | GNU-C++-Compiler | |
|---|---|---|---|
| Debian GNU/Linux 4.0 | das Paket hugs installieren | die Pakete ghc6, libghc6-mtl-dev, sun-java5-jre (non-free) und wget installieren, das Script get-helium herunter laden, die in der Datei enthaltenen Lizenzbedingungen beachten und das Script mit dem Helium-Zielverzeichnis als Argument ausführen | das Paket g++ installieren (sofern es nicht schon installiert ist) |
| Microsoft Windows XP | MinHugs-Sep2006.exe herunter laden, starten und den Anweisungen folgen | SetupHelium1.6.exe herunter laden, starten und den Anweisungen folgen | MinGW-5.1.3.exe herunter laden, starten und den Anweisungen folgen |
| Microsoft Windows Vista | MinHugs-Sep2006.exe herunter laden, starten, den Anweisungen folgen und im Falle von Fehlermeldung die unter [1] stehende Empfehlung beherzigen | SetupHelium1.6.exe herunter laden, starten und den Anweisungen folgen | MinGW-5.1.3.exe herunter laden, starten und den Anweisungen folgen |
| andere Betriebssysteme | Hugs-Downloadseite konsultieren | Helium-Downloadseite konsultieren | (keine Information) |
letzte Änderung am 14.02.2008 um 22.30 Uhr durch Wolfgang Jeltsch