Programmieren in Clojure

Modulnummer
CS5338
Modulverantwortliche
Burkhardt Renz
Dozenten
Burkhardt Renz
Kurzbeschreibung
Das Modul vermittelt die grundlegenden Konzepte von Clojure in Sachen Funktionale Programmierung, Nebenläufigkeit und Java Interoperabilität.
Qualifikations- und Lernziele

Die Teilnehmenden sind mit den grundlegenden Konzepten von Clojure vertraut, können funktional programmieren, wissen, wie Nebenläufigkeit beherrscht wird und wie man Clojure in größeren Projekten einsetzt. Ferner kennen Sie die wichtigsten Clojure-Funktionen und -Bibliotheken.

Sie lösen selbstständig Probleme mittels des funktionalen Paradigmas und erkennen seine Eignung und Grenzen.

Lerninhalte
  • Read-Eval-Print-Loop: Reader, Auswertung, Syntax, Homoikonität
  • Funktionen: Definition von Funktionen, Werte und Funktionen, Funktionen höherer Ordnung, reine Funktionen, Seiteneffekte
  • Rekursive Funktionen: Rekursion und Iteration, Endrekursion, wechselseitige Rekursion
  • Werte und Datenstrukturen: einfache Datentypen, komplexe Datentypen, Destructuring
  • Abstraktionen: Collection, Sequence, Associative, Indexed, Stack, Set, Sorted; Transducer
  • Datentypen und Polymorphismus: Multimethods, Records, Protocols
  • Identität, Zustand & Nebenläufigkeit: Konzept, Vars, Atoms, Refs, Agents, Software Transactional Memory
  • Makroprogrammierung: Syntax, Idiome und Muster
  • Java-Interoperabilität: Java verwenden, Exceptions, TypHinweise, Arrays, Klassen und Interfaces
  • Logik-Programmierung: core.logic
  • Parser-Kombinatoren
  • Softwaretechnik mit Clojure: Namespaces, Metadata, Test, Assertions, Performance
  • Clojure im wirklichen Leben: GUI-Programmierung, WebProgrammierung, Datenbank-Zugriffe
  • Interessante Bibliotheken: quil, Incanter…
Moduldauer (Semester)
1
Unterrichtssprache
Deutsch
Gesamtaufwand
6 CrP; 180 Stunden, davon etwa 60 Stunden Präsenzzeit.
Semesterwochenstunden
4
Lernformen

Vorlesung 2 SWS, Praktikum 2 SWS

Geprüfte Leistung

Prüfungsleistung: Klausur oder Projektarbeit (Art des Leistungsnachweises wird den Studierenden rechtzeitig und in geeigneter Weise bekannt gegeben)

Bewertungsstandard

Bewertung der Prüfungsleistung nach § 9 der Prüfungsordnung (Teil I)

Häufigkeit des Angebots
Nach Bedarf
Literatur
  • C. Emerick, B. Carper, Chr. Grand: Clojure Programming O'Reilly
  • D. Herzberg: Funktionale Programmierung mit Clojure http://denkspuren.blogspot.de/2013/04/freies-clojure-buchfunktionale.html
  • S. Halloway, A. Bedra: Programming Clojure, Second Edition The Pragmatic Programmers