Lade Daten...
iLearn
Cau-siegel-color-300

Aktuelles

Die Vorlesung beginnt am Montag, 2.11.2020, 10:15 Uhr. Wegen der Corona-Krise wird die Vorlesung virtuell stattfinden. Dies bedeutet, dass rechtzeitig zu jeder Vorlesungsstunde Videos zum jeweiligen Vorlesungsinhalt bereitgestellt werden, welche auf der Veranstaltungsseite verfügbar sind. Die Übung findet dagegen zum Übungstermin interaktiv als Videokonferenz statt. Die Zugangsdaten werden den Teilnehmern per Email mitgeteilt. Zur Kommunikation sollten sich daher alle Teilnehmer sowohl in der StudiDB als auch im iLearn zu der Vorlesung anmelden. Für Rückfragen, Anmerkungen, Verbesserungsvorschläge u.ä. können die Veranstalter gerne per Email kontaktiert werden.

Termine

Vorlesung (vom 02.11.2020 bis zum 26.02.2021)

  • Montag, 10:15 - 11:45 Uhr, online
  • Dienstag, 14:15 - 15:45 Uhr, online

Übungen (vom 02.11.2020 bis zum 26.02.2021)

  • Mi, 10:15 - 11:45, online
  • Mi, 16:15 - 17:45, online
  • Do, 8:30 - 10:00, online
  • Do, 10:15 - 11:45, online
  • Do, 10:15 - 11:45, online

Rechnerzeit (vom 02.11.2020 bis zum 26.02.2021)

  • Fr, 12:00 - 14:00, online

Praktikum (vom 01.03.2021 bis zum 12.03.2021, eventuell auch eine Woche später)

Weitere organisatorische Informationen sowie eine Literaturliste finden Sie im UnivIS oder auf der Veranstaltungsseite des Lehrstuhls.

Vorlesung

Zur Vorlesung existiert ein Skript (nur innerhalb der CAU abrufbar), welches parallel zur Vorlesung überarbeitet wird. Dieses Skript beinhaltet den ungefähren Vorlesungsverlauf, weswegen neben dem Lesen des Skripts auch immer die Vorlesung besucht werden sollte, um über den aktuellen Stand informiert zu sein.

Die in der Vorlesung behandelten Programmiersprachen sind auf den Institutsrechnern vorinstalliert. Im Internet sind auch freie Implementierungen von Haskell, Java sowie Prolog verfügbar.

Auf der Seite der Vorlesung können Sie sich weitere Materialien wie die in der Vorlesung entwickelten Programme herunterladen.

Übungen

Bitte tragen Sie sich zunächst in der StudiDB ein. Die Anmeldung für diesen Kurs inklusive der Anmeldung zu den Übungsgruppen wird innerhalb der ersten Vorlesungswoche freigeschaltet.

Zur Teilnahme an der Modulprüfung müssen die Übungsaufgaben regelmäßig und sinnvoll bearbeitet werden. Hierzu wird für jede Aufgabe festgehalten, ob diese sinnvoll bearbeitet wurde (“Sinnpunkte”). Für eine Zulassung zur Klausur müssen in jedem der drei Bereiche nebenläufige/verteile Programmierung, funktionale Programmierung und logische Programmierung mindestens 50% der Sinnpunkte erreicht werden.

Die Bearbeitung der Übungsaufgaben erfolgt in Zweiergruppen, Einzelabgaben sind nach Möglichkeit zu vermeiden. Ihre Abgaben werden korrigiert und Musterlösungen nach der Abgabefrist bereitgestellt.

Rechnerzeit

In diesem Semester wird wöchentlich eine Rechnerzeit angeboten, in der studentische Hilfskräfte bereitstehen, um Ihnen bei der Bearbeitung der Übungsaufgabe zu helfen und ggf. Fragen zu beantworten (Termine siehe oben).

Hinweise zur Verwendung von Haskell

Für die funktionale Programmierung mit Haskell verwenden wir in den ersten Wochen eine vereinfachte Variante des GHCi, den FortProg-GHCi.

Anforderungen

