Published: 24th August 2020
DOI: 10.4204/EPTCS.321
ISSN: 2075-2180


Proceedings Eighth and Ninth International Workshop on
Trends in Functional Programming in Education
Vancouver, Canada and Krakow, Poland, 11th June 2019 and 12th February 2020

Edited by: Jurriaan Hage

Jurriaan Hage
How to Design While Loops
Marco T. Morazán
Describing Console I/O Behavior for Testing Student Submissions in Haskell
Oliver Westphal and Janis Voigtländer
How to Increase Interest in Studying Functional Programming via Interdisciplinary Application
Pedro Figueirêdo, Yuri Kim, Nghia Le Minh, Evan Sitt, Xue Ying and Viktória Zsók
Visual Designing and Debugging of Deterministic Finite-State Machines in FSM
Marco T. Morazán, Joshua M. Schappel and Sachin Mahashabde
Using Video Game Development to Motivate Program Design and Algebra Among Inner-City High School Students
Marco T. Morazán


These proceedings contains the post-reviewed accepted papers of the Eighth and Ninth International Workshops on Trends in Functional Programming in Education (TFPIE 2019 and TFPIE 2020), that were held on June 11, 2019 in Vancouver, Canada and on February 12, 2020 in Krakow, Poland. Both workshops were co-located with TFP (Trends in Functional Programming), and in the case of 2020 also with Lambda Days.


The goal of TFPIE is to gather researchers, professors, teachers, and all professionals interested in functional programming in education. This includes the teaching of functional programming, but also the application of functional programming as a tool for teaching other topics, e.g. computational concepts, complexity, logic and reasoning, and non-cs disciplines (e.g. philosophy or music). TFPIE is the heir of previous events, like Functional and Declarative Programming in Education (FDPE), to which it owes a great deal and from which it has borrowed experience and ideas.


The keynote at TFPIE 2019 entitled Functional Programming at the Core of a High Throughput Software Engineering Curriculum was given by Gregor Kiczales, an discussed the challenges of teaching functional programming to very large groups. The keynote at TFPIE 2020 was given by Thorsten Altenkirch who introduced his book Conceptual Programming With Python that uses a lot of functional programming concepts.

The full programmes can be found on the TFPIE Wiki.


TFPIE 2019 had six presentations, a Best Lecture by Prabhakar Ragde, and a panel discussion. The post-workshop review process received all six submitted presentations, which were reviewed by the program committee, assuming scientific journal standards of publication. The first three articles in this volume were selected for publication as the result of this process.

TFPIE 2020 followed quickly upon TFPIE 2019, because of the co-location with TFP. It had a lower number of submitted presentations, four, of which three were submitted to the post-reviewing process, after which two were accepted. The programma had two additional talks: a position presentation by Peter Achten on a better rainfall problem, and an experience report by John Hughes on his experiences at teaching parallel programming using a functional language. The day closed with a plenary discussion on the use of functional programming in courses beyond functional programming.


As programme chair I am extremely grateful for the help of the TFP 2019 organisers Ron Garcia and William J. Bowman for handling the local organisation. For TFPIE 2020, I am indebted to Aleksander Byrski who provided the room and invaluable assistance in Krakow, and to John Hughes for bringing us together.

In addition, my thanks go to the members of the Programme Committee of TFPIE 2019:

and that of TFPIE 2020: The Programme Committee members worked very hard with the authors to help to give their work the best possible presentation. We hope that you enjoy reading the results!

Finally, I would like to thank the Steering Committee chairs Peter Achten and Marco T. Morazán for their support organising both instances of TFPIE.

Jurriaan Hage
PC Chair, TFPIE 2019 and TFPIE 2020
Department of Information and Computing Sciences, Utrecht University