Humanities-CS1
A collection of homework assignments, readings, and discussion summaries for Humanities CS1 @ RPI, a class focused on synthesizing programming, STS, and social justice.
The "Concept Syllabus" is a rough description of the weekly topics covered in class and in labs. Each "HW" file is the homework assigned for the week.
Course Overview:
This class seeks to build more critical (Freire, 1968) models of Computer Science pedagogy by infusing the CS classroom with Science & Technology Studies scholarship, especially through systemic analyses of the role power plays in the development, deployment, and impact of information systems. The current pilot, which has been under development since 2017, is primarily within Computer Science 1, and pays special attention to roles computing and the Internet play in systems of power, and how those systems have particular impact on marginalized communities, women, persons of color, and the poor. Through lectures, lab assignments, homeworks with readings, and class discussions, “Humanities CS1” aims to transform CS education without sacrificing technical rigor.
Through hybridized assignments and class discussion, Humanities CS1 will engage students in three domains of inquiry:
-
Professional Identity and Problem Definition: What gets defined as the boundaries of response-ability (Haraway 2015) for IT developers, in terms of broader social and moral imperatives, and in terms of our ability to materially address social conditions? Who belongs in the room at various stages during the design, development, and deployment process? To whom are developers accountable?
-
Macroethics and Structures of Power: How do programmers participate in structures of power? How can well-meaning developers still reproduce systems of inequality and oppression? How do automated processes reproduce larger social biases, due in part both to software authorship and also the provenance of datasets?
-
Epistemology and Diversity: What does it mean to understand Computer Science as a culture? What are the systems of knowledge and ideologies that guide Computer Science as a discipline? Where do these ideologies come from? How do they impact different people differently, and how might they alienate individuals with diverse identities and life experiences? How is your education training you to think, and what is it training you to think about?
As students in the Humanities CS1 advance from using basic Python commands to building complex structures, so too will they be introduced to more socially complex issues surrounding algorithmic decision making and data. These issues include social context and data provenance--not just where the data comes from, but how it will be socially and politically deployed. The assignments are designed not to separate “technical” and “social” content. Humanities CS1 filters readings and discussions through the assignments themselves, requiring that students engage with political material as they code.
A pilot assignment, for example, serves as an introduction to the technical and social aspects of sorting and basic decision-making. While students are learning about dictionaries and search methods, they also read histories of immigration classification practices in New York during the Irish Immigration, alongside a selection from Virginia Eubanks’s Automating Inequality, which tracks how algorithmic systems are used to classify, monitor, and punish the communities they are designed to serve. Using a dataset, collected and curated by Anelise Shrout, from the use of Bellevue Hospital as a sorting mechanism for “undesirable” Irish immigrants in 1920s New York, students practice using sorting algorithms to recreate the decision-making of immigration admittors during that era, including a case where pregnant Irish women are auto-classified as diseased. The goal of the assignment is to show students that politically-valenced algorithmic decision making are nothing new, and to connect how historical oppressive practices are reproduced via new technologies upon new groups of people. Importantly, we assume that stepping-through the assignment is not enough. Each assignment will result in prompts that are discussed more in-depth during lab. There will be 8 such assignments in total, in addition to re-developing 10 shorter laboratory assignments, and integrating lessons into lecture content.