Teaching Functional Patterns through Robotic Applications

We present our approach to teaching functional programming to First Year Computer Science stu- dents at Middlesex University through projects in robotics. A holistic approach is taken to the cur- riculum, 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 students’ understanding of programming concepts and for their value in motivating the students.

[1]  Bob Fields,et al.  Towards Cyber-physical Systems as Services: The ASIP Protocol , 2015, 2015 IEEE/ACM 1st International Workshop on Software Engineering for Smart Cyber-Physical Systems.

[2]  Hans-Christoph Steiner Firmata: Towards Making Microcontrollers Act Like Extensions of the Computer , 2009, NIME.

[3]  Rynson W. H. Lau,et al.  A Fine-Grained Outcome-Based Learning Path Model , 2014, IEEE Transactions on Systems, Man, and Cybernetics: Systems.

[4]  Anca Muscholl,et al.  Message Sequence Charts , 2003, Lectures on Concurrency and Petri Nets.

[5]  Paul Hudak,et al.  Arrows, Robots, and Functional Reactive Programming , 2002, Advanced Functional Programming.

[6]  Rahul Telang,et al.  Electronic health records and patient safety , 2015, Commun. ACM.

[7]  Thomas Ball,et al.  Teach foundational language principles , 2015, Commun. ACM.

[8]  David Wakeling A robot in every classroom: robots and functional programming across the curriculum , 2008, FDPE '08.

[9]  Kelly Androutsopoulos,et al.  A Racket-Based Robot to Teach First-Year Computer Science , 2014, ELS.