Teaching Introductory Functional Programming Using Haskelite
Pedro Vasconcelos (University of Porto)

TL;DR
This paper discusses using a step-by-step tracing interpreter for teaching introductory functional programming with Haskell, aiming to improve student understanding of substitution and recursive concepts.
Contribution
It reports on the practical experience and student feedback of employing a step-by-step interpreter in teaching Haskell to beginners, highlighting its educational benefits.
Findings
Students found the interpreter clarified misconceptions
Improved understanding of substitution and recursion
Positive feedback on learning experience
Abstract
Learning functional programming requires learning a substitution-based computational model. While substitution should be a familiar concept from high-school algebra, students often have difficulty applying it to new settings, such as recursive definitions, algebraic data types and higher-order functions. Step-by-step interpreters have been shown to help beginners by clarifying misconceptions and improving understanding. This paper reports on the experience of using a step-by-step tracing interpreter for a subset of Haskell while teaching an introductory functional programming course at the University of Porto. We describe the use of the interpreter, present some feedback obtained from students, reflect on the lessons learned and point directions for further work.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
