Effective Programming with Effects (Praktikum)

The goal of this practicum is to learn programming with algebraic effects and handlers. In this course, students explore how effect systems support the development of correct software, and how effect handling enables a meaningful structuring of complex control flow. During the practicum, students program in the Effekt research language developed at the chair. The concepts learned are universally applicable and can be used to structure programs regardless of the programming language used and thus serve, for example, as a mental model for commonly used libraries such as React or Pyro.

The first part of the semester focuses on understanding the various aspects of algebraic effects and handlers through lectures in English and hands-on programming tasks. Students then choose a topic in consultation with the course organizer and independently develop a software project in the second part of the semester, applying their acquired knowledge in realistic scenarios.

Enrolling

To participate in this course, please send an email with [EPE] in the email subject containing your name, GitHub nickname, student ID (Matrikelnummer), degree of study (Studiengang), and field of study (Studienfach) to Jiří Beneš
Researcher
Jiří Beneš
until Sunday 27.10.2024 23:59:59.

Schedule

  • The exact time slot will be determined via a poll, please vote here until Thursday 17.10. 23:59:59.
  • During the first part of the semester, the practicum will take place weekly on TBD in room TBD on the Sand campus.
    • Bring a laptop if possible.
  • The first meeting will be scheduled for the second week of lectures.
  • For more information, please refer to the course details in Alma.

Prerequisites

  • basic programming knowledge equivalent to the contents of “Praktische Informatik 1 & 2”
  • basic software engineering and git knowledge equivalent to the contents of “Praktische Informatik 3: Software Engineering”

The prerequisites mentioned are only of a recommendatory nature, though note that there is no time to learn how to work with, i.e. git and GitHub, during the practicum.

People