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

Aktuelles

  • 15.10.2018: Anmeldung in der StudiDB freigeschaltet.
  • 19.11.2018: FortProg-GHCi, version 1.1 verfügbar
  • 21.12.2018: FortProg-Testklausur am 14.01.2019 anstelle der Vorlesung (weitere Informationen siehe unten)
  • 11.01.2019: Hinweise zur Verwendung von Prolog ergänzt
  • 21.01.2019: Aufgaben und Musterlösungen der Testklausur im iLearn freigeschaltet

Termine

Vorlesung (vom 22.10.2018 bis zum 05.02.2019)

  • Montag, 10:15 - 11:45 Uhr in CAP3 - Hörsaal 2
  • Dienstag, 14:15 - 15:45 Uhr in CAP3 - Hörsaal 2

Übungen (vom 21.10.2018 bis zum 10.02.2019)

  • Mittwoch, 10:15 - 11:45 Uhr in LMS2 - R.Ü1 (Jan-Hendrik)
  • Mittwoch, 16:15 - 17:45 Uhr in LMS2 - R.Ü1 (Kai)
  • Mittwoch, 16:15 - 17:45 Uhr in CAP4 - R.1304a (Finn)
  • Donnerstag, 8:30 - 10:00 Uhr in LMS2 - R.Ü1 (Jan)
  • Donnerstag, 10:15 - 11:45 Uhr in CAP4 - R.1304a (Jan)
  • Donnerstag, 10:15 - 11:45 Uhr in WSP3 - Seminarraum 2 (Finn)

Rechnerzeit (vom 22.10.2018 bis zum 05.02.2019)

  • Donnerstag, 14:00 - 16:00 Uhr in HRS3 - R.501-503
  • Freitag, 13:00 - 15:00 Uhr in HRS3 - R.501-503

Praktikum (vom 25.02.2019 bis zum 08.03.2019)

Klausur (1. Prüfungszeitraum, 13.03.2019, 10:00 - 13:00 Uhr in OS75 - Hörsaal 1, OS75 - Hans-Heinrich-Driftmann-Hörsaal (ehem. Hörsaal 3), OS75 - Hörsaal 4 und OS75 - Hörsaal 2)

Klausur (2. Prüfungszeitraum, 02.04.2019, 14:00 - 17:00 Uhr in CAP3 - Hörsaal 2 und CAP3 - Hörsaal 3)

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.

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. Alternativ können Sie sich auch die Haskell Platform installieren, die sowohl den GHC als auch Cabal enthält. Stellen Sie sicher, dass sich die Executables ghci und cabal im Pfad befinden, z.B. durch

> 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.1 des FortProg-GHCi verfügbar

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: 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.

Übungen

Bitte tragen Sie sich zunächst in der StudiDB ein. Nach der ersten Vorlesungsstunde wird die Anmeldung im iLearn freigeschaltet. Bitte tragen Sie sich dort in eine Übungsgruppe ein. Anschließend sollen Sie sich dann innerhalb der Übungsgruppen zu Zweiergruppen zusammenfinden.

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.

Der in den allen Übungen gemeinsam erarbeitete Code zu den Präsenzaufgaben ist in einem Git-Repository zu finden. Die Bearbeitung der restlichen Übungsaufgaben erfolgt in eben jenen Zweiergruppen, Einzelabgaben sind nach Möglichkeit zu vermeiden. Ihre Abgaben werden korrigiert und Musterlösungen nach der Abgabefrist bereitgestellt.

Sprechzeiten

Alle Übungsleiter bieten eine Sprechstunde an, in der Fragen zu der Vorlesung oder den Übungen geklärt werden können.

  • Jan-Hendrik: Di 10:00 - 11:45 Uhr in CAP4 - R.711
  • Kai: Mo 14:00 - 16:00 Uhr in CAP4 - R.711
  • Finn (Termin per E-Mail vereinbaren oder vorbeikommen)
  • Jan (Termin per E-Mail vereinbaren oder vorbeikommen)

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).

Testklausur

Wir werden im Januar 2019 eine Testklausur zur Veranstaltung Fortgeschrittene Programmierung anbieten. Diese Klausur findet anstelle der Vorlesung am Montag, dem 14. Januar von 10:15 bis 11:45 Uhr in CAP3 - Hörsaal 2 statt.

Thematisch wird diese Testklausur die ersten beiden großen Themengebiete verteilte und nebenläufige Programmierung in Java sowie funktionale Programmierung in Haskell abdecken.

Studierende, die in einem der beiden bisher behandelten, großen Themengebiete der Vorlesung nicht die benötigte Anzahl an Sinnpunkten geholt haben (für Java waren es 3 Punkte, für Haskell werden es 11 Punkte sein), haben die Möglichkeit, durch Erreichen von mindestens 50% der Punkte der Testklausur fehlende Sinnpunkte in einem dieser beiden Themengebiete auszugleichen, und haben somit die Chance, doch noch die Klausurzulassung zu erwerben.

Allen anderen empfehlen wir aber ebenfalls die Teilnahme an dieser Testklausur als Vorbereitung auf die tatsächliche Abschlussklausur. Es entstehen Ihnen keinerlei Nachteile, selbst wenn Sie die Testklausur nicht bestehen.

Hinweis: Durch das erfolgreiche Abschneiden bei der Testklausur kann allerdings NICHT das sinnvolle Bearbeiten der Aufgaben des letzten Vorlesungskapitels (logische Programmierung mit Prolog) ersetzt werden!

Die korrigierte Testklausur erhalten Sie in der darauf folgenden Woche in Ihrer Übungsgruppe zurück. Außerdem werden wir sowohl die Klausur als auch deren Musterlösung im iLearn zur Verfügung stellen.

Klausur

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