Programming and Culture
I situate computer programming as a cultural practice. I develop this perspective in two ways: exploring how programming practices can support intercultural learning, and examining how programming tools themselves embed cultural assumptions and values. For the former, I study how relationships across difference are formed over computing activities in K-12 classrooms in Kenya and the U.S. Asking how programming concepts may serve people's intercultural development, I develop a new type of activity, "cultural algorithms," which uses algorithmic concepts to teach about the social construction of societies. Turning to the material means through which we 'write' code, I then trace the earliest history of programming and reveal epistemological tendencies and biases in the field. From the resulting insights, I develop a new AI-powered paradigm, notational programming, as one critical design that seeks to disrupt dominant norms around typing code. Throughout, I aim to muddle the boundaries between 'programming' and 'culture,' exploring programming both as a tool for making change (changing the programming in culture), and as a tool to be changed (changing the culture in programming). Ultimately, I argue that intercultural approaches to computing are focused on ontological change; that is, changing the boundaries and categories that people deploy to divide themselves from others and diminish the complexity of the world.