Towards concrete concurrency: occam-pi on the LEGO mindstorms

In a world of ad-hoc networks, highly interconnected mobile devices and increasingly large supercomputer clusters, students need models of computation that help them think about dynamic and concurrent systems. Many of the tools currently available for introducing students to concurrency are difficult to use and are not intrinsically motivating. To provide an authentic, hands-on, and enjoyable introduction to concurrency, we have ported occam π, a language whose expressive powers are especially compelling for describing communicating dynamic reactive processes, to the LEGO Mindstorms.

[1]  Steve Carr,et al.  ThreadMentor: a pedagogical tool for multithreaded programming , 2003, JERC.

[2]  Matthew C. Jadud TeamStorms as a theory of instruction , 2000, Smc 2000 conference proceedings. 2000 ieee international conference on systems, man and cybernetics. 'cybernetics evolving to systems, humans, organizations, and their complex interactions' (cat. no.0.

[3]  Steven Robbins,et al.  Starving philosophers: experimentation with monitor synchronization , 2001, SIGCSE '01.

[4]  Davide Sangiorgi,et al.  Communicating and Mobile Systems: the π-calculus, , 2000 .

[5]  Frank Klassner Enhancing lisp instruction with RCXLisp and robotics , 2004, SIGCSE.

[6]  Lan Yang,et al.  A laboratory for teaching parallel computing on parallel structures , 1995, SIGCSE '95.

[7]  Blaine A. Price,et al.  Using Robotics to Motivate ‘Back Door’ Learning , 2004, Education and Information Technologies.

[8]  Matthew C. Jadud,et al.  The Transterpreter: A Transputer Interpreter , 2004 .

[9]  Lynn Andrea Stein,et al.  Challenging the Computational Metaphor: Implications for How We Think , 1999, Cybern. Syst..

[10]  Peter H. Welch,et al.  Communicating Mobile Processes , 2004, 25 Years Communicating Sequential Processes.

[11]  Hong Cai,et al.  A concurrency simulator designed for sophomore-level instruction , 1998, SIGCSE '98.

[12]  Peter H. Welch,et al.  The Kent retargetable occam compiler , 1996 .

[13]  Fred R. M. Barnes,et al.  Dynamics and pragmatics for high performance concurrency , 2003 .

[14]  Dave Baum,et al.  Dave Baum’s Definitive Guide to LEGO MINDSTORMS , 2000, Apress.

[15]  Jack Dongarra,et al.  Pvm 3 user's guide and reference manual , 1993 .

[16]  Gregory R. Andrews,et al.  The SR programming language: concurrency in practice , 1993 .

[17]  Yi Pan An Innovative Course in Parallel Computing , 2004 .

[18]  Fred Martin,et al.  Circuits to control--learning engineering by designing LEGO robots , 1994 .

[19]  Mitchel Resnick,et al.  Turtles, termites, and traffic jams - explorations in massively parallel microworlds , 1994 .

[20]  Joe Armstrong,et al.  Concurrent programming in ERLANG , 1993 .

[21]  Peter Van Roy,et al.  Concepts, Techniques, and Models of Computer Programming , 2004 .

[22]  José C. Cunha,et al.  An integrated course on parallel and distributed processing , 1998, SIGCSE '98.

[23]  Barry Fagin An Ada interface to lego mindstorms , 2000, ALET.

[24]  Randall D. Beer,et al.  Using autonomous robotics to teach science and engineering , 1999, Commun. ACM.

[25]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.