Without constraints I could happily have spent the next three months (or years) reading and researching yet more on computer history, technology culture, programming, education, games... but it's time to shift gears.
I'm focusing on the educational aspect of my problem space, seeking to target adults who don't see themselves as technically-inclined. Many of us are (in some form) victims of an institutionalized divide between science and humanities– the 'Two Cultures'. My audience may suffer a deeply reinforced pattern of thinking in which math and science are perceived as alien or impenetrable. That represents a huge obstacle for my intended work, but also one to be sensitive to and mindful of in any idea or execution.
Psychologist Piaget has a concept of 'assimilation' in his education theory, in which he proposes educators 'use familiar examples to facilitate learning more complex ideas'. This reasonable premise led me to explore ways I could start out in a familiar space, and gently introduce computational concepts.
It's worth noting here that my aim isn't to introduce users to a programming language. In my examination of what a greater computational literacy might constitute, it became clear to me that an understanding of how computers work and what one can or cannot instruct a computer to do should come before anything else. Despite the greatest of intentions, this oftens feels missed from many recent 'learn to code' initiatives.
As outlined in this excellent article (and in far greater depth in Changing Minds by Andrea diSessa) we transitioned from a pre-literate society in which an elite of scribes held a privileged position to the widespread common literacy we enjoy today. But we are still at 'scribe stage' with computational literacy – in which an elite hold a privileged position, and others remain dependant.
My focus on adults is for a simple reason: while we're finally making progress with bringing programming into schools, technology culture is moving so fast that a number of lost generations (including my own) risk falling behind.
My mission statement:
Encourage and inspire a cultural shift towards two-way computational literacy, creating a more inclusive and participatory technology culture.
The familiar starting point will be a casual mobile game. I watch people playing these games on my daily commute in fascination. Many puzzle games involve light (and sometimes heavier) mental exercise. They gently push players along and up a learning curve. Successful games enable players to get lost in a 'flow' state. All these qualities seem ideal for what I wish to achieve.
My indicative direction is as follows:
Positioned as ‘pick up and play’ game rather than an educational app, the product will introduce a narrow range of programming concepts. For each turn, the player will need to construct some basic logic. Through this activity, methods of ‘instructing’ a computer to do things are exposed. Play should follow a learning curve, demand strategic thinking, but remain lightweight and fun. The takeaway, if successful, will be a small but inspiring insight into programmatic thinking.
I've developed a game concept and plan to test a paper prototype version this week.
Early design work coming in the next post...