• No results found

Chapter 3 : Initiating Programming

3.2 Rendering Technical and Rendering Natural

3.2.3 Computing as Natural History

In addition to technological and computing language apparatuses becoming solidified into objects that are treated as worlds unto themselves, computational and mathematical thought and practice are often represented as natural and essentially human in and of themselves. One event in particular stood out to me that exemplified this

perspective. I attended a public lecture by Kent Beck, a well-known American Software Engineer who worked at Facebook at the time and who has promoted software

create such hybrid networks while disavowing the connections that are built: “the modern Constitution allows the expanded proliferation of the hybrids whose existence, whose very possibility, it denies” (Latour 1993, 34). As in Aindri’s comment, once a technology is “released,” it is an object that can be used for any purpose its users can find for it. It is seen as separated from the intentions and networks of developers and other humans and nonhumans involved in its creation. Technologies are thereby rendered natural, as I discuss next.

development methods such as Extreme and Agile programming. Other students and I were told of the talk in one of our lectures and encouraged to attend given his

prominence. The title of his talk was “The Nature of Software” and at the beginning of his presentation he explained the “heuristic” for his talk would be “one startling

sentence” that “programming is best viewed as a natural process.” He provided a comparison, which he repeated several times throughout the presentation, that just as river deltas were created with no master plan but have developed into large scale and beautiful patterns, the same is true of programming. His presentation further elaborated how multiple programming practices follow statistical Power Law distributions, which could be found almost everywhere in nature. He made comparisons to other natural phenomena such as typhoons and hurricanes, and he was amazed by how such patterns just “happen.”

While it was not a topic that arose frequently in classes or among students, with teaching and study focused largely on technical issues, in the few other circumstances when the nature of computing was discussed, it was often seen as a natural part of human thought and practice. In particular, the modes of reasoning entailed in doing computer science are seen as a part of natural human thought processes, and a result of human evolution. There is thus an interrelationship assumed between human thought and computational thought. As Naomi suggested above: “Actually I think we do the same thing as what computers do – it’s just being able to think of what you do and translate it into computer [language]” (Naomi 2014). In this view, humans are like computers, but

the particular thought processes, the steps to achieving certain goals or actions, are not explicitly conceptualized, which is necessary for computers.

Sherry Turkle has explored how the computer works as an “evocative object” that promotes human reflection of our selves and leads us to develop images of ourselves as machines or as “feeling computers” (Turkle 2005, 285). Artificial intelligence

researchers, for example, develop AI processes based on analyses of how the human mind functions in terms of information processing, such that AI is “not about building machines but building a new paradigm for thinking about people, thought, and reality” (Turkle 2005, 244). Similarly, Lucy Suchman has explored how Artificial Intelligence researchers’ attempts at making human-like robots that mimic or reproduce human emotion also reproduce and normalize universalized essentialist, reified, and categorical understandings of emotions and their expression (Suchman 2011a). The demonstration of these emotions – following emotional categories such as anger, fear, and excitement – (re)create emotions as based on these categories (Suchman 2011a, 128-129). In this way, the human interactions with robots (re)produce particular – often narrowed – ways of understanding and creating ourselves as humans, as much as they are scientific and engineering productions of entities with certain abilities or properties.

In similar ways, thinking about the reasoning entailed in programming and doing computer science leads professors and students to think about processes of human reasoning. One professor, in particular, in trying to help students understand the thought processes entailed in a particular form of mathematical reasoning discussed how,

the ability for logical reasoning. The point was that logical thought is something students are inherently capable of, even if they are finding it difficult at this particular moment. The professor located this ability for logical reasoning as part of early human evolution. He told a story about how when human ancestors were living in caves, they would go outside and while they may not yet have conceptualized numbers, they could see groups of horses, their tribe, apples, and oranges, and distinguish these as different categories or sets. They could likely also understand correspondence, such that each man and woman could ride one horse, or match horses with each of their fingers. “I think [it’s a] basic mechanism of human thinking” the professor commented, and to make these comparisons and groupings as “quite a natural thing to do.” Part of doing computer science is then seen as conceptualizing this sort of basic human reasoning in a formal way.

The professor was clear in emphasizing that these were just “stories” or

“pseudoscience.” Yet, these stories are performative in that they suggest and produce a picture of human thought and of computer science as based in human reason from “prehistoric times.”Additionally, the abstraction and formalization entailed in mathematics and algorithms – the computational universe – is thereby tethered to the construction of reality.37 As seen above in the discussion of various forms of

