Spezielle Kapitel in Software Engineering:

Objekt-Funktionale Programmierung

339.343 2KV Prähofer Block Raum: S3 057 Beginn:

Informationen

  1. Beginn der LVA Fr. 6. 10. 2017

Ziele

Eine neues Programmierparadigma, das in letzter Zeit viel Beachtung gefunden hat, stellt die sogenannte objekt-funktionale Programmierung dar. Wie der Name andeutet, handelt es sich dabei um eine Integration des objekt-orientierten und funktionalen Paradigmas. Die derzeit bekanntesten objekt-funktionalen Sprachen sind Scala, F#, Kotlin oder Rust.

In dieser Lehrveranstaltung wird eine Einführung in die objekt-funktionale Programmierung gegeben. Der Schwerpunkt liegt auf der Sprache Scala. Zusätzlich wird die Sprachen F# und Rust näher behandelt.

Der Stoff der LVA wird mit begleitenden Programmieraufgaben praktisch geübt.

Die Lehrveranstaltung wird in Deutsch abgehalten.

Inhalt

  • Scala
    • Einführung
    • Funktionen und Funktionsobjekte
    • Objektorientierte Programmierung
    • Pattern Matching
    • Erweiterbarkeit und DSLs
    • Reaktive Programmierung
  • F#
  • Rust

Prüfung und Benotung

Wesentlich für den positiven Abschluss der LVA ist die Ausarbeitung von praktischen Übungen/Projekt. Es gibt 2 Varianten für den praktische Teil:

  • Ausgegebene Übungen 1 bis 4 plus ein kleineres Beispiel nach Wahl; als Anhaltspunkt ca. 2 Seiten Code pro Übung, d.h., insgesamt ~ 10 Programmseiten.
  • Projekt mit ungefähr gleichem Umfang wie die Übungen; vorwiegend unter Verwendung einer bestimmten Technologie, z.B. RxScala, Akka, Play Framework. Auch ein Projekt in Rust oder F# ist möglich.

Abschluss der LVA mit Präsentation der Ausarbeitungen und mündlicher Prüfung. Es gibt zwei Termine für Präsentation der Ergebnisse:

  • Fr. 19. 1. 2018
  • Fr. 2. 3. 2018
Am Anfang der Woche mit dem Termin werde ich einen Doodle-Poll ausschicken. Sie können darin dann einen Zeitpunkt wählen.

Skript

Folienskript und Begleitmaterial; Im KUSSS finden Sie einen Link zu einem Google Drive Folder mit dem Material zur LVA.

Literatur

  • M. Odersky, L. Spoon, B. Venners: Programming in Scala, Third edition. artima, 2016
  • D. Wampler, A. Payne: Programming Scala. O.Reilly, 2009
  • D. Syme et al.: Expert F#. Apress, 2007
  • C. Smith: Programming F#. O.Reilly, 2010

Online-Quellen