Effective Programming with Effects (Praktikum)
The goal of this practical 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 practical, 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 the course, please send an email to Jiří Beneš
ResearcherJiří Beneš by Sunday 26.10.2025 23:59:59 with [EPE] in the subject line. In the email body, include: your name, GitHub nickname, student ID (Matrikelnummer), degree of study (Studiengang), and field of study (Studienfach).
Schedule
- During the first part of the semester, the practical will take place weekly on Tuesday 10:00 c.t. in room A104 on the Sand campus.
- Bring a laptop if possible.
- Warning: first meeting will take place on Tuesday 21.10., i.e. in 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” (variables, functions, ADTs, pattern matching, objects, exceptions, types, higher-order functions, …)
- basic software engineering and git knowledge equivalent to the contents of “Praktische Informatik 3: Software Engineering” (git, GitHub, domain modelling, interfaces, basics of software architecture and design, …)
The prerequisites mentioned are only of a recommendatory nature, though note that there is no time to learn how to work with, say, git and GitHub, during the practicals themselves.