Critical-Coding-Cook-Book: Difference between revisions

From H&D Publishing Wiki
No edit summary
No edit summary
Line 1: Line 1:
<div class="article platframe-postscript layout-2" id="Platframe_Postscript">
<div class="article platframe-postscript layout-2" id="Platframe_Postscript">
=== Critical Coding Cookbook ===
=== Critical Coding Cookbook ===
<span class="author">Xin Xin, Katherine Moriwaki</span>  
<span class="author">A conversation with Katherine Moriwaki, and Xin Xin</span>  


''> text still needs to be edited ''
[[File:Screenshot-CCC.jpg|thumb|Critical Coding Cookbook homepage.]]


[Screenshot of the Critical Coding Cookbook homepage.]
'''Anja Groten:''' Xin, together with Lark, you hosted a workshop called "Experimental Chatrooms" during the H&D summer academy in 2020. I remember we, the H&D crew, were all very excited and energized by the workshop, and it inspired us to start using a chat platform, Zulip, as a design tool for our next publication. I also recall being impressed by the way you and Lark had prepared the workshop, almost like a "choose your own adventure” game, with a workshop script that contained multiple pathways! It was developed in a way that created an inspiring and welcoming learning environment for all participants regardless of their geolocation, time zone, or experience with coding. You also introduced participants to the concept of building consensual tech, which prompted H&D to provide a Code of Conduct for the summer academy. Now that I’ve had the privilege to read the “Critical Coding Cookbook,” looking back to that workshop it seems to me that your work as an educator and facilitator expands the usual requirements and formal boundaries of learning institutions. The “Critical Coding Cookbook” itself is an example of that. I am curious, what c inspired you to become educators? What inspired you to create learning communities beyond or parallel to educational institutions? How has your practice evolved inside and outside of institutionalized learning?


''Xin, you hosted a workshop during the H&D Summer Academy in 2020 together with Lark. I remember we (the H&D crew) were all very excited and energized by the workshop. It was called "Experimental Chatrooms". Your workshop inspired us using a chat platform (Zulip) as a design tool for our next publication. But I also recall being impressed by the way you and Lark prepared the workshop – almost like a "choose your own adventure” – a multiple paths workshop script! It was developed in a way that created an inspiring and welcoming learning environment for ALL participants regardless of their geo location, time zone or experiences with coding for instance. You also introduced participants to the concept of building consentful tech and prompted H&D to provide a code of conduct for the summer academy. Thinking back to that moment and also now having the privilege to read the Critical Coding Cookbook, it seems to me that your work as an educator and facilitator extends the usual requirements and formal boundaries of learning institutions. The Critical Coding Cookbook seems to me also an example of that. I am curious, could you both perhaps share a few experiences or considerations of what or who inspired you to become educators, and to create learning communities beyond or parallel to educational institutions. How has your practice evolved in and outside of institutionalized learning? ''
'''Xin Xin:''' Growing up in Taiwan, a geopolitically contentious island that endured colonization by  several different states, I have always had the tendency to question institutional knowledge. I have a vivid memory as an elementary school student in the 90s, when our teacher asked us to question the history printed on textbooks. As I grew older, I learned that there is a continuous debate on the official history of Taiwan, each version shaped by different political actors in accordance with their own agenda. I have found many parallels in the way U.S. and German history is presented at the institutional level. My elementary school teacher told us that we needed to become independent thinkers by doing our own research, and in a way I’ve continued to pursue that spirit of self-education up to this day.  


'''XX:''' Growing up in Taiwan, a geopolitically contentious island that lived through multiple blasts of colonizations, I have always had the tendency to question institutional knowledge. I have a vivid memory as an elementary school student in the 90’s, where our teacher walked into the classroom one day and asked us to question the history printed on textbooks. Over time I learned that there is a continuous debate on the official history of Taiwan, each version shaped by a different political actor in accordance to their own agenda. As an adult, I have found many parallels in the way US and German history is presented at the institutional level. My elementary school teacher told us that we needed to become independent thinkers by doing our own research, and in a way I’ve continued to pursue that spirit of self-education up to today.
Aside from a few inspirational memories inside the classroom, overall I struggled greatly at school. Rules were often given without explanation, followed by disciplinary practices that drove me further away from education. Upon completing my undergraduate degree, I, like many others in their early twenties, aspired to address systemic injustice through a large-scale, top-down approach. It wasn’t until I had worked in the film industry for six years that I came to realize I’d much rather make small but meaningful changes from the bottom-up, in alliance with my peers . This realization led me to graduate school to pursue a terminal degree that qualified me to teach.  


Despite a number of inspirational moments inside the classrooms, overall I struggled greatly at school. Rules were often given without explanations, followed by disciplinary practices that only steered me further away from schooling. Upon completing my undergraduate degree, I, like many in their early 20s, aspired to address systemic injustice through a top-down and wide-spread approach. It wasn’t until I worked in the film industry for 6 years, I came to realize that I’d much rather make small but meaningful changes from the bottom-up, side-by-side with other people. This realization brought me back to graduate school to pursue a terminal degree that qualifies me for teaching.  
For my day job I work in higher education. It is how I make a living and it frees me to do pro bono work such as the “Critical Coding Cookbook.I am acutely aware of the way higher-eds in the U.S. co-opt faculty research and play the murky game of representational politics while continuing to practice corporate logic. This means I have to be very intentional about everything I do, who I do it with, and how I do it. For instance, I’d much rather volunteer my time helping local communities than fixing institutional problems. In an institutional context, I remind myself that I’m here to put most of my energy toward working with the students. I believe in direct engagements over bureaucratic maneuverings.  