Zur Installation des FortProg-GHCi benötigen Sie den Glasgow Haskell Compiler (GHC) in Version 8.0 oder neuer. Außerdem benötigen Sie das Haskell Build System Cabal in Version 1.10 oder aktueller. Die Installation wird durch Haskell Platform vereinfacht, da dort bereits alle notwendigen Tools enthalten sind und der Umgebung hinzugefügt werden. Stellen Sie sicher, dass sich die Executables ghci und cabal im Pfad befinden, z.B. durch

1
2
3
4
5
> ghci --version
The Glorious Glasgow Haskell Compilation System, version 8.6.1
> cabal --version
cabal-install version 2.4.0.0
compiled using version 2.4.0.1 of the Cabal library 

Installation

Update: Version 1.4 des FortProg-GHCi verfügbar, welche GHC 8.8 und GHC 8.10 unterstützt

Linux/MacOS: Laden Sie sich das Bash-Skript fortprog-ghci herunter und kopieren Sie es in ein bin-Verzeichnis, das im eigenen Pfad liegt, und machen es ausführbar. Nun können Sie den FortProg-GHCi mit dem Befehl fortprog-ghci starten.

Windows: Die aktuelle Version des Skripts funktioniert nur mit Cabal 2.4, standardmäßig wird allerdings Cabal 3.x mittels Haskell-Platform installiert. Falls Sie den GHC mittels chocolatey installiert haben, können Sie auf Cabal 2.4 wechseln mittels des Befehls choco install cabal --version=2.4 --allow-downgrade --force, welcher in einer Shell mit administrativen Rechten ausgeführt werden muss. Laden Sie sich das Batch-Skript fortprog-ghci.bat herunter. Nun können Sie den FortProg-GHCi über das Skript beispielsweise per Doppelklick ausführen.

Verwendung

Bitte beachten Sie: Zur Verwendung von FortProg-GHCi muss jedem Haskell-Modul ein expliziter Import der SimplePrelude hinzugefügt werden.

-- explicit import of SimplePrelude
import SimplePrelude

-- Compute the square of a given number
square :: Int -> Int
square x = x * x

Weitere Hinweise zur Verwendung von Haskell

Sie sind dazu angehalten, den folgenden Style-Guide beim Entwickeln von Haskell-Programmen zu befolgen.

Der in der Vorlesung verwendete Haskell Mode für den Editor Emacs kann recht einfach installiert werden, wobei man natürlich den Text-Editor Emacs schon kennen sollte.

Hinweise zur Verwendung von Prolog

Um einen leichteren Einstieg in Prolog zu gewährleisten, wird in der Vorlesung zunächst eine Erweiterung für SWI-Prolog verwendet, die eine bessere Suchstrategie implementiert. Hierzu gibt es zwei Möglichkeiten (unter der Voraussetzung, das SWI-Prolog installiert ist und durch den Aufruf swipl gestartet werden kann):

  • Für Unix/Linux: Man kopiere dieses Bash-Skript in ein bin-Verzeichnis, das im eigenen Pfad liegt. Dann kann man durch das Kommando fortprog-swipl das erweiterte SWI-Prolog-System aufrufen. Alternativ kann man das Bash-Skript auch in das Verzeichnis legen, wo die Prolog-Programme sind, und dann das SWI-Prolog-System mit dem Kommando ./fortprog-swipl aufrufen.
  • Für andere Systeme: Man kopiere dieses Prolog-Programm in das Verzeichnis, wo sich die Prolog-Programme befinden, und starte das SWI-Prolog-System mit dem Kommando swipl -q -s fortprog.

Nach dem wie oben beschriebenen Start von SWI-Prolog kann man sein eigenes Programm wie gewohnt mit [myprog]. laden und ausprobieren. Zu beachten ist, dass bei Benutzung dieser Erweiterung die Prolog-Programme keine Negation oder Cuts enthalten und auch keine anderen Module importieren dürfen, was aber am Anfang ohnehin nicht der Fall sein wird.

Klausur

Als Hilfsmittel ist in der Klausur ein beidseitig handschriftlich beschriebenes Blatt erlaubt.