Praktikum Haskell für NLP im Sommersemester 2016
In der Vorlesung „Programmierung“ wurden bereits einige Grundkenntnisse in Haskell vermittelt. Ziel dieses Praktikums ist es, diese Grundkenntnisse weiter zu festigen und weitere, komplexere Programmiermöglichkeiten kennenzulernen. Zu den behandelten Themen gehören Funktionen höherer Ordnung, Typklassen, Monaden, Lazyness und Memoization, Debugging und Profiling, und vieles mehr. Die verschiedenen Konzepte werden anhand von Beispielen und Aufgaben aus dem Bereich der maschinellen Verarbeitung natürlicher Sprachen verdeutlicht.
Organisation
Das Praktikum findet wöchentlich Montags in der 4. und 5. Doppelstunde im Raum APB/E069 statt. Die erste Veranstaltung findet am 4. April 2016 statt. Eine Einschreibung gibt es nicht.
Die Veranstaltungen „Praktikum Haskell für NLP Ⅰ“ und „Praktikum Haskell für NLP Ⅱ“ umfassen die gleichen Inhalte, jedoch kommt bei letzterer noch eine individuelle Aufgabe hinzu. Entsprechend kann auch nur eine der beiden Veranstaltungen in das Studium eingebracht werden.
Materialien
- 2016-04-04, 2016-04-11, 2016-04-18: Foliensatz „Einführung und Wiederholung zu Haskell“ (nicht-inkrementelle Version)
- Vorlage
wc
-Klon ohne Prelude - Vorlage
wc
-Klon mit Prelude - Lösungen zu Einführungsaufgaben
- Vorlage
- 2016-04-18, 2016-04-25, 2016-05-02: Foliensatz „Lazy Evaluation“ (nicht-inkrementelle Version)
- 2016-05-09, 2016-05-23: Foliensatz „Monaden“ (nicht-inkrementelle Version)
- 2016-05-23: Foliensatz „Coding-Style“
- 2016-30-05: Selbststudium (siehe Mailinglist)
- 2016-06-06:
- Foliensatz „Profiling“ (Code-Beispiele)
-
Aufgabe „Spell Checker“
- Aspell-Wortlisten
- confusion matrices: del, add, sub, rev
- 2016-07-04: Deadline zur Einreichung des Spell-Checkers
- 2016-07-11: Abschlusstreffen zur Besprechung des Spell-Checkers
Creative-Commons-Literatur
- Bryan O’Sullivan, Don Stewart, John Goerzen, 2008: Real World Haskell.
- Miran Lipovača, 2011: Learn You a Haskell for Great Good!
- Simon Marlow, 2013: Parallel and Concurrent Programming in Haskell
Sonstiges
- Haskell.org
- Haskell im Browser ausprobieren
- Beispiel für
.ghci
-Konfigurationsdatei - Blog-Artikel und Hackage-Pakete zur effizienten Komposition von (left) Folds:
- Max Rabkin: „Beautiful folding“
- Gabriel Gonzalez: „Composable streaming folds“, siehe Hackage-Paket foldl
- Edward Kmett: „Part II: PNGs and Moore“, siehe Hackage-Paket folds