skip to main content
10.1145/1047344.1047485acmconferencesArticle/Chapter ViewAbstractPublication PagessigcseConference Proceedingsconference-collections
Article

Towards concrete concurrency: occam-pi on the LEGO mindstorms

Published: 23 February 2005 Publication History

Abstract

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.

References

[1]
G. Andrews and R. Olsson. The SR Programming Language: Concurrency in Practice. Benjamin/Cummings Publishing Company, Inc., 1993.
[2]
J. Armstrong, R. Virding, C. Wikström, and M. Williams. Concurrent Programming in Erlang. Prentice-Hall, second edition, 1996.
[3]
M. Aubury, I. Page, G. Randall, J. Saul, and R. Watts. Handel-C Language Reference Guide. Oxford University Computing Laboratory, August 1996.
[4]
F. R. Barnes. Dynamics and Pragmatics for High Performance Concurrency. PhD thesis, University of Kent, June 2003.
[5]
F. R. M. Barnes and P. H. Welch. Communicating Mobile Processes. In Communicating Process Architectures 2004, pages 201--218, 2004.
[6]
D. Baum and R. Zurcher. Dave Baum's Definitive Guide to Lego Mindstorms. APress L. P., 1999.
[7]
R. D. Beer, H. J. Chiel, and R. F. Drushel. Using autonomous robotics to teach science and engineering. Commun. ACM, 42(6):85--92, 1999.
[8]
S. Carr, J. Mayo, and C.-K. Shene. Threadmentor: a pedagogical tool for multithreaded programming. J. Educ. Resour. Comput., 3(1):1--30, 2003.
[9]
S. Clarke. Measuring API usability. Dr. Dobbs Journal, May 2004.
[10]
J. C. Cunha and J. Lourenco. An integrated course on parallel and distributed processing. In Proceedings of the twenty-ninth SIGCSE technical symposium on Computer science education, pages 217--221. ACM Press, 1998.
[11]
B. Fagin. An Ada interface to LEGO Mindstorms. Ada Lett., XX(3):20--40, 2000.
[12]
B. Fagin. Ada/mindstorms 3.0: A computational environment for introductory robotics and programming. IEEE Robotics and Automation Magazine, 10(2):19--24, June 2003.
[13]
A. Geist, A. Beguelin, J. Dongarra, W. Jiang, R. Manchek, and V. Sunderam. PVM 3 Users Guide and Reference manual. Oak Ridge National Laboratory, Oak Ridge, Tennessee 37831, May 1994.
[14]
R. Hempel. The pbForth Home Page, 2004. http://www.hempeldesigngroup.com/lego/pbForth.
[15]
C. Hoare. Communicating Sequential Processes. Prentice-Hall, Inc., 1985.
[16]
C. L. Jacobsen and M. C. Jadud. The Transterpreter: A Transputer Interpreter. In Communicating Process Architectures 2004, pages 99--107, 2004.
[17]
M. C. Jadud. Teamstorms as a theory of instruction. In Systems, Man, and Cybernetics, 2000 IEEE International Conference, volume 1, 2000.
[18]
L. Jin and L. Yang. A laboratory for teaching parallel computing on parallel structures. In Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science education, pages 71--75. ACM Press, 1995.
[19]
F. Klassner. Enhancing lisp instruction with RCXLisp and robotics. In Proceedings of the 35th SIGCSE technical symposium on Computer science education, pages 214--218. ACM Press, 2004.
[20]
B. L. Kurtz, H. Cai, C. Plock, and X. Chen. A concurrency simulator designed for sophomore-level instruction. In Proceedings of the twenty-ninth SIGCSE technical symposium on Computer science education, pages 237--241. ACM Press, 1998.
[21]
F. G. Martin. Circuits to Control: Learning Engineering by Designing LEGO Robots. PhD thesis, Massachusetts Institute of Technology, 1994.
[22]
R. Milner. Communicating and mobile systems: the π-calculus. Cambridge University Press, 1999.
[23]
M. Noga. BrickOS for the LEGO Mindstorms. http://freshmeat.net/projects/brickos/.
[24]
Y. Pan. An innovative course in parallel computing. Journal of STEM Education, 4(0), 2003.
[25]
P. B. Petre M. Using robotics to motivate 'back door' learning. Education and Information Technologies, 9(2):147--158, 2004.
[26]
Pitsco LEGO Dacta. The ROBOLAB system, 2000. http://www.pitsco-legodacta.com/Products/robolab.htm.
[27]
M. Resnick. Turtles, Termites, and Traffic Jams: Explorations in Massively Parallel Micorworlds. MIT Press, 1994.
[28]
S. Robbins. Starving philosophers: experimentation with monitor synchronization. In Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education, pages 317--321. ACM Press, 2001.
[29]
P. V. Roy and S. Haridi. Concepts, Techniques, and Models of Computer Programming. MIT Press, 2004.
[30]
L. Stein. Challenging the computational metaphor: Implications for how we think, 1999.
[31]
The OpenMP Architecture Review Board. OpenMP Specifications version 2.0. http://www.openmp.org/drupal/mp-documents/cspec20.pdf.
[32]
D. Wood and P. Welch. The Kent Retargetable occam Compiler. In B. O'Neill, editor, Parallel Processing Developments, Proceedings of WoTUG 19, volume 47 of Concurrent Systems Engineering, pages 143--166. IOS Press, Netherlands, 1996. ISBN: 90-5199-261-0.