My day job is in the university setting – it is how I make a living and it liberates me to do pro bono work such as the Critical Coding Cookbook. I am acutely aware of the way higher-eds in the US co-opt faculty research and play the murky game of representational politics while continuing to practice corporate logic. This means I have to be very intentional about everything I do, who I do it with and how I do it. For instance, I’d much rather volunteer my time helping local communities than fixing institutional problems. In an institutional context, I remind myself that I’m here to put most of my energy towards working with the students. I believe in direct engagements over bureaucratic maneuverings.  
'''Katherine Moriwaki:''' I’ll be totally honest, I think becoming an educator in a formal setting, within the context of higher education, was entirely by chance. I did not aspire to have my current career path nor did I actively consider being an educator as a possible profession. If anything, I felt quite estranged from formal learning environments when I was younger. I always flourished while in pursuit of my own interests, removed from the rubric of formal schooling. My introduction to computers and technology was through a small community computer center in the area I grew up, where people taught each other through member-led workshops and interest driven self-education. Up until that point I did not consider myself a “technical” person, but the community, which was multi-generational and non-hierarchical, opened up new possibilities and competencies I hadn’t been aware of. I guess that was a formative experience for me. Many of my projects, which take the format of workshops and learning experiences, have sought to create that kind of “third place,” the kind of space where even for a few hours, people can exchange ideas, have a good time, and build relationships.  


'''KM:''' I’ll be totally honest, for me I think becoming an educator in a formal setting, within the context of higher education, was entirely by chance. I did not aspire to have my current career path nor did I actively consider being an educator as a possible profession. If anything, my own personal relationship with formal learning environments when I was younger was always estranged. I remember as a younger person feeling alienated by learning in the classroom. It was always in pursuit of my own interests apart from the rubric of formal schooling that I flourished. My introduction to computers and technology was through a small community computer center where I grew up, where people taught each other through member lead workshops and interest driven self-education. Up until that point I did not consider myself someone who was “technical”, but the community, which was multi-generational and non-hierarchical, opened up possibilities and competencies I hadn’t been aware of. I guess that was a formative experience. Many of my projects, which are workshops and learning experiences, have sought to create that kind of “third place”, the kind of space where even for a few hours, people can “exchange ideas, have a good time, and build relationships.
In an extractive capitalist society, opportunities to engage with others in ways that are non-transactional nor consumption-driven present vital ways in which to embody and model alternative systems of value. In an American context, this is increasingly challenging to maintain in light of the ongoing corporatization of higher education. Still, I am thankful for the dynamic learning community that manages to thrive at my current institution. That will always remain  a privilege.  


In an extractive capitalist society, opportunities to engage with others in ways that are non-transactional nor consumption driven presents a vital way in which we can embody and model alternative systems of value. Increasingly in an American context this is challenging to try to maintain in light of the ongoing corporatization of higher education. Still, I have been thankful for the dynamic learning community that manages to thrive at my current institution. That remains always a privilege.
'''AG:''' The “Critical Coding Cookbook” takes an intersectional feminist approach to teaching and learning. Can you  explain how you relate intersectional feminism to the practice of coding as well as learning with and about coding? Why is it important to you?


The Critical Coding Cook Book takes an intersectional feminist approach to teaching and learning. Can you perhaps explain how you relate intersectional feminism to the practice of coding as well as learning with and about coding? and why is it important to you?
'''XX:''' Intersectional feminism is both a theory and a practice, originally coined in 1989 by UCLA law professor Kimberlé Crenshaw to address the institutional sexism and racism she had observed in courtrooms. Specifically, she pointed out how, in the face of law, narratives of Black women were reductively framed within the confinements of racism or sexism, resulting in the dismissal of the compounded and exacerbating reality of being both Black and women at the same time. To counter this compartmentalization, Crenshaw called for individuals to be considered through their intersected identities, including but not limited to race, gender, class, sex, nationality, and abilities, as a vehicle to better articulate the overlapping systems of oppression they experience on a daily basis. As educators working within institutions that are founded on western-European tradition—which often inherits a narrow, exclusionary, and hierarchical relation to knowledge that historically benefits the dominant demographics in the society—an intersectional feminist approach breaks out of the gridlock of a standardized, market-driven computer science curriculum by using alternate histories and techniques as our starting point.