representation in computer science, the constructs from the actual world become translated into diagrams, symbols, computational objects through multiple processes. Reality is rendered technical. By situating computational thought as part of human

evolution, or programming practice as river deltas, computer science is then rendered natural.

“Nature” is not a neutral category. As Latour has argued, ideas and practices of “modernity” have been strongly implicated in creating and maintaining a distinction between “nature” and “culture” (Latour 1993). Such ideas are tied to multiple other dichotomous distinctions including subject-object, human-nonhuman, and self-other, among others, as discussed in the Introduction. From this “modern” perspective nature is something out-there to be discovered, appropriated, managed, and controlled (Haraway 1991a, 1994; Keller 1985). Practices of naturalization then work to reproduce these distinctions, positioning computer-scientists-in-the-making in relation to computational worlds as the objects of their study and practice. In other words, naturalization does rhetorical and performative work to position technologies, computers, code, programs in particular ways in relation to computer scientists and in relation to the construction of reality.

Despite the significant affective dimensions associated with learning and doing computer science, some of which I discuss in Chapter 6, explicit discourses about computer science knowledge production prioritize logic and reason. Professors often emphasized the significance of logical thinking and reasoning for many tasks including writing algorithms, proving the validity of theorems, and writing clear and good code. In emphasizing how to write a good algorithm, a professor for a first-year course

commented, “if your algorithm is messy, if your idea is messy, then your code is messy. You have to start with a clear mind.” Throughout the course this professor would often

comment how students need “logical thinking” or to “think logically.” Code, algorithms, programs, and computing in general is meant to be constructed from formal mathematical and logical thought; computing worlds are meant to be logical, and therefore knowable and able to be assessed, evaluated, and judged.

As suggested above, this is not to say that there is another distinct or objective reality “out there” separate from code and programs. Rather, naturalizing programming worlds, as much as the programs and code themselves, “rend the world in particular ways; they pull, tear and torque the world in some ways (if not others)” (Myers 2014, 155). Seeing code as part of nature shapes the ways in which programmers intervene in coding worlds and the ways in which coding worlds intersect with the ongoing

construction of reality. Rendering technical and rendering natural are two facets of the same process, each feeding into the other. Reality is rendered technical as it is translated into mathematical theorems, diagrams, data structures, algorithms, and code. These translations are then rendered into “natural” computing worlds as if reality was always mathematical, categorical, and computational – as if the computational universe and the actual universe are one and the same – and this is now being realized by computer scientists and their work.

Similar perspectives are held by cyberneticists and artificial intelligence researchers, some of whom envision the universe as a giant digital computer. Human thought and action are thus simply one process among many organizing the overall program of the universe (Hayles 1999, 240–41; Helmreich 1998, 65–83). Rachel

through “slippages” in meaning about computational thinking, which work to “enact computational thinking simultaneously as a foundation and a means for molding the world in its own image” and, moreover, as a way to “engage a computational natural world” (Douglas-Jones and Gad 2015, 9). Similarly, for some cyberneticists we are computer programs, as are animals and other organisms and, of course, computers and other machines. Some Artificial Intelligence researchers have argued that they have created new life-forms out of digital simulations, which becomes understandable when we consider how code, programs, and computing languages can be understood and experienced as parallel and self-contained worlds which are then seen as reflections or instantiations of the nature of reality itself (Hayles 1999, 225–44; Helmreich 1998, 1-5- 68).

In their introduction to Naturalizing Power: Essays in Feminist Cultural Analysis, Sylvia Yanagisako and Carol Delaney state that “cultural domains are culturally specific, but they usually come with claims of universality, which are part and parcel of their seeming to be given-in-nature and/or god given” (Yanagisako and Delaney 1995, 12). Computational thinking and computing practices, while not necessarily domains in themselves, in how they stand in for and are taken as part of “nature” and “reality,” and even as religion and the sacred as I discuss below, are taken and enacted as universal and given-in-nature. The ahistoricized encounters students today have with computers, programming languages, and code reinforce this perspective and form of encounter. The challenge for students is to function in these natural computing worlds, perhaps to explore the underlying functionality, but not to interrogate the context of their

construction. Computer science education then works as an initiation into these worlds and into the mysteries of rendering technical and rendering natural.