The expansion of computer science (CS) education in K–12 and higher-education in the United States has prompted deeper engagement with equity that moves beyond inclusion towards a more critical CS education. Rather than frame computing as a value-neutral tool, a justice-centered approach to equitable CS education draws on critical pedagogy to ensure the rightful presence of political struggles—emphasizing the development of not only knowledge and skills, but also CS disciplinary identities. While recent efforts have integrated ethics into several areas of the undergraduate CS curriculum, critical approaches for teaching data structures and algorithms in particular are undertheorized. Basic Data Structures remains focused on runtime-centered algorithm analysis.
We argue for a more critical algorithm analysis that centers an affordance account of value embedding. Drawing on critical traditions in science and technology studies, philosophy of technology, and algorithmic ethnography, affordance analysis examines how the design of abstractions such as data structures and algorithms embody affordances, which in turn embody values with political consequences. Through three case studies, we illustrate how affordance analysis refutes social determination of technology, foregrounds the limitations of data abstractions, and implicates the design of algorithms towards reinforcing benefits and harms along the matrix of domination.