'''XX:''' Intersectional feminism is both a theory and a practice, originally coined by UCLA law professor Kimberlé Crenshaw in 1989 to address the institutional sexism and racism she had observed in courtrooms. Specifically, she pointed out how in the face of law, narratives of Black women were reductively framed within the confinements of racism or sexism, resulting in the dismissal of the compounded and exacerbating reality of being both Black and women at the same time. To counter this comparmentalization, Crenshaw proposed for an individual to be considered through their intersected identities, including but not limited to race, gender, class, sex, nationality, and abilities – as a vehicle to better articulate the overlapping systems of oppression they operate from within. As educators working within institutions that are founded on western-european tradition, which often inherits a narrow, exclusionary, and hierarchical relation to knowledge that historically benefits the dominant demographics in the society, an intersectional feminist approach breaks out of the grid-lock of a standardized, market-driven computer science curriculum by using alternate history and technique as our starting point.
The “Critical Coding Cookbook” recipes demonstrate multiple paths to intersectional computing. For instance, in Esolangs: Deprogramming the Language Divide, Echo Theohar describes the “linguistic inequality in computer programming” and searches for possible ways to disturb the dominance of English in computer programming. In Kolam in Code, Lavannya Suressh traces the procedural logic of pulli kolam, a folk practice originated in South India, and proposes the possibility of building the algorithm into a 4-bit computer. In A School for Vernacular Algorithms, Tegan Bristow worked with a group of students in Johannesburg, South Africa to consider pre-colonial technology such as beadwork, palm/grass weaving, and lyrical practices from a mathematical and algorithmic perspective.


