Published: 12th December 2014
DOI: 10.4204/EPTCS.170
ISSN: 2075-2180

EPTCS 170

Proceedings 3rd International Workshop on
Trends in Functional Programming in Education
Soesterberg, The Netherlands, 25th May 2014

Edited by: James Caldwell, Philip Hölzenspies and Peter Achten

Preface
Report on a User Test and Extension of a Type Debugger for Novice Programmers
Yuki Ishii and Kenichi Asai
1
Functional Automata - Formal Languages for Computer Science Students
Marco T. Morazán and Rosario Antunez
19
Bricklayer: An Authentic Introduction to the Functional Programming Language SML
Victor Winter
33
Evaluating Haskell expressions in a tutoring environment
Tim Olmer, Bastiaan Heeren and Johan Jeuring
50
Learn Physics by Programming in Haskell
Scott N. Walck
67
Simple Balanced Binary Search Trees
Prabhakar Ragde
78

Preface

The Third International Workshop on Trends in Functional Programming in Education, TFPIE 2014, was held on May 25, 2014 at the conference venue "Kontakt der Kontinenten" in Soesterberg, the Netherlands. It was co-located with TFP 2014, the Fifteenth Symposium on Trends in Functional Programming. 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 even 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. It diverges from these previous events in a significant way by fostering a spirit of frank and open discussion in a manner that differs from the modus operandi used by most annual events. With its post-workshop review process, it allows authors to improve their manuscripts by incorporating the feedback they receive during discussions at the workshop. In addition, this model allows for material that may not yet be publication-ripe to be discussed in a congenial environment. In short, TFPIE aims to offer those with novel ideas, work-in-progress and class-room tested ideas a forum for discussion. This publication model has worked well for the previous editions of TFPIE and we expect it to be a hallmark of success for future editions, as it has been for sister events like aforementioned TFP and Implementation and Application of Functional Languages (IFL).

TFPIE 2014 received 15 submissions and had 30 participants. Except for one, all submissions were found to be sound and in scope by the PC Chair and invited to give a presentation. In addition, Johan Jeuring accepted our invitation to give an invited talk. He kicked-off this year's edition of TFPIE with a presentation entitled "Automatic tutoring and assessing functional programs". The workshop comprised 15 presentations and a fruitful plenary discussion.

The post-workshop review process received 13 submissions, which were vetted by the program committee, assuming scientific journal standards of publication. The six articles in this volume were selected for publication as the result of this process. In order to give you a taste of these articles, we briefly enumerate them in the order that they were presented during the workshop. In "BrickLayer: An authentic introduction to the FPL SML", Victor Winter introduces the pedagogical environment BrickLayer in which students can experiment with constructing intricate Lego-shapes, resulting in appealing graphical renderings of their efforts. In "Evaluating Haskell expressions in a tutoring environment", Tim Olmer, Bastiaan Heeren and Johan Jeuring describe the Haskell Expression Evaluator, a tool with which beginning students in functional programming can experiment with, train, and experience the term rewriting techniques that are often used in textbooks to explain the mechanics of functional programming. In "Report on a User Test and Extension of a Type Debugger for Novice Programmers", Yuki Ishii and Kenichi Asai describe how they have been able to improve the use of their type debugger tool for novice OCaml programmers, by analysing log files of the usage of the tool by students. In "Functional Automata: Formal Languages for Computer Science Students", Marco T. Morazán and Rosario Antunez demonstrate how their Racket library FSM can be used by students in a very formal computer science course on state machines, regular expressions, and grammars to actually program and test these concepts in a practical setting. In "Learn Physics by Programming in Haskell", Scott N. Walck explains how Haskell is used as a formal language to express Newtonian mechanics and electromagnetic theory for second-year students without assuming any prior programming experience. Finally, in "Simple Balanced Binary Search Trees", Prabhakar Ragde gives a concise, elegant, and complete Haskell implementation of AA-trees supporting both insertion and deletion operations, as a better alternative to Red-Black-trees, from a pedagogical standpoint.

Unfortunately, the initial PC Chair, James Caldwell, fell ill and was unable to attend the workshop and handle the post-workshop coordination. Philip Hölzenspies, last year's PC Chair, and Peter Achten, the first year's PC co-chair stepped in to aid James in his duties as PC Chair.

Despite James' absence, TFPIE 2014 certainly was a success and could not have taken place without the seamless and very hospitable local organization by Jurriaan Hage and the TFP 2014 organizing committee. The evening barbecue that was attended by both TFPIE participants and participants arriving for the subsequent TFP event provided a very pleasant atmospheric finishing touch. Of course, a workshop is nothing without the submitting and presenting authors, the program committee and all participants. As PC Chairs, we would like to extend our gratitude to all of these people and we're quite confident we do so for everyone in attendance. In continued support of the community of people interested in advancing education using functional programming, all of this year's event's resources have been made available on the TFPIE wiki page.

James Caldwell
Philip K.F. Hölzenspies
Peter Achten

Program Committee

James Caldwell University of Wyoming
Peter Achten Radboud Universiteit Nijmegen
Edwin Brady University of St. Andrews
Jurriaan Hage Universiteit Utrecht
Philip K.F. Hölzenspies Universiteit Twente
Daniel R. Licata Wesleyan University
Marco T. Morazán Seton Hall University
Christian Skalka University of Vermont
David van Horn Northeastern University