Patterns for programming in parallel, pedagogically (pdf)
Matthew C. Jadud, Jon Simpson, Christian L. Jacobsen
SIGCSE 2008, Portland, OR
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 work- shop 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.
|
Methods and tools for exploring novice compilation behaviour (acm, pdf)
Matthew C. Jadud
ICER 2006, Canterbury, UK.
Our research explores what we call compilation behaviour: the programming behaviour a student engages in while repeatedly editing and compiling their programs. This edit-compile cycle often represents students’ attempts to make their programs syntactically, as opposed to semantically, correct. Over the course of two years, we have observed first-year university students learning to program in Java, collecting and studying thousands of snapshots of their programs from one compilation to the next. At the University of Kent, students are introduced to programming in an objects-first style using BlueJ, an environment intended for use by novice programmers.
|
Mobile Robot Control: The Subsumption Architecture and occam-pi (pdf)
Jon Simpson, Christian L. Jacobsen, Matthew C. Jadud
CPA 2006, September 17-20, 2006, Edinburgh, Scotland
Brooks’ subsumption architecture is a design paradigm for mobile robot control that emphasises re-use of modules, decentralisation and concurrent, communicating processes. Through the use of occam-pi the subsumption architecture can be put to use on general purpose modern robotics hardware, providing a clean and robust development approach for the creation of robot control systems.
|
A Cell Transterpreter (pdf)
Damian J. Dimmich, Christian L. Jacobsen, Matthew C. Jadud
CPA 2006, September 17-20, 2006, Edinburgh, Scotland
The Cell Broadband Engine is a hybrid processor which consists of a PowerPC core and eight vector co-processors on a single die. Its unique design poses a number of language design and implementation challenges. To begin exploring these challenges, we have ported the Transterpreter to the Cell Broadband Engine. The Transterpreter is a small, portable runtime for concurrent languages and can be used as a platform for experimenting with language concepts. This paper describes a preliminary attempt at porting the Transterpreter runtime to the Cell Broadband Engine and explores ways to program it using a concurrent language.
|
Native Code Generation Using the Transterpreter (pdf)
Christian L. Jacobsen, Damian J. Dimmich, Matthew C. Jadud
CPA 2006, September 17-20, 2006, Edinburgh, Scotland
We are interested in languages that provide powerful abstractions for concurrency and parallelism that execute everywhere, efficiently. Currently, the existing runtime environments for the occam-Ï€ programming language provide either one of these features (portability) or some semblance of the other (performance). We believe that both can be achieved through the careful generation of C from occam-Ï€, and demonstrate that this is possible using the Transterpreter, a portable interpreter for occam-Ï€, as our starting point.
|
A first look at novice compilation behavior using BlueJ (pdf)
Matthew C. Jadud
Computer Science Education, Volume 15, Number 1 / March 2005
Syntactically correct code does not fall from the sky; the process that leads to a student’s first executable program is not well understood. At the University of Kent we have begun to explore the compilation behaviours of novice programmers, or the behaviours that students exhibit while authoring code; in our initial study, we have focused on when and what they choose to compile. By examining these behaviours, we have determined the most common errors encountered by students using BlueJ in our introductory course on object-oriented programming, how those students tend to program when in supervised laboratory sessions, and we have identified future directions of study driven by our initial observations. Our goal is to apply this research to the future development of BlueJ and instructional methodologies involving its use in the classroom.
|
Towards Concrete Concurrency: occam-pi on the LEGO Mindstorms (pdf)
Christian L. Jacobsen, Matthew C. Jadud
SIGCSE ‘05, February 23-27, 2005, St. Louis, Missouri, USA.
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-pi, a language whose expressive powers are especially compelling for describing communicating dynamic reactive processes, to the LEGO Mindstorms.
|
The Transterpreter: a Transputer interpreter (pdf)
Christian L. Jacobsen, Matthew C. Jadud
CPA 2004, Oxford Brookes University, Headington, UK
In this paper we introduce the Transterpreter, a small, portable virtual machine to support the execution of programs written in occam (a concrete expression of the Concurrent Sequential Processes algebra, or CSP) on the LEGO Mindstorm and other mobile robotics platforms.
|
Little Languages for Little Robots (pdf)
Matthew C. Jadud, Brooke L. Chenoweth, Jacob Schleter
PPIG 2003, Keele University, UK
With serendipity as our muse, we have created tools that allow students to author languages of their own design for robots of their own construction. In developing a Scheme compiler for the LEGO Mindstorm we realized that there is great educational potential in the design and creation of new languages for small robotics kits. As a side effect of bringing Scheme and the Mindstorm together in a creative context, we have begun an exploration of teaching language design that is fundamentally different from the treatment of the subject in traditional literature.
(This work continued in the form of the Transterpreter, a lightweight virtual machine for a small, massively concurrent programming language.)
|
Teamstorms as a theory of instruction (pdf)
Matthew C. Jadud
IEEE Systems, Cybernetics, and Man 2000 (SMC2000)
This theory was evolved over two years, and employed for four years in a non-majors, undergraduate course in the Computer Science Department at Indiana University Bloomington that made extensive use of the LEGO Mindstorms kit.
|
Webworms: Modeling emergent behaviors using LEGO robotics (pdf)
Matthew D. Riddle, Jeffrey T. Lawson, Matthew C. Jadud
IEEE Systems, Cybernetics, and Man 2000 (SMC2000)
This paper details the work of Matthew D. Riddle and Jeffrey Trent Lawson, both undergraduates (at the time) at Indiana University Bloomington. They did an excellent job writing up and presenting their ideas at SMC 2000.
|