Teaching Functional Patterns through Robotic Applications
J. Boender (School of Science, Technology Middlesex University,, London), E. Currie (School of Science, Technology Middlesex University,, London), M. Loomes (School of Science, Technology Middlesex University,, London), G. Primiero (School of Science

TL;DR
This paper describes an innovative approach to teaching functional programming to first-year CS students using robotics projects, supported by an open-source robotic platform, enhancing understanding and motivation.
Contribution
It introduces MIRTO, an open-source robotic platform built with Raspberry Pi and Arduino, integrating functional programming concepts into robotics education for the first time.
Findings
Robotics projects effectively reinforce programming concepts.
Students showed increased motivation through practical applications.
The MIRTO platform facilitated teaching and learning of functional programming.
Abstract
We present our approach to teaching functional programming to First Year Computer Science students at Middlesex University through projects in robotics. A holistic approach is taken to the curriculum, emphasising the connections between different subject areas. A key part of the students' learning is through practical projects that draw upon and integrate the taught material. To support these, we developed the Middlesex Robotic plaTfOrm (MIRTO), an open-source platform built using Raspberry Pi, Arduino, HUB-ee wheels and running Racket (a LISP dialect). In this paper we present the motivations for our choices and explain how a number of concepts of functional programming may be employed when programming robotic applications. We present some students' work with robotics projects: we consider the use of robotics projects to have been a success, both for their value in reinforcing…
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.
