ABSTRACT
Pipeline, Delta, and Black Hole are three simple patterns used in concurrent software design. We recently presented these and other patterns for parallelism at a nine-hour workshop for professional embedded systems developers. By grounding these patterns in the context of robotic control on the LEGO Mindstorms, we provided an engaging and enjoyable educational experience for our "students," and reaffirmed that small, powerful languages have a place in education for beginners and experts alike.
- R. A. Brooks. A robust layered control system for a mobile robot. IEEE Journal of Robotics and Automation, 2(1):14--23, March 1986.Google ScholarCross Ref
- C. Hoare. Communicating Sequential Processes. Prentice-Hall, Upper Saddle River, NJ, USA, 1985. ISBN: 0-13-153271-5. Google ScholarDigital Library
- C. L. Jacobsen and M. C. Jadud. Towards concrete concurrency: occam-pi on the lego mindstorms. In SIGCSE '05: Proceedings of the 36th SIGCSE technical symposium on Computer science education, pages 431--435, New York, NY, USA, 2005. ACM Press. Google ScholarDigital Library
- C. L. Jacobsen and M. C. Jadud. Concurrency, robotics and robodeb. 2007 AAAI Spring Symposium on Robots and Robot Venues: Resources for AI Education, 2007.Google Scholar
- S. Papert. Mindstorms: Children, Computers, and Powerful Ideas. Basic Books, Inc., New York, New York, 1980. Google ScholarDigital Library
- J. Simpson, C. L. Jacobsen, and M. C. Jadud. Mobile Robot Control - The Subsumption Architecture and occam-pi. In P. Welch, J. Kerridge, and F. Barnes, editors, Communicating Process Architectures 2006, pages 225--236, Amsterdam, The Netherlands, September 2006. IOS Press.Google Scholar
- P. Welch and F. Barnes. Communicating mobile processes: introducing occam-pi. In 25 Years of CSP, volume 3525 of Lecture Notes in Computer Science, pages 175--210. Springer Verlag, Apr. 2005. Google ScholarDigital Library
Index Terms
- Patterns for programming in parallel, pedagogically
Recommendations
Patterns for programming in parallel, pedagogically
SIGCSE 08Pipeline, Delta, and Black Hole are three simple patterns used in concurrent software design. We recently presented these and other patterns for parallelism at a nine-hour workshop for professional embedded systems developers. By grounding these ...
CS in parallel: modules for adding parallel computing to CS courses, from CS2 to theory of computation (abstract only)
SIGCSE '12: Proceedings of the 43rd ACM technical symposium on Computer Science EducationParallel computing with more and more cores is here to stay. This workshop presents four independent, class-tested, primarily hands-on modules for incrementally adding parallelism in undergraduate CS courses, each requiring 1 to 3 class days and ...
Teaching parallel design patterns to undergraduates in computer science
SIGCSE '14: Proceedings of the 45th ACM technical symposium on Computer science educationThe industry shift to emerging forms of parallel and distributed computing (PDC), including multi-core CPUs, cloud computing, and general-purpose use of GPUs, have naturally led to increased presence of PDC elements undergraduate Computer Science ...
Comments