Writing

Papers
Books
Other

Papers

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.

Books

Studying Programming (publisher, amazon)

Sally Fincher and the Computer Science Education Research Group @ Kent

This book is designed to support a student in studying programming. It is not intended to teach any particular programming language, but to be used alongside such a book, or in conjunction with a formal course. A distinctive feature of the approach is the focus on the processes that students experience while learning to program. The book adopts a structure that mirrors the conceptual and developmental steps that a student takes from confronting their very first blank screen to working on complex problems within a team.

Other

“My Criterion is: Is it a Boolean?”: A card-sort elicitation of students’ Knowledge of programming constructs (ps)

June 2003. Marian Petre, Sally Fincher, and Josh Tenenberg et. al.

My primary role in the Bootstrapping project was heavy-lifting on the data analysis. The project was exciting, educational, and has spun off a number of related and interesting projects. While I was a co-author of the eventual journal publication, my name does not appear in the author list.

TeamStorms as a Theory of Instruction (pdf, html)

Fall 1999, R626 Indiana University Bloomington

This document was written in 1999 as part of the course requirements for R626: Instructional Strategies and Tactics, taught byCharles Reigeluth. R626 is a graduate course offered in the Instructional Systems and Technology department at Indiana University Bloomington. I was pleased with this document, and it formed the basis of a shorter paper submitted and accepted in the IEEE Systems, Man, and Cybernetics conference.