Code a Colony - Research & Development
While secondary market research has acted to inform our motivations in this project, our efforts in the development of CodeAColony have been guided significantly by primary market research. We have tried (where possible) to engage directly with Key Stage 3 educators as well as a user sample of our target audience (year 9 students at Bristol Grammar School, aged 13–14, both male and female).
The first of multiple visits to the school took place on Thursday 8th October 2015, in which we were granted an hour for a focus group with year 9 pupils. For this we devised a series of activities designed to acquire information about IT education, along with opinions and preferences regarding computer games (as well as other topics). A few mind maps and computer-focused game concepts produced by the pupils are displayed in these three images.
The main insights we gained and took forward from these activities were that:
Cartoons and comedy seem to be a useful tool to make game ideas more appealing. Game characters that are caricatured, and themes/challenges that contain an element of humour could act as useful devices that will draw our target audience in.
Story / stage-based progression (“levelling up”) was a popular concept. This would be very useful as a mode of delivery for a progressive programming tutorial.
Game environments that can be openly navigated / freely explored are important.
A sense of collecting items, points, or “code blocks” was a recurrent theme in the pupils ideas and discussions.
On top of our detailed discussions with school pupils, we were also granted a 30 minute meeting with the head of IT at Bristol Grammar School. Along with some very informative insights, we were given a quick tutorial to Scratch, a visual programming language developed by MIT Media Lab (a popular programming language in educational settings).
Scratch (first launched in 2003) allows users to easily manipulate sprites or control drawing functions using a drag and drop, block-based programming language. The scratch editor is sufficiently flexible to allow users to create sprites with simple AIs that are able to respond to changing contexts, however these tend to require a large number of if-else statements. Such scripts are typically very long and tend to be complicated for beginners to understand. As mentioned on the website this “makes remixing a problem. Because of all this, most AI projects have no improvements, causing the AI to remain glitchy.”
A particular technique used by Scratch (and other similar software such as Snap) to make flow control structures easier to recognise and follow, is to highlight the edges of affected blocks, and nested groups of blocks, with the same colour. These languages are multipurpose, affording the user flexibility to do lots of different things.
In our case, however, the intention has been to focus on faciliating an intuitive comprehension of nested/convoluted flow control structures, so that flexible and dynamic algorithms can be created by beginners, to drive complex autonomous behaviour. We have taken some inspiration from Scratch’s drag and drop system to achieve this, while giving the user freedom to place blocks in any location they prefer. Cords are then drawn by the user, connecting functions to intuitively control the flow of the algorithm.