Scaffolding java programming on a mobile phone for novice learners
Includes bibliographical references
The ubiquity of mobile phones provides an opportunity to use them for learning programming beyond the classroom. This would be particularly useful for novice learners of programming in resource- constrained environments. However, limitations of mobile phones, such as small screens and small keypads, impede their use as typical programming environments. This study proposed that mobile programming environments could include scaffolding techniques specifically designed for mobile phones, and designed based on learners' needs. A six-level theoretic framework was used to design scaffolding techniques to support construction of Java programs on a mobile phone. The scaffolding techniques were implemented on an Android platform. Using the prototype, three experiments were conducted with 182 learners of programming from four universities in South Africa and Kenya. Evaluation was conducted to investigate: (i) which scaffolding techniques could support the construction of Java programs on a mobile phone; and (ii) the effect on learners of using these scaffolding techniques to construct Java programs on a mobile phone. Data was collected using computer logs, questionnaires, and image and video recordings. It was found that static scaffolding, such as a program overview and constructing a program one part at a time, supported the construction of programs on a mobile phone. It was also found that automatic scaffolding, such as error prompts and statement dialogs, and user-initiated scaffolding, such as viewing of the full program while creating parts of a program, supported learners to construct programs on the mobile phone. The study also found that the scaffolding techniques enabled learners to attempt and complete more tasks than a non-scaffolded environment. Further, the scaffolding techniques enabled learners to complete programs efficiently, and captured syntactical errors early during program creation. The results also indicated that after the initial familiarization with the scaffolded environment, the scaffolding techniques could enable faster completion of programs. Learners' feedback indicated that they found the scaffolding techniques useful in supporting programming on a mobile phone and in meeting learners' needs. This study provides empirical evidence that scaffolding techniques specifically designed for mobile phones and designed based on learners' needs could support the construction of programs on a mobile phone.