Information and communication technology (ICT) has become embedded into our daily lives. Code is in the heart of this technology. The way code is perceived influences the way our everyday interaction with ICT is perceived: is it an objective exchange of ones and zeros, or a value-laden power struggle between white male programmers and those who think they are users, when they are, in fact, the product being sold. Understanding the nature of the code thus enables the imagination and exploration of the present state and alternative future developments of ICT. This better understanding is especially important for developing basic education so that it gives capabilities for coping with these developments. Currently, the discussion has been mainly on the technical details of the code. In this article, we study how to broaden this narrow view in order to support the design of more comprehensive and future-proof ICT education. We approach the concept of code through nine different metaphors from existing literature on systems thinking and organisational studies. The metaphors we use are machine, organism, brain, flux and transformation, culture, political system, psychic prison, instrument of domination and carnival. We describe their epistemological background and give examples of how code is perceived through each of them. We then use the metaphors to suggest different complementary ways ICT could be taught in schools. The metaphors illustrate different contexts and help to understand the discussions related to developments in ICT such as open source community, democratization of information and internet of things. They also help to identify the dominant view and the tensions between the views. We propose that the systematic use of metaphors described in this paper would be a useful tool for structuring the dialogue around code in designing ICT education.
In this paper, we define code as a digital language with a set of assumptions about the users and the world that is used to create programs. These programs can then be run in selected technologies, from automated factories to personal computers and in their operating systems. We do not restrict our analysis to any specific programming language, but rather refer to the common concept that all of the languages share together.
This paper focuses on the question of how the code is understood and addressed.
Currently, the discussion has been mainly on the technical details of the code. In this article, we study how to broaden this rather narrow view in order to support the design of more comprehensive and future-proof ICT education. We approach the concept of code through nine different metaphors from existing literature on systems thinking and organisational studies.
What do we mean by metaphors?
What are metaphors? Following Lakoff, we define metaphors as mappings from one domain to another. They are helpful in understanding abstract concepts such as code.
Using a metaphor, the entities in one domain are mapped to correspond to entities in another domain. For example, a segment of code could be mapped to represent an organ in a human body. Metaphors can be powerful in influencing how an issue is approached, or a problem is framed, where we are mostly unaware of their effect (Thibodeau & Boroditsky, 2011).
Why these metaphors? While there are many metaphors we could choose, we have chosen to adapt the nine metaphors described by Jackson in his approach of “creative holism”. We chose these because of their broad coverage: they represent four common paradigms in social theory, two views to complexity and three perspectives on the nature of human interaction.
(Jackson, M.C., 2003. Systems thinking : creative holism for managers, Chichester: John Wiley & Sons.)
The nine metaphors we use are based on four different paradigms and modes of thinking: functionalist, interpretive, emancipatory and postmodern.
We use the metaphors to suggest different complementary ways ICT could be taught in schools. The metaphors illustrate different contexts and help to understand the discussions related to developments in ICT such as open source community, democratization of information and internet of things. They also help to identify the dominant view and the tensions between the views. We propose that the systematic use of metaphors described in this paper would be a useful tool for structuring the dialogue around code in designing ICT education.
Machine & organism:
presents the current dominant view
world seen as simple and people unitary.
Code as an unproblematic language to be taught so students will have better employment.
Code as logical, mathematical, analytical skill.
Then if we still stay on functionalist paradigm, we could use brain, flux and transformation paradoxes, that move the focus from the mechanic viewpoint and put emphasis on the intelligence of code, e.g. cloud computing, big digital infrastructures, the ubiquity of code in our everyday lives
(The Code is a complex set of code and machines running it. Code is everywhere)
The interpretive paradigms focus more on the way code influences the society and culture-And acknowledges that it is jointly decided, -or it should be jointly decided. The Code is part of a democratic system. For example identifying what are the alternatives to using some programs (are there?) and thinking how to create alternatives if there are none.Questions about free software, open source, privacy, whistleblowers and even the structure of internet.
But do we decide? Who makes the development choices in a program and what are his interests? If the code is not simple is the decision done by white male programmers? (link back to the white male programmers part at the start)
Emancipatory paradigm is linked to the political system view, but far more critical: who has put the systems in place? for what? How to break free?
And where as instrument of domination takes a more societal approach, psychic prison focuses on the individual. How the code influences the life of the student, teacher,?
(obsessive gaming, facebook etc, changing habits as homework, Sherry Turkles (MIT) research on texting teenagers etc.)
Reflecting the way the students themselves create restrictions for themselves by the use of their devices or other things with code (see e.g. http://www.wnyc.org/series/bored-and-brilliant/).
Finally, the Carnival metaphor uses postmodern paradigm and dives into the code and comments it inside.
Demystify code: it is a tool like a pen
Remystify and reclaim code: it is a source of inspiration, a perspective to the world: using art to explore the other metaphors and embrace emotions and experiental knowledge instead of just rational thought.
Our purpose in describing and applying these metaphors is not to argue that one is better than the other, or that a certain view to an issue should be followed.
Rather, our purpose is to use the metaphors to structure the discussion around an issue, in our case the issue of code.
Now that code literacy is gaining popularity, what is meant by code becomes more important. However, the societal discussion around code is fragmented and superficial. We have illustrated ways to embrace the tensions and raise the ignored aspects also to the educational agenda?