Computer Science and
     Software Engineering

Computer Science and Software Engineering

PHD 01/05

Collaborative and Multiple-Notation Programming Environments for Children

Timothy Nicol Wright
Department of Computer Science
University of Canterbury

Abstract

Users who can program computers can use their computer more effectively than those who can not. While much research has examined how to help users easily program computers, two methods that show promise have not yet been throughly investigated in the context of children’s programming environments. The first method provides users with multiple representations of a computer program. Providing multiple representations lets users choose a representation close to their own mental model of computer programming and helps them transfer their knowledge from one domain to another. The second method provides support for collaboration. When users collaborate they build a shared understanding of a computer program and they can learn from teachers and more competent peers. This thesis presents an investigation into these two methods: collaborative and multiple-notation programming environments for children. Our target users are children aged eight to twelve years. The contributions described in this thesis are: providing an analysis of how programming environments use different representations of computer programs; describing two evaluations (one of collaboration and one of multiple notations), and introducing our programming environment, Mulspren. The analysis describes three cognitive gulfs that can create problems for users when programming and identifies eight factors related to notation use that risk creating these gulfs. The first evaluation finds that children can read and understand a conventional-style notation faster than an English-like notation, but that they prefer the English-like notation. The second evaluation finds that the type of collaboration support present in a collaborative environment does not reliably affect how well children learn to solve a puzzle. The analysis and two evaluations influenced the design of our programming environment: Mulspren. Mulspren users can interact with two different notations at the same time, and can move between the notations seamlessly. We call this programming style ‘dual notation programming.’