The Critical Coding Cookbook recipes demonstrate multiple paths to intersectional computing. For instance, in Esolangs: Deprogramming the Language Divide, Echo Theohar describes the “linguistic inequality in computer programming” and searches for possible ways to disturb the dominance of English in computer programming. In Kolam in Code, Lavannya Suressh traces the procedural logic of pulli kolam, a folk practice originated in South India, and proposes the possiblity of building the algorithm into a 4-bit computer. In A School for Vernacular Algorithms, Tegan Bristow worked with a group of students in Johannesburg, South Africa to consider pre-colonial technology such as beadwork, palm/grass weaving, and lyrical practices from a mathematical and algorithmic perspective.
[[File:Kolams.png|thumb|Examples of generated Kolams. Image credit: Lavannya Suressh]]
[[File:Photograph.jpg|thumb|Philisiwe Dube, curriculum lead of the School of Vernacular Algorithms 2021.Image Credit: Tegan Bristow. Photo Credit: Zivanai Matangi.]


Examples of generated Kolams. Image credit: Lavannya Suressh.
Although intersectional feminism is often used as a pedagogical tool to amplify marginalized histories and ways of knowing that live under constant threat of colonial and capitalist erasure, it is important to keep in mind that this tool is also good for addressing systems of privilege—a white woman in the U.S. may experience sexism but not the baggage of racism in her everyday life. It would be a mistake for an intersectional feminist to focus on oppressive narratives without integrated, comprehensive reflections on what it means to hold privilege.  


'''AG:''' In its conceptual framing—as a collection of recipes—“Critical Coding Cookbook” aligns well with the common thread of this publication. The commonality of all the contributions is that they somehow relate to some sort of “pedagogical document.” Pedagogical documents can be workshop scripts, installation manuals, how-tos, scores, or gameplays. On the one hand these documents propose a pragmatic approach. They are generous and generative, inviting other people to take a recipe, run with it, and make it their own. On the other hand it is perhaps too simple to expect such a document to be functional or  meaningful in the same way in every context. Each of the documents emerged from a specific context, due to specific and sometimes peculiar practices. Could you reflect on your analogy of the “recipe” and the editorial framework of a cookbook? What possibilities and challenges did you encounter while using this format?


Curriculum lead in the 2021 School of Vernacular Algorithms: Philisiwe Dube. Image Credit: Tegan Bristow. Photo Credit: Zivanai Matangi.
'''XX:''' From the get go, we envisioned “Critical Coding Cookbook” as a repository for the learning community both inside and outside of institutional contexts. The question that follows then was what type of relationship do we want to propose between learners and the medium in which they study? We thought recipes might be a good analogy; the format feels more welcoming than traditional academic textbooks or open-source documents. Recipes are instructions to be re-performed and are wonderfully kitschy and welcoming. They are meant to help someone make food for themselves or others—a gesture that directly impacts our sense of pleasure and well-being without layers of intellectual abstraction. They exist in parallel with the notion of oral history and are meant to be passed down and shared with their intended community.  


Although intersectional feminism is often used as a pedagogical tool to amplify marginalized histories and ways of knowing that live under constant threat of colonial and capitalist erasure, it is important to keep in mind that this tool is also good for addressing systems of privilege – a white woman in the U.S. may experience sexism but not the baggage of racism in their everyday life. It would be a mistake for an intersectional feminist to focus on oppressive narratives without integrated, comprehensive reflections on what it means to hold privilege.  
Over the last three years, Katherine and I have developed and taught Critical Computation at the New School with a number of faculty members.. This course introduces programming concepts through an intersectional feminist lens, thereby situating the act of computing in a social-historical context. We unpack discriminatory practices embedded in pervasive technology by integrating readings such as Algorithms of Oppression by Safiya Umoja Noble, Race After Technology by Ruha Benjamin, Blockchain Chicken Farm by Xiaowei Wang, and “Crip Technoscience Manifesto” by Aimi Hamraie and Kelly Fritsch. Although some of these texts are published by academic presses, we really appreciate the accessible language in which they are written, and the readership they can reach through this choice of language. When it comes to expressive, critical, and community-centric ways of working with technology, we think that an intersectional approach replaces the canon by instigating a world of plurality. Recipes made sense as concise documents that can be modified and revised in practice.  


In its conceptual framing – as a collection of recipes – the Critical Coding Cookbook aligns well with the common thread of this publication. The commonality of all contributions is that they somehow relate to some sort of 'pedagogical document'. Pedagogical documents are for instance workshop scripts, installation manuals, how-tos, scores or gameplays. On the one hand these documents propose a pragmatic approach. They are generous and activating, inviting other people to take for instance a recipe and run with it, make it their own. On the other hand it is perhaps too simple to expect such a document to be functioning or to be meaningful in any context in the same way. They emerged from a specific context and due to specific and sometimes peculiar practices. Can you perhaps reflect on your choice of the recipe analogy for the book and the editorial framework of a cookbook. What are the possibilities as well as challenges you encountered using this format?
Of course, recipes often carry a one-sided instructional quality and may be misinterpreted as strictly utilitarian. To counter this, we intentionally chose not to provide any standardizations or examples in our open call. As a result, we received multiple entries that troubled the notion of repeatability—for example, How to code human bodies for devouring and mutual enlightenment by Mario Guzman and terra firma by Sara Rivera.  


'''XX:''' From the get go, we envisioned Critical Coding Cookbook as a repository for the learning community both in and outside of the institutional context. The question that follows then was what type of relationship do we want to propose between learners and the medium they study? We thought recipes might be a good analogy and a format that feels more welcoming than traditional academic textbooks or open-source documents. Recipes are instructions to be re-performed and are wonderfully kitschy and welcoming; they are meant to help someone make food for oneself or others – a gesture that directly impacts our sense of pleasure and well-being without layers of intellectual abstraction; they parallel with the notion of oral history and are meant to be passed down and shared with their intended community.  
[[File:Spreadsheet.jpg|thumb|The work-in-progress open-source index. Image credit: Sara Rivera.]]


At the New School, Katherine and I have developed and taught Critical Computation with a number of faculty over the last three years. This course introduce programming concepts through an intersectional feminist lens, thereby situating the act of computing in a social-historical context. We unpack discriminatory practices embedded in pervasive technology by integrating readings such as Algorithms of Oppression by Safiya Umoja Noble, Race After Technology by Ruha Benjamin, Blockchain Chicken Farm by Xiaowei Wang, and Crip Technoscience Manifesto by Aimi Hamraie & Kelly Fritsch. Although some of these writings are published by academic presses, we really appreciated the accessible language they use and the readers that would reach. When it comes to expressive, critical, and community-centric ways of working with technology, we think that an intersectional approach replaces the canon by instigating a world of plurality. Recipes made sense as concise documents that can be modified and revised in practice.
'''AG:''' You worked with an open call for contributions. Can you elaborate on the process of compiling the book? Were there any surprises or contributions you did not anticipate? What were your criteria for making your selection?


Of course, recipes often carry a one-sided instructional quality and may be misinterpreted as strictly utilitarian. To work against this, we intentionally didn’t provide any standardizations or examples in our open call. As a result, we received multiple entries that troubled the notion of repeatability – for example, How to code human bodies for devouring and mutual enlightenment by Mario Guzman and terra firma by Sara Rivera.  
'''KM:''' One of the benefits we found of an open call format was the unpredictability of submissions. We wanted to encourage the broadest range of contributions possible, and an open call was the least restrictive pathway to achieve that. As for the criteria for selection, it was important to us that the submissions reflected an intersectional perspective on computation. We were actively seeking work from practitioners who were questioning the epistemological framing of programming, researching alternative histories, and forging culturally situated pathways through this field.


'''XX:''' I was pleasantly surprised by the number of contributions that emphasized the virtue of uncertainty. How to contribute to open source software by sharing uncertainty by Evelyn Masso encourages new contributors of p5.js to turn uncertainty and vulnerability into a strength. Failing to CODE by Becca Rose connects ideas in The Queer Art of Failure by Jack Halberstam with computer education. These are lovely reminders of the fragility of human creation and the meaning of remaining humble with ourselves as well as others.


[[File:Collage.jpg|thumb|Image credit: Becca Rose]]


Screen capture from the in progress-open source index. Image credit: Sara Rivera.
'''AG:''' I understand the recipe as it is interpreted in your publication also as a format that gives space to processes rather than products. Through the recipe you trouble the status of the precious and undisputed art piece—something that functions as a self-contained object. The recipe could be seen as counter to that, it emphasizes the process of coding and the sharing of such a process, which makes it harder to distinguish. You also speak about messy histories of computation. Can you elaborate on the notion of a messy practice or history of coding? What does that mean to you?


You worked with an open call for contributions. Can you say a bit about the process of compiling the book. Were there any surprises, contributions you did not anticipate? What were your criteria for selecting?
'''KM:''' Typically in histories of computation the narrative presented is sequential, logical, and the result of an inevitable progression. The story moves from one great innovation to the next, each development presented as an improvement on what has come before. There may be disruptions to this forward movement, but these are seen in the context of a trajectory of optimization. We are left to assume that what was left behind, fixed in a historicized frame, was done so because the “better” ideas or inventions superseded the rest. In these traditional histories the protagonists are clearly identifiable, homogenous, and driven by their vision for an objective betterment of humanity “for all.” In reality, however, the actual passage of events rarely conforms to this structure, which is undergirded by capitalist and eugenicist ideologies. For example, in her book Broadband, Clare L. Evans profiled computer scientist Wendy Hall, who developed a specialized linkbase, “Microcosm,” which would automatically and dynamically update hyperlinks, creating a “messy” web of collaborative connections. This is in contrast to the embedded hyperlinking that became standard, wherein individual web pages, as a singular authority, contained only outward links, which could be rendered with time potentially “dead” or obsolete. This represents two epistemological frames: one of inherent interdependence and collaboration, and another of rugged individualism and solitary enterprise. Likewise, in Black Radical Translation, Shayna Robinson embraces Black cultural traditions not as a means of optimization, but rather as a complication and challenge to reimagine technological visions rendered through the frames of whiteness.


'''KM:''' One of the benefits we found of an open call format was the unpredictability of submissions. We wanted to encourage the broadest range of contributions possible, and an open call was the least restrictive pathway to achieve that. As for criteria for selection, it was important to us that the submissions reflected an intersectional perspective on computation. We were actively seeking work from practitioners who were questioning the epistemological framing of programming, researching alternative histories, and forging culturally situated pathways through this field. 
<code>
 
'''XX:''' I was pleasantly surprised by the number of contributions that emphasized the virtue of uncertainty. How to contribute to open source software by sharing uncertainty by Evelyn Masso encourages new contributors of p5.js to turn uncertainty and vulnerability into a strength. Failing to CODE by Becca Rose connects ideas in The Queer Art of Failure by Jack Halberstam with computer education. These are such a lovely reminder of the fragility of human creation and the meaning of remaining humble with oneself and others.
 
 
Image credit: Becca Rose.
 
I understand the format of the recipes as it is interpreted in your publication also as a way to dismantle or trouble the status of a precious unquestionable art piece, something that functions as a self-contained object, something that can be comprehended and used easily, designed by an individual star artists. The recipe could be seen counter to that … emphasising the process of coding and the sharing of such a process, which makes it harder to distinguish. You also speak about messy histories of computation. Can you perhaps elaborate on the notion of a messy practice or history of coding? What does that entail to you?
 
KM: Typically in histories of computation the narrative presented is sequential, logical, and the result of an inevitable progression. The story moves from one great innovation to the next, each development presented as an improvement on what has come before. There may be disruptions to this forward movement, but these are seen in the context of an trajectory of optimization.  We are left to assume that what was left behind, fixed in a historicized frame, was done so because the “better” ideas or invention won out. In these traditional histories the protagonists are clearly identifiable, homogenous, and driven by their vision for an objective betterment of humanity “for all.” In reality, however, the actual passage of events rarely conforms to this structure, which is undergirded with capitalist, eugenicist ideology. For example, author Clare L. Evans in her book Broadband profiled computer scientist Wendy Hall, who developed a specialized linkbase, Microcosm, which would automatically and dynamically update hyperlinks, creating a “messy” web of collaborative connections. This is in contrast to the embedded hyperlinking that became standard, wherein individual web pages, as a singular authority contained only outward links, which could be rendered with time potentially “dead” or obsolete. This represents two epistemological frames, one of inherent interdependence and collaboration, and one of rugged individualism and solitary enterprise. Likewise, in Black Radical Translation Shayna Robinson embraces Black cultural traditions, not as a means of optimization, but rather a complication and challenge to reimagine technological visions rendered through the frames of whiteness.


SQL Translation of June Jordan’s Black English Translation of Shakespeare’s 116th Sonnet
Shayna Robinson, 2021
<code>
:CREATE TABLE love (instance TEXT,
:CREATE TABLE love (instance TEXT,
::value INTERGER,
::value INTERGER,
Line 66: Line 57:
::provocation TEXT
::provocation TEXT
::temporality TIME);
::temporality TIME);
:DELETE FROM love
:DELETE FROM love
:WHERE instance LIKE impediments
:WHERE instance LIKE impediments
Line 86: Line 76:
</code>
</code>


A “messy” practice and a “messy” history acknowledges the entanglement of interlocking systems of oppression in shaping historical record, attenuating the visibility of some people at the expense of others. Messiness acknowledges multiple timelines, multiple narratives, and multiple perspectives, which may sit in tension with each other, and may pose complicated and contentious questions about power and privilege. In practice this means thinking critically about the knowledge and labor we value. It means questioning the epistemological framing of the rational and scientific, and opening spaces for intuitive, folk, and embodied understandings of computational concepts. It might mean asking oneself what values and ideology are packed into what we think of as “good” code, or how we pedagogically approach programming organized around hierarchical “best practice.” It also means acknowledging the multiple ways in which knowledge and practice is exchanged, and recipes are an apt conceptual model for sharing, attribution, and growth within informal networks.  
<small>Caption: SQL Translation of June Jordan’s Black English Translation of Shakespeare’s 116th Sonnet
Shayna Robinson, 2021</small>
 
A “messy” practice and a “messy” history acknowledges the entanglement of interlocking systems of oppression in shaping historical record, attenuating the visibility of some people at the expense of others. Messiness acknowledges multiple timelines, multiple narratives, and multiple perspectives, which may sit in tension with each other, and may pose complicated and contentious questions about power and privilege. In practice, this means thinking critically about the knowledge and labor we value. It means questioning the epistemological framing of the rational and scientific, and opening spaces for intuitive, folk, and embodied understandings of computational concepts. It might mean asking ourselves what values and ideology are packed into what we think of as “good” code, or how we pedagogically approach programming organized around hierarchical “best practice.” It also means acknowledging the multiple ways in which knowledge and practice is exchanged, and recipes are an apt conceptual model for sharing, attribution, and growth within informal networks.  


You are considering making a printed version of the publication. It seems not an immediately obvious choice as the subject matter deals with computer programming. What is the benefit in your opinion of a physical book over a digital publication, particularly a book about coding?   
'''AG:''' You are considering making a printed version of the publication. This doesn’t seem like an obvious choice seeing as the subject matter deals with computer programming. In your opinion, what is the benefit of a physical book over a digital publication, particularly for a book about coding?   


KM: I think that different media have affordances that allow for varied ways of contemplating ideas. Books are objectively concrete in a way that embodies and materializes knowledge which we then perceive in a distinct way. From a philosophical standpoint moving to a physical medium like a book aligns us with an approach that focuses on providing multiple entry points to the content, much in the same way web accessibility was an essential component of the website design. If the intent is to reach an audience that is not only confined to people who already identify with computer programming and/or computational technology, then a book remains a very enduring container for information, one that provides a physicality which is familiar and inviting to potential readers from a variety of backgrounds.
'''KM:''' I think that different media have affordances that allow for diverse ways of contemplating ideas. Books are objectively concrete in a way that embodies and materializes knowledge, which we then perceive in a specific way. From a philosophical standpoint, moving to a physical medium like a book aligns us with an approach that focuses on providing multiple entry points to the content, much in the same way that web accessibility was an essential component of the website design. If the intention is to reach an audience that is not solely confined to people who already identify with computer programming and/or computational technology, then a book serves as an enduring container for information, one that provides a physicality that is familiar and inviting to potential readers from a variety of backgrounds.


</div>
</div>

Revision as of 13:51, 28 October 2022

Critical Coding Cookbook

A conversation with Katherine Moriwaki, and Xin Xin

Critical Coding Cookbook homepage.

Anja Groten: Xin, together with Lark, you hosted a workshop called "Experimental Chatrooms" during the H&D summer academy in 2020. I remember we, the H&D crew, were all very excited and energized by the workshop, and it inspired us to start using a chat platform, Zulip, as a design tool for our next publication. I also recall being impressed by the way you and Lark had prepared the workshop, almost like a "choose your own adventure” game, with a workshop script that contained multiple pathways! It was developed in a way that created an inspiring and welcoming learning environment for all participants regardless of their geolocation, time zone, or experience with coding. You also introduced participants to the concept of building consensual tech, which prompted H&D to provide a Code of Conduct for the summer academy. Now that I’ve had the privilege to read the “Critical Coding Cookbook,” looking back to that workshop it seems to me that your work as an educator and facilitator expands the usual requirements and formal boundaries of learning institutions. The “Critical Coding Cookbook” itself is an example of that. I am curious, what c inspired you to become educators? What inspired you to create learning communities beyond or parallel to educational institutions? How has your practice evolved inside and outside of institutionalized learning?

Xin Xin: Growing up in Taiwan, a geopolitically contentious island that endured colonization by several different states, I have always had the tendency to question institutional knowledge. I have a vivid memory as an elementary school student in the 90s, when our teacher asked us to question the history printed on textbooks. As I grew older, I learned that there is a continuous debate on the official history of Taiwan, each version shaped by different political actors in accordance with their own agenda. I have found many parallels in the way U.S. and German history is presented at the institutional level. My elementary school teacher told us that we needed to become independent thinkers by doing our own research, and in a way I’ve continued to pursue that spirit of self-education up to this day.

Aside from a few inspirational memories inside the classroom, overall I struggled greatly at school. Rules were often given without explanation, followed by disciplinary practices that drove me further away from education. Upon completing my undergraduate degree, I, like many others in their early twenties, aspired to address systemic injustice through a large-scale, top-down approach. It wasn’t until I had worked in the film industry for six years that I came to realize I’d much rather make small but meaningful changes from the bottom-up, in alliance with my peers . This realization led me to graduate school to pursue a terminal degree that qualified me to teach.

For my day job I work in higher education. It is how I make a living and it frees me to do pro bono work such as the “Critical Coding Cookbook.” I am acutely aware of the way higher-eds in the U.S. co-opt faculty research and play the murky game of representational politics while continuing to practice corporate logic. This means I have to be very intentional about everything I do, who I do it with, and how I do it. For instance, I’d much rather volunteer my time helping local communities than fixing institutional problems. In an institutional context, I remind myself that I’m here to put most of my energy toward working with the students. I believe in direct engagements over bureaucratic maneuverings.

Katherine Moriwaki: I’ll be totally honest, I think becoming an educator in a formal setting, within the context of higher education, was entirely by chance. I did not aspire to have my current career path nor did I actively consider being an educator as a possible profession. If anything, I felt quite estranged from formal learning environments when I was younger. I always flourished while in pursuit of my own interests, removed from the rubric of formal schooling. My introduction to computers and technology was through a small community computer center in the area I grew up, where people taught each other through member-led workshops and interest driven self-education. Up until that point I did not consider myself a “technical” person, but the community, which was multi-generational and non-hierarchical, opened up new possibilities and competencies I hadn’t been aware of. I guess that was a formative experience for me. Many of my projects, which take the format of workshops and learning experiences, have sought to create that kind of “third place,” the kind of space where even for a few hours, people can exchange ideas, have a good time, and build relationships.

In an extractive capitalist society, opportunities to engage with others in ways that are non-transactional nor consumption-driven present vital ways in which to embody and model alternative systems of value. In an American context, this is increasingly challenging to maintain in light of the ongoing corporatization of higher education. Still, I am thankful for the dynamic learning community that manages to thrive at my current institution. That will always remain a privilege.

AG: The “Critical Coding Cookbook” takes an intersectional feminist approach to teaching and learning. Can you explain how you relate intersectional feminism to the practice of coding as well as learning with and about coding? Why is it important to you?

XX: Intersectional feminism is both a theory and a practice, originally coined in 1989 by UCLA law professor Kimberlé Crenshaw to address the institutional sexism and racism she had observed in courtrooms. Specifically, she pointed out how, in the face of law, narratives of Black women were reductively framed within the confinements of racism or sexism, resulting in the dismissal of the compounded and exacerbating reality of being both Black and women at the same time. To counter this compartmentalization, Crenshaw called for individuals to be considered through their intersected identities, including but not limited to race, gender, class, sex, nationality, and abilities, as a vehicle to better articulate the overlapping systems of oppression they experience on a daily basis. As educators working within institutions that are founded on western-European tradition—which often inherits a narrow, exclusionary, and hierarchical relation to knowledge that historically benefits the dominant demographics in the society—an intersectional feminist approach breaks out of the gridlock of a standardized, market-driven computer science curriculum by using alternate histories and techniques as our starting point.

The “Critical Coding Cookbook” recipes demonstrate multiple paths to intersectional computing. For instance, in Esolangs: Deprogramming the Language Divide, Echo Theohar describes the “linguistic inequality in computer programming” and searches for possible ways to disturb the dominance of English in computer programming. In Kolam in Code, Lavannya Suressh traces the procedural logic of pulli kolam, a folk practice originated in South India, and proposes the possibility of building the algorithm into a 4-bit computer. In A School for Vernacular Algorithms, Tegan Bristow worked with a group of students in Johannesburg, South Africa to consider pre-colonial technology such as beadwork, palm/grass weaving, and lyrical practices from a mathematical and algorithmic perspective.

Examples of generated Kolams. Image credit: Lavannya Suressh

[[File:Photograph.jpg|thumb|Philisiwe Dube, curriculum lead of the School of Vernacular Algorithms 2021.Image Credit: Tegan Bristow. Photo Credit: Zivanai Matangi.]

Although intersectional feminism is often used as a pedagogical tool to amplify marginalized histories and ways of knowing that live under constant threat of colonial and capitalist erasure, it is important to keep in mind that this tool is also good for addressing systems of privilege—a white woman in the U.S. may experience sexism but not the baggage of racism in her everyday life. It would be a mistake for an intersectional feminist to focus on oppressive narratives without integrated, comprehensive reflections on what it means to hold privilege.

AG: In its conceptual framing—as a collection of recipes—“Critical Coding Cookbook” aligns well with the common thread of this publication. The commonality of all the contributions is that they somehow relate to some sort of “pedagogical document.” Pedagogical documents can be workshop scripts, installation manuals, how-tos, scores, or gameplays. On the one hand these documents propose a pragmatic approach. They are generous and generative, inviting other people to take a recipe, run with it, and make it their own. On the other hand it is perhaps too simple to expect such a document to be functional or meaningful in the same way in every context. Each of the documents emerged from a specific context, due to specific and sometimes peculiar practices. Could you reflect on your analogy of the “recipe” and the editorial framework of a cookbook? What possibilities and challenges did you encounter while using this format?

XX: From the get go, we envisioned “Critical Coding Cookbook” as a repository for the learning community both inside and outside of institutional contexts. The question that follows then was what type of relationship do we want to propose between learners and the medium in which they study? We thought recipes might be a good analogy; the format feels more welcoming than traditional academic textbooks or open-source documents. Recipes are instructions to be re-performed and are wonderfully kitschy and welcoming. They are meant to help someone make food for themselves or others—a gesture that directly impacts our sense of pleasure and well-being without layers of intellectual abstraction. They exist in parallel with the notion of oral history and are meant to be passed down and shared with their intended community.

Over the last three years, Katherine and I have developed and taught Critical Computation at the New School with a number of faculty members.. This course introduces programming concepts through an intersectional feminist lens, thereby situating the act of computing in a social-historical context. We unpack discriminatory practices embedded in pervasive technology by integrating readings such as Algorithms of Oppression by Safiya Umoja Noble, Race After Technology by Ruha Benjamin, Blockchain Chicken Farm by Xiaowei Wang, and “Crip Technoscience Manifesto” by Aimi Hamraie and Kelly Fritsch. Although some of these texts are published by academic presses, we really appreciate the accessible language in which they are written, and the readership they can reach through this choice of language. When it comes to expressive, critical, and community-centric ways of working with technology, we think that an intersectional approach replaces the canon by instigating a world of plurality. Recipes made sense as concise documents that can be modified and revised in practice.

Of course, recipes often carry a one-sided instructional quality and may be misinterpreted as strictly utilitarian. To counter this, we intentionally chose not to provide any standardizations or examples in our open call. As a result, we received multiple entries that troubled the notion of repeatability—for example, How to code human bodies for devouring and mutual enlightenment by Mario Guzman and terra firma by Sara Rivera.

The work-in-progress open-source index. Image credit: Sara Rivera.

AG: You worked with an open call for contributions. Can you elaborate on the process of compiling the book? Were there any surprises or contributions you did not anticipate? What were your criteria for making your selection?

KM: One of the benefits we found of an open call format was the unpredictability of submissions. We wanted to encourage the broadest range of contributions possible, and an open call was the least restrictive pathway to achieve that. As for the criteria for selection, it was important to us that the submissions reflected an intersectional perspective on computation. We were actively seeking work from practitioners who were questioning the epistemological framing of programming, researching alternative histories, and forging culturally situated pathways through this field.

XX: I was pleasantly surprised by the number of contributions that emphasized the virtue of uncertainty. How to contribute to open source software by sharing uncertainty by Evelyn Masso encourages new contributors of p5.js to turn uncertainty and vulnerability into a strength. Failing to CODE by Becca Rose connects ideas in The Queer Art of Failure by Jack Halberstam with computer education. These are lovely reminders of the fragility of human creation and the meaning of remaining humble with ourselves as well as others.

Image credit: Becca Rose

AG: I understand the recipe as it is interpreted in your publication also as a format that gives space to processes rather than products. Through the recipe you trouble the status of the precious and undisputed art piece—something that functions as a self-contained object. The recipe could be seen as counter to that, it emphasizes the process of coding and the sharing of such a process, which makes it harder to distinguish. You also speak about messy histories of computation. Can you elaborate on the notion of a messy practice or history of coding? What does that mean to you?

KM: Typically in histories of computation the narrative presented is sequential, logical, and the result of an inevitable progression. The story moves from one great innovation to the next, each development presented as an improvement on what has come before. There may be disruptions to this forward movement, but these are seen in the context of a trajectory of optimization. We are left to assume that what was left behind, fixed in a historicized frame, was done so because the “better” ideas or inventions superseded the rest. In these traditional histories the protagonists are clearly identifiable, homogenous, and driven by their vision for an objective betterment of humanity “for all.” In reality, however, the actual passage of events rarely conforms to this structure, which is undergirded by capitalist and eugenicist ideologies. For example, in her book Broadband, Clare L. Evans profiled computer scientist Wendy Hall, who developed a specialized linkbase, “Microcosm,” which would automatically and dynamically update hyperlinks, creating a “messy” web of collaborative connections. This is in contrast to the embedded hyperlinking that became standard, wherein individual web pages, as a singular authority, contained only outward links, which could be rendered with time potentially “dead” or obsolete. This represents two epistemological frames: one of inherent interdependence and collaboration, and another of rugged individualism and solitary enterprise. Likewise, in Black Radical Translation, Shayna Robinson embraces Black cultural traditions not as a means of optimization, but rather as a complication and challenge to reimagine technological visions rendered through the frames of whiteness.

CREATE TABLE love (instance TEXT,
value INTERGER,
height INTERGER,
provocation TEXT
temporality TIME);
DELETE FROM love
WHERE instance LIKE impediments
OR instance LIKE trouble
OR instance LIKE doubt;
SELECT value
FROM love
ORDER BY height DSC;
SELECT COUNT provocation
FROM love
LIMIT 1;
SELECT *
FROM love
WHERE temporality IS NULL;

Caption: SQL Translation of June Jordan’s Black English Translation of Shakespeare’s 116th Sonnet Shayna Robinson, 2021

A “messy” practice and a “messy” history acknowledges the entanglement of interlocking systems of oppression in shaping historical record, attenuating the visibility of some people at the expense of others. Messiness acknowledges multiple timelines, multiple narratives, and multiple perspectives, which may sit in tension with each other, and may pose complicated and contentious questions about power and privilege. In practice, this means thinking critically about the knowledge and labor we value. It means questioning the epistemological framing of the rational and scientific, and opening spaces for intuitive, folk, and embodied understandings of computational concepts. It might mean asking ourselves what values and ideology are packed into what we think of as “good” code, or how we pedagogically approach programming organized around hierarchical “best practice.” It also means acknowledging the multiple ways in which knowledge and practice is exchanged, and recipes are an apt conceptual model for sharing, attribution, and growth within informal networks.

AG: You are considering making a printed version of the publication. This doesn’t seem like an obvious choice seeing as the subject matter deals with computer programming. In your opinion, what is the benefit of a physical book over a digital publication, particularly for a book about coding?

KM: I think that different media have affordances that allow for diverse ways of contemplating ideas. Books are objectively concrete in a way that embodies and materializes knowledge, which we then perceive in a specific way. From a philosophical standpoint, moving to a physical medium like a book aligns us with an approach that focuses on providing multiple entry points to the content, much in the same way that web accessibility was an essential component of the website design. If the intention is to reach an audience that is not solely confined to people who already identify with computer programming and/or computational technology, then a book serves as an enduring container for information, one that provides a physicality that is familiar and inviting to potential readers from a variety of backgrounds.