Cited By

View all
  • (2022)Has the time come to teach parallel programming to secondary school students?Heliyon10.1016/j.heliyon.2021.e086628:1(e08662)Online publication date: Jan-2022
  • (2015)Supporting Selective Formalism in CSP++ with Process-Specific StorageProceedings of the 2015 IEEE 17th International Conference on High Performance Computing and Communications, 2015 IEEE 7th International Symposium on Cyberspace Safety and Security, and 2015 IEEE 12th International Conf on Embedded Software and Systems10.1109/HPCC-CSS-ICESS.2015.265(1057-1065)Online publication date: 24-Aug-2015
  • (2010)Is teaching parallel algorithmic thinking to high school students possible?Proceedings of the 41st ACM technical symposium on Computer science education10.1145/1734263.1734363(290-294)Online publication date: 10-Mar-2010
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SIGCSE '05: Proceedings of the 36th SIGCSE technical symposium on Computer science education
February 2005
610 pages
ISBN:1581139977
DOI:10.1145/1047344
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 23 February 2005

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. CSP
  2. LEGO
  3. concurrency
  4. fun
  5. occam π
  6. parallelism

Qualifiers

  • Article

Conference

SIGCSE05
Sponsor:
SIGCSE05: Technical Symposium on Computer Science Education
February 23 - 27, 2005
Missouri, St. Louis, USA

Acceptance Rates

Overall Acceptance Rate 1,787 of 5,146 submissions, 35%

Upcoming Conference

SIGCSE TS 2025
The 56th ACM Technical Symposium on Computer Science Education
February 26 - March 1, 2025
Pittsburgh , PA , USA

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 18 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2022)Has the time come to teach parallel programming to secondary school students?Heliyon10.1016/j.heliyon.2021.e086628:1(e08662)Online publication date: Jan-2022
  • (2015)Supporting Selective Formalism in CSP++ with Process-Specific StorageProceedings of the 2015 IEEE 17th International Conference on High Performance Computing and Communications, 2015 IEEE 7th International Symposium on Cyberspace Safety and Security, and 2015 IEEE 12th International Conf on Embedded Software and Systems10.1109/HPCC-CSS-ICESS.2015.265(1057-1065)Online publication date: 24-Aug-2015
  • (2010)Is teaching parallel algorithmic thinking to high school students possible?Proceedings of the 41st ACM technical symposium on Computer science education10.1145/1734263.1734363(290-294)Online publication date: 10-Mar-2010
  • (2009)A short unit to introduce multi-threaded programmingJournal of Computing Sciences in Colleges10.5555/1619221.161922525:1(9-20)Online publication date: 1-Oct-2009
  • (2008)Patterns for programming in parallel, pedagogicallyACM SIGCSE Bulletin10.1145/1352322.135221940:1(231-235)Online publication date: 12-Mar-2008
  • (2008)Patterns for programming in parallel, pedagogicallyProceedings of the 39th SIGCSE technical symposium on Computer science education10.1145/1352135.1352219(231-235)Online publication date: 12-Mar-2008
  • (2008)Implementing Flexible Parallelism for Modular Self-reconfigurable RobotsProceedings of the 1st International Conference on Simulation, Modeling, and Programming for Autonomous Robots10.1007/978-3-540-89076-8_15(123-134)Online publication date: 3-Nov-2008
  • (2006)Experiences with the LEGO Mindstorms throughout the Undergraduate Computer Science CurriculumProceedings. Frontiers in Education. 36th Annual Conference10.1109/FIE.2006.322315(1-6)Online publication date: Oct-2006
  • (2014)Game design for bioinformatics and cyberinfrastructure learning: a parallel computing case studyConcurrency and Computation: Practice and Experience10.1002/cpe.326126:13(2303-2315)Online publication date: 27-Mar-2014

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media