S3xE11: Critically Conscious Computing

July 3, 2023
S3xE11: Critically Conscious Computing

Episode Summary

This episode features Amy Ko et al.’s online book Critically Conscious Computing: Methods for Secondary Education. We discuss with Amy what is in the book, who the book is for, and how educators can use the book in their own teaching. The book focuses on contextualizing the history of computer science and how that history shows that computing is not neutral. In addition, it provides unit sketches to help teachers bring in more design critical conscious discussion into how they teach CS that will hopefully help all of our students better understand how computing affects our world.

You can also download this episode directly.


Kristin[0:09] Hello, and welcome to the CS-Ed Podcast, a podcast where we talk about teaching computer science with computer science educators. I’m your host, Kristin Stephens-Martinez, an assistant professor of the practice at Duke University. Joining me today is Amy Ko, professor at the University of Washington Information School, director of CSforAll Washington, and Editor in Chief of ACM Transactions on Computing Education.

Amy[0:30] It’s great to be here, Kristin. Thanks.

Kristin[0:32] Awesome. So, Amy, first, I’d like to ask, how did you get to where you are today? With so many titles, I’m sure there’s a story there. Or you could at least reveal to us that you don’t need to be superhuman to get to where you are today.

Amy[0:43] Oh, you definitely don’t need to be superhuman. I have a weird trajectory, like a lot of people into computer science. So here’s the short version. I loved illustration and animation as a child. My devotion was to Disney and Nintendo and games and animations and illustrations. And so I really wanted to work for one of those companies and create things with them. And computing was really not part of that story for me, aside from just video games, I guess. But a classmate in middle school showed me how to use a TI-82 graphing calculator to make games and showed me this version of Tetris. And I kind of fell in love with using code to create games and animation. So I would just spend hours, like, making little flip card animations on my calculator out of the plots and other things.

Amy[01:31] And from there, it was just a whole story of mentorship. So I had a high school physics teacher who knew some Pascal and taught me after school. There was this Dutch exchange student who hung out at the computer lab and explained to me what variables were. And a calculus teacher who really geeked out with me about fast ways to calculate square roots, to draw circles and ellipses. I had a community college student who actually challenged me with his algorithms homework and didn’t really tell me that it was his homework. And then, from there, I was just discovering research and finding my wonderful mentor, Margaret Burnett, at Oregon State. And she introduced me to computer science as a field and research in HCI and software engineering, and that the rest is sort of a story of graduate school and becoming a professor.

Kristin[02:15] Cool. All right. And some of that professor-ing has resulted in our main conversation, which is your book, or more like your book with many people, called Critically Conscious Computing Methods for Secondary Education. And so, how about we start with you giving us a brief overview of what’s in the book? What would educators get out of it? Who is it for, so on and so forth?

Amy[02:37] Yeah, sure. The basic overview is that this is a book for secondary educators- middle school teachers, high school teachers who are teaching computer science or aspire to teach computer science but want to come to computer science through a lens that brings in the complex, social, and political world into those conversations and not strictly thinking about technology in purely neutral terms that are divorced from society. And so that’s what we’re trying to do with the book is prepare educators for thinking about computer science in those terms and help them learn how to teach in those terms. Because that’s often more than just helping people pick up some control flow construct in a language. It’s often helping them understand what about control flow sometimes leads to harm in society or sometimes empowers people.

Kristin[03:25] Yeah. I think this book for me was a very interesting read and much more contextualizing the history of computing and the importance actually of understanding the context that computing came from that really shows that it isn’t neutral. It didn’t come from a neutral place. And then, in many ways, by definition, it is not neutral, despite how much we want it to be neutral.

Amy[03:57] Yeah. I think that’s a really central theme of the book, and it’s one of the major reasons why we wrote it. So, I mean, I think if you look at the landscape of books about CS pedagogy, there are just some great books out there to support teachers in practical ways. Like, I really love Shuchi Grover’s A to Z Handbook that just shows this wonderful diversity of teaching methods, and it’s just super practical and helping teachers just get started with things. And then there’s others like Yasmin Kafai’s Connected Code that does a great job showing the power of combining learners with communities. And so, like, these are all really super positive and constructive views of what it means to teach CS, but also really positive and constructive views of computer science itself.

Amy[04:41] And so we just felt like there was this missing narrative around, well, CS isn’t always good. I love computer science. I love algorithms. I love data structures. These things are fun to me. But I also recognize that they aren’t always things that help people. Sometimes they help some people while simultaneously harming other people. Sometimes they just do unilateral harm, and they’re being deployed in ways that are kind of destructive in society. And so there has to be room for that conversation as well, right alongside the wonderful world of creativity and making an expression that’s also an important part of teaching CS. And so it’s that kind of question about what room is there for conversations about critical perspectives, alongside those more utopian perspectives, of CS. There wasn’t a book that talked about those two things in combination, and we needed there to be a book in the way that we wanted to prepare teachers.

Kristin[05:37] Do you have like a nice concrete example of how this book is different than the classic, “How to teach computer science” programming book? That is like a nice example to kind of hold on to.

Amy[05:53] Yeah. So let’s take an example of teaching if statements. So many books do a great job of saying like, all right, it’s time to bring conditionality into your scratch animation, or it’s time to talk about switch statements in a Java CSA class, whatever the context is. The really straight, neutral way of teaching those ideas is to really talk about kind of purely the semantics of a programing language and how it executes those different control flow constructs. I’ve done a lot of research that talks about that in neutral ways too, and it’s a hard thing to learn, even in just a neutral way. What we’re arguing in the book and what we’re trying to provide examples of in the book is how to do that teaching about those technical ideas in a way that doesn’t erase their role in society, in a way that actually centers their role in society.

Amy[06:42] So here’s a concrete example. We talk a lot in the book, especially in the chapter on conditionals, for example, about who decides and what it means to have a computer be the one making a decision versus the human making a decision about some process in the world and how those decisions are different.

Amy[07:02] So, an example would be a conditional statement, in most programming languages, is fundamentally a binary decision, something some expression that eventually evaluates to true or to false. And those are the two options. And we can kind of create illusions of more complex behavior out of elaborate networks of true and false and Boolean logic. Right? But ultimately, it all boils down to true statements. And that’s a kind of reasoning that computers know how to do. There’s a different kind of reasoning that human beings know how to do. Right? I use the example in one chapter of some software systems that were used to decide eligibility for some social services, extra food money, for example, and food stamps and food insecurity programs. Is the decision about whether somebody is eligible for food stamps purely a binary one? Right? And we know it’s not in law. In law, it’s not a binary choice. There’s a lot of subjectivity in the language used around eligibility for these systems. We know that it’s not in human contexts. Right. If some human being was making that judgment and saying, is this person eligible, they might account for things like, well, the application came in a day late, but there was some confusion about what day it was because of some time zone difference. So I’m just going to let this person be eligible.

Amy[08:20] That nuance that’s really hard to express with Boolean logic. Maybe not impossible. You might even argue in some cases impossible to express some of that nuance. And so we have to have conversations when we talk about Boolean logic and conditional statements about what are the limits of expression and reasoning about decisions? And how are the decisions that human beings make overcoming some of those limits? And how are human beings’ decisions limited too? That’s a kind of critical perspective on a really core idea in computation and programming that often doesn’t show up when we talk about conditionals.

Kristin[09:01] I really like that explanation. Like, at first, to be honest, I wasn’t quite sure where you were going, but then when you got to the end, I was like, oh, you’re right. Some things do require a lot of other context than that, though it does remind me of one example in the book, in the pedagogy chapter, about, the, how ints can be used to oppress. Such as how it can represent like a someone’s credit score, which is calculated and controlled by like a faceless list corporation and with very little transparency and all of that. And I think I had a moment of, like, but that’s just an int like it felt like picking on the poor int data type without necessarily a good reason. Um, and it felt like blaming the tool.

Amy[09:54] The beleaguered int. The poor beleaguered integer. The int is being oppressed.

Kristin[10:01] Yes. In some ways, that’s how it felt. When I read that section, I was like, you’re like blaming the tool rather than the user of the tool. And I like, in some ways, I get it, but I would guess that some people, other people who read that, would also feel that way and go like, oh, this is just, you’re blaming the tool rather than the user. So what are your thoughts on that?

Amy[10:19] Yeah. Yeah. Well, in the spirit of the book, which does not shy from challenging political conversations about computing, let’s use a third-rail metaphor for this, let’s just use guns.

Kristin[10:30] Okay.

Amy[10:31] Okay. So imagine a setting, right, with guns where it’s like, okay, to participate in a social context and to create with something, you must use this weapon. There is no other choice. And it comes with all of the tradeoffs of this weapon. Right. You really get a choice about it. This is true of integers, too, right? Like, you don’t get a choice about whether or not to represent numbers this way. This is how numbers are represented in mathematics. This is how computers are built to use them. If you decided that you wanted to represent numbers in some different way, that allowed for more nuance, let’s say you wanted to have some inequality that said that if something is greater than five, then it’s true, but there’s some other exceptional behavior around like when numbers don’t represent things adequately, we can represent them with some text string. Right. Imagine the other ways of talking about numbers and numerical decision-making that we could have, but we don’t have because they’re built into a language.

Kristin[11:29] Yeah. As a data scientist, this makes me think like oh, yeah, that sounds like confidence intervals to me.

Amy[11:36] Maybe it is conference intervals. What would a programing language look like that was built upon an idea of uncertainty around numbers? Right. Or even other kinds of uncertainty that aren’t encoded in statistics. Like, there are many cases in which a boolean value is a great way of representing, let’s say, gender. And then you consider the vast diversity of gender in the world. And you’re like, oh, well, it’s just, you know, completely wrong for, let’s say, 2% of human beings on the planet. If you take a statistical mindset to representing numbers in that way, you’re like, oh, well, that’s just 2% error. If you take a mathematical mindset, you’re like, well, it’s still just a truth value. I mean, it’s, you know, there’s nothing inherently wrong with true or false. But if you take a social perspective on it or a political perspective, of course, there’s something wrong with that. It does not capture the reality of diversity in the world. And so, you know, it’s not that I’m picking on integers per se. It’s what I’m picking on is that there is no way to not use integers in computing. And so it is inevitable that your applications of them will inherit all of their limitations. As neutral as those as limitations might be mathematically. It is guaranteed that when you reason about the world with computation, you’re going to inherit all of the limitations of Boolean values, of integer values, of floating point values, and so on. So what does that mean? It means we have to choose consciously whether to use this representation that might come with these tradeoffs and sometimes decide not to use it because it has those tradeoffs.

Kristin[13:08] I love this explanation so much because it makes me really point out just how many assumptions there are in choosing an int. It reminds me, like this morning, I was trying to read your book, but I kept having moments of like being distracted by other thoughts that your book was reminding me of, such as how Western culture bakes in the idea of first and last names. And I was just thinking about, like, why, like Western culture has you have a first and last name, and we always seem to collect them in separate boxes. Like, why is that? And then I went off on this tangent trying to figure it out, and I’m like, no, wait, I’m supposed to be reading the book, like.

Amy[13:46] No, that’s exactly what we intended with this book. I mean, I think when we wrote it, our primary use case here was for pre-service teachers in an extended learning context and really preparing to be CS educators, aspiring to be in those classrooms, but having space to really ponder some of these bigger questions about computing. And so, you know, there’s a tension here. Like, we could have written the book in a highly practical way. That was for in-service teachers that just need some quick thing to do in the classroom. But what we really wanted to do justice to some of these ideas was a space to slow down and really reflect on and contemplate some of these things, because there aren’t easy answers about how to change CS education in critical ways. That requires probably all of us to sit down and think about what are the assumptions that are built into our teaching? What are the assumptions that are built into computer science itself and its ideas? What does it mean to root those out, or at least make space for other narratives about CS alongside the dominant ones that we already have in the classroom? So if your experience of reading it was I’m overwhelmed, and I’m thinking about other things, and I don’t know what to think anymore, then I think it’s doing its job.

Kristin[15:02] So, in some ways, reading this book is definitely going to be more effort than just reading the book.

Amy[15:08] I think so, yeah. We just finished our first cohort of secondary pre-service students in our new master’s in teaching for computer science at the College of Education here. And I would say most of their experiences around reading it were some of them said things like, I needed to stop reading this chapter for a while and like go ponder some other things before I could finish it. Some read the conclusion after the end of it and said, like, I feel an immense weight now on what it means to teach computer science. And I’m actually not sure if I feel ready to do it. And then others reacted in the opposite way, saying, like, these are conversations we need to bring to kids because this is happening in their everyday lives, and it’s just not present in the CS classes that I teach right now. It’s like we’re pretending the world doesn’t exist when we teach it.

Kristin[16:02] Yeah. So for those that do react more in the like, this feels really heavy, I’m not sure I want to do this, or I need a break. Like, what would you say to them?

Amy[16:16] I would say that any work that involves understanding the really complex social dynamics of our world requires breaks. It requires some time. It requires conversation and communication, and reflection. In fact, I think sort of an inherited thesis of the book. We borrow a lot from the ideas of Paulo Freire. He was a Portuguese education scholar. He talked about what learning is from the perspective of critical consciousness. And his argument was that to really understand the world in critical ways and be conscious of its broader systems and structures and the kinds of systems of oppression that are woven through it, the only way to really understand that in a situated way, in your own world is through dialog, through conversation. And so that reaction of reading some of these chapters, let’s say you’re reading it alone, of needing time to reflect. Like, the next step for that is go have a conversation with somebody about it. Understand how those ideas play out in their world and understand how they play out in your world. Try to build that critical consciousness over time. And I think that’s the that’s sort of the challenge of this book, is that it’s trying to do that for teachers, trying to help build their critical consciousness while simultaneously also building a capacity in them to help grow the critical consciousness of their students. And so you’ll see that throughout the rest of the book after those introductory chapters is it plays that dual role of building critical consciousness for teachers through talking about computer science through a critical lens and then presenting teaching methods and unit sketches and tensions around pedagogical choices that try to promote that in students as well and then raises some of the challenges of doing that in the classroom. Right. How do you talk about race and technology in a ninth-grade classroom, for example?

Kristin[18:13] Yeah. So for using this book for your teaching, how, how was that experience overall?

Amy[18:20] Oh, yes. So this is kind of a meta question, right? I was a teacher of teachers who are aspiring to teach students. Using teaching methods that often involve students teaching other students. So, there’s many layers of teaching, here.

Kristin[18:36] Yes.

Amy[18:37] I’ll just say, like, my experience of teaching teachers is just always wonderful. They are my favorite students because they’re just curious, motivated, usually quite student-centered, very practical. But, you know, also just wanting to just pick up all of the different perspectives in the world and carry them through into their classrooms. So it was a lot of fun to work with teachers and take this critical lens through a tour of computer science, right? The book goes through operating systems and programming languages and programming skills and software engineering, and all of these different topics: artificial intelligence and machine learning. And each one is like this surprising view on these ideas in CS that most of the teacher candidates had never, never really thought through before. But what was so beautiful is the way that they saw these perspectives. They pondered them for a bit. But they immediately picked them up and figured out what would it mean to bring this into conversation with students in the classroom? So a lot of what we were doing in our pre-service course was having teachers use these chapters to prepare teaching methods that might be appropriate for what was happening in their field placements. Or in the case of the in-service teachers in our program in their current classrooms. And the level of creativity was just astounding. They came up with just fascinating ways of trying to pull students into these conversations, but also center students’ identities and questions and curiosities about the world in relation to CS that I just haven’t seen in a more conventional kind of, let’s say AP CS A Java course where it’s like today we grind on method signatures. Right. The teachers are picking up on method signatures in ways that were like talking about encapsulation in fascinating sociopolitical terms that I hadn’t even thought of. So it was a lot of fun and a lot of surprises, and I’m super excited to see where they take it as they start teaching in this next year.

Kristin[20:44] One of the other things that is addressed early on in the book is that there are tradeoffs between talking about this stuff versus teaching how to program. Could you articulate the argument around kind of the necessity of adding and maybe some of the acknowledgment that there are tradeoffs? Because that’s, I think, one of the first things a lot of people who are maybe are listening to this podcast might, if they’re considering reading the book, that’s one of the things that they will also be thinking about.

Amy[21:19] Yeah. Yeah. This is one of the reasons why we really start the book, especially in that second chapter on pedagogy with a pretty extended conversation about why to teach CS. What is it for? Why do we bring this to students? And there are so many different learning contexts that have different reasons. And in higher education, we often have a pretty implicit but strong rationale for teaching CS, which is our students are here to graduate and become software engineers. Right. That’s often the framing.

Amy[21:51] But even that is not always true. Right? A good number of students might be there because some other major is requiring it or because they wanted to pick up some skills and apply them in some other career pathway. Or because they wanted some literacy about computer science or some gen-ed requirement, threw it on as some, let’s say, quantitative reasoning, general education literacy thing. There’s so many reasons in higher ed. That even gets larger in scope, I think, in secondary education. So in middle school and high school, why would anybody learn CS? And so we really tried to take as broad a scope as possible about the reasons for teaching CS. And include not only CS elective classes in middle school and high school but also integration in other subject areas. Art teachers teaching about computing, humanities teachers, social studies, teachers, math and science. Of course, all of those settings have completely different reasons for engaging CS than a standalone CS course might.

Amy[22:52] And so the reason that we sort of gave primacy in this book was fundamentally one of a kind of civic literacy. We believe, and I think this is true in a broader social science sense. If you look at all of the wonderful writings in the broader fields of academia about computing, that there is a kind of universal literacy needed in understanding the strengths and weaknesses of computing, in the same way, that we try to help people understand, like why technologies of other kinds are good and bad, right? We might talk in a physics class, for example, about, yeah, you know, using nuclear engineering sometimes can help bring clean energy to the masses, and it can also destroy countries. And that’s something to think about carefully as we try to deploy some of those ideas. Same thing for computing, too, and yet most people are not in a position of having to make choices about nuclear engineering.

Amy[23:46] Everybody makes choices daily about how to deploy computing into their life and other people’s lives. So it just feels like such an urgent kind of literacy. So that’s a long way of saying that programming is fun and great, and maybe that’s a really key thing for some learning contexts, but I don’t know that I believe, and certainly my coauthors, I don’t think, take the stance either that that’s the most important reason to teach CS. I think the most universal reason really comes down to that kind of universal literacy about what computing is, what it can do, what it can’t do, what it fixes, what it breaks. That kind of knowledge, I think, should take center stage. And so you’ll see throughout the book that we try to situate programming inside of that motivation. It’s not about learning to program, to have a skill so you can go get a job, but rather it’s learning about that literacy through the lens of making. And through making, you’ll see what those tradeoffs are.

Kristin[24:45] Yeah, I remember that early on in my career, I actually read the Cambridge Handbook for Computing Education Research. And there was a chapter talking about like the, I think, it was the four common motivations for teaching computer science or something like that.

Amy[25:02] Yes, I did not write that one. But yes, that’s a great chapter.

Kristin[25:05] And so this book kind of also talks about those various reasons that motivate teaching computer science. And it’s, for me, it was really reading that section of the handbook and then reading it again in this book. It’s so funny to me in some ways, but at the same time doesn’t surprise me, given the United States culture of capitalism, that the motivation that people often use is this idea of creating jobs and job preparation and all of that kind of thing. But when you actually talk to most computer science teachers, that’s not the argument they use with each other of why they’re teaching computer science. And this book helps articulate that in a lot more ways, I think, than like the original handbook had described. And I really appreciate that, and I’m not sure where I’m going with this now.

Amy[26:10] Well, I’ll pick up on one thing about that, and that’s just going back to, like whose motivations matter here, right? If you really want to be student-centered and culturally responsive in your teaching, why do students want to learn CS? And I think that has to be a central question. I mean, going back to the story I gave at the very beginning, why did I want to learn CS? It had nothing to do with jobs. It had nothing to do with some marketable skill. It didn’t even have to do with the beauty of computing, which, you know, I learned over time was beautiful, but that was not the initial reason that really captured me. It was because I had this cool screen of a grid of 240 pixels wide by 180, and I can make pictures on it. And when I wrote the right instructions, those pictures could entertain my friends and be like a fun way of expressing my interests and my identity. And that was the motivation and the rationale for me learning all the way up until my first higher education CS class. And when I got to that first higher ed science class, my CS1 Intro to Java course. None of that was there. It was like that whole world didn’t exist, like the instructor, the portrayal of the world was, well, this matters because it matters, and there’s no other reason for it. Java is what it is, and you shall know it. And that’s it.

Amy[27:36] And that whole view of thinking about, like, what do we teach? Why do we teach it? All of it. It so centers our institutions. Our departments. Our faculty. And you can see parallels of that in K-12 as well. When teachers talk about not wanting to be looking like they don’t know what they’re doing when they’re teaching CS to students who might know more than them. For example, when we center our needs when we’re teaching, when we center our institutions when we’re teaching, ultimately, students lose. And that’s, I think, a key idea in the book as well, that we borrow from culturally responsive pedagogy, from rightful presences, all of these visions of what education is for. We start from that premise that it’s for students, and we don’t get to decide why they’re there, why they’re motivated, why they’re not motivated. And so it’s sort of a radical idea to say that computer science doesn’t get to be what we say it is. It gets to be what students need it to be for, for whatever reasons they’re in school. Whether that reason is getting a job, which is a totally legitimate reason. Right. Finding financial security. When I went to college, that was my prime motivation, too, right. I grew up in near poverty and really wanted to CS as a way of getting out of it. I moved past the animation goals, and I was more into, like, I want food and an apartment.

Amy[29:04] But there’s other motivations that we have to make space for, too. Right. Students that come in, and they CS as a center of power and a path to justice in the world. There has to be room for that notion of CS. Students who come in and say, you know what, I see this as like the most fascinating artistic medium that humanity has ever invented, and I want to push that medium forward. Just like in the history of art, everybody has done through technology. There has to be room for that one, too. And so the big challenge for teachers in middle school, in high school, but I would argue even in higher education, is what does it mean to teach in ways that really are radically centered on each individual student’s vision of why CS might matter to them?

Kristin[29:49] So if you had someone who already is teaching a CS1 that is very focused on just teaching the students how to program in that particular course’s language, how would you help that person get started in shifting the focus away from just let’s learn how to program in Python?

Amy[30:12] Yeah. Yeah. I think the leap of faith, even a small leap of faith, is deciding to give students agency, some amount of agency in the class. That agency might come in the form of maybe a co-constructed rubric where students have a voice in how they’re evaluated. Maybe some agency in what they make, where it’s not about some hard set of constraints about what they’re building, but a little bit of voice for them to say, well, I’m going to make something that’s interesting to me. And the teacher’s job is to respond to that and figure out what resources and ideas, and skills they need to get there. Another kind of agency is kind of pedagogical agency. So using active learning methods that really allow students to be the drivers of how their learning is proceeding and what resources they need gives them a platform for saying like, here’s where I’m trying to go, even if that’s the goal that the teachers decided for me but here’s what I need. As opposed to something that’s often centered in direct instruction and following some kind of regimented pipeline of of learning. So I would say pick any of those different places where you might make a little bit of room for student needs and figure out what those student needs are. Figure out who’s in your classroom. Figure out what motivates them. And very quickly in doing that, you’ll realize there’s a big diversity of motivations, big diversity of interests, one that’s, you know, challenging to cover in any particular class. But that when you untapped that right, when you open that up, it transforms your classroom because it just makes space for students as their full human selves as opposed to just the narrow slice of them that fits within a particular notion of what CS is.

Amy[32:03] If it sounds scary, it is. Having done it many times, it’s giving up that control is scary.

Kristin[32:10] Well, in some ways, it’s scary, but in some ways, for me, like, a lot of it resonates because I’m trying to figure out how to do some of that already in my courses. I think the thing that I’m wondering that I feel like I didn’t quite hear, but maybe I missed it was the discussion around the way computing influences our society in a negative way. Like giving students agency for the like within like their rubric or letting them be a little more creative in an assignment, that kind of thing, that makes complete sense to me, but it doesn’t seem to necessarily get all the way there. So like, for example, in my CS1, at some point, I find a reason to tell all the students, pull up Google images, and Google “grandma.” And now I want you to look at that and tell me, do you see your grandma there? And that’s my way of kind of showing them that the algorithm doesn’t necessarily properly represent diversity. But then the question becomes, what should it have shown you, given the context and the dataset it had and all of that? And that’s kind of one of my like, for me, it’s a very brief, I don’t have I don’t spend a lot of time on it. But it’s me partially nitpicking the fact that, like, when I Google “grandma” in front of everyone on the projector, it’s like, oh, white grandmas, I do have a white grandma and then one, so maybe you have to scroll down two-page fulls, and there’s my other grandma.

Amy[33:40] Yeah. And there’s a counterintuitive way in which making space for student agencies. Student identity does lead to those conversations. And it’s because that’s what’s on students’ minds often. So an example of this is two of my Ph.D. students, Jayne Everson and Megumi Kivuva, starting as a Ph.D. student this this fall last summer, they taught a high school class, a summer course, and they started off with a high degree of student agency. Students had a lot of control over what assessments were happening, what assignments were happening, they were co-constructed with everything. And as that unfolded over the course of that class, students started bringing their questions about justice into those conversations about what they were making. You know, some of them, because of what was on their mind, because, let’s say, race was on their mind, and they were maybe were experiencing some kind of racial oppression in school. That’s the kind of thing that they decided to make. They decided to make things with computing that were social critiques of computing, for example. And there were certainly the students that were, like, I want to make weird fart animations. And there were students that said, I want to make things that are, you know, about demonstrating my marketable skills in this neoliberal economy. And so it’s not necessarily the case that it’s a top-down, I am going to tell you why algorithms are biased in every case, but rather saying, we’re going to make room for you here and what you want to express. And remember that there’s a whole range of things you can talk about, everything from why computing is beautiful and wonderful to why it’s destroying your local community. Whatever you want to talk about, whatever you want to make in response to all of those things, it’s fair game. And you’re going to see variation and privilege reflected in that, too right. Some of the wealthier white kids in a district are probably just going to be making the fart jokes, and other kids that might be facing daily oppression in their schools or even in their families, that might be top of mind. And computing has to be a place where people can explore all of those ideas, I think.

Kristin[35:49] Yeah. I like that. I want to be careful of time. So how about, is there any question I did not ask that you wish I had asked?

Amy[36:03] Yeah, there’s a lot of other stuff in the book. And one thing we haven’t talked about is about the unit sketches that are in the book. We can talk about those, about what they are, what their goal is. All of that stuff.

Kristin[36:15] Yeah. Especially for us higher ed, folks. Like, what’s a unit’s sketch?

Amy[36:19] Yeah. What’s a unit sketch? Well, the unit is a pretty well-defined thing in a lot of higher ed curriculum. Right. It’s we often use the word module in higher ed, right. It’s some period of instruction that has some well-defined scope and maybe some clear learning objectives attached to it. You don’t see the phrase unit sketch very often, but we chose that word pretty intentionally in the book. We could have provided really finished unit definitions in the book, like, here’s exactly how to teach this thing. Here’s a curriculum for you to use. We didn’t do that, though, because that would have been counter, I think, to a lot of the core principles of culturally responsive pedagogy.

Amy[36:59] It depends on who’s in the room, right? Who are your students? What’s happening in their lives? What’s happening in their communities? It has to be the case that curriculum responds to those things. And so we aimed for something that was more of a kind of a backbone, an outline of the arc of an activity that you might do, how it might start, how it might end, the milestones you might hit in it, the different kinds of teaching methods you might deploy to talk about, let’s say, data structures and identity. But that teachers in different contexts might come to that unit sketch example, and five different teachers in really different contexts would come up with five very different units from that sketch. Ones that are longer or shorter, ones that have more or less programming, ones that make more or less room for critical conversations. And that’s necessary, right? Because it really depends on who’s in your classroom. Deciding what the right thing to do is.

Amy[37:59] So the big disclaimer on all of these is that we haven’t tried most of these units. Right. We’ve done some of them last summer in this study that I mentioned with Jane and Megumi. We’re trying them this summer in another high school class. We taught it with our pre-service teachers, and they kind of channeled some of those sketches and some of the examples that they created for practicing in their methods course. But I think we’re hoping that a lot of people see these, are inspired by them to create some concrete thing that they want to try in their own classroom, and then they tell us how it goes. And that’s part of this book is it’s really designed as a living document. And so as we learn about how to do this in research, in practice, we want to roll that back into the chapters and really bring that learning into it so that other people can come back to these chapters and see deeper expertise as we get it as a community.

Kristin[38:51] Yeah, that that reminds me of I don’t think we quite mentioned that this book is completely free, and it’s online, and it’s all on GitHub as well. So you can file an issue or something if you want to provide feedback of any kind. I actually, I found a typo and so I filed an issue this morning.

Amy[39:11] Yes. Yay, we love typos. Yes, it is. And that and that is by design, right? Like, first of all, no teachers should be paying for any books. So, like, free, free book online. The other part that we’ve learned is just that people read in so many different contexts, now. I fully respect those that need a print edition of it, and we’re trying to find ways of making that possible, even though it has this trade-off of it can’t change after it’s printed. But so many people are also reading on smartphones, they’re reading on tablets, and just being able to load up a web page and just skim through a chapter is just a different experience.

Kristin[39:48] All right. Time for TL; DL. Too long. Didn’t listen. What would you say is the most important thing you would want our listeners to get out of our conversation?

Amy[39:57] Yeah, I think it’s a pretty simple idea. CS is not neutral. It’s just one way of seeing the world that has great strengths and great weaknesses, as with all technologies. And we have to understand these trade-offs to be able to deploy CS in ways that are just, and sometimes that includes not using computing at all for some tasks. So our view is that teachers have to understand this idea so that everybody can understand this idea. And that’s the essence of the book and the idea.

Kristin[40:26] Yeah. And also, I think the book is more than just for middle school and high school teachers because I’m getting a lot out of it, and it’s helping me think through how to improve my teaching. It’s for everyone.

Amy[40:37] Yes, we have them in mind. And really, we had sixth-grade teachers in mind. Like if we can make it work for sixth-grade teachers, we can make it work for anybody. But that’s the kind of core person we were writing to. But if you find it useful as an electives CS teacher in higher ed, great. Go for it.

Kristin[40:58] Yeah. All right. Well, so thank you so much for joining us, Amy.

Amy[41:03] Yeah, it was a great conversation. Thank you so much, Kristin.

Kristin[41:06] And this was the CSEd podcast hosted by me, Kristin Stephens-Martinez, and produced by Amarachi Anakaraonye. And remember, teaching computer science is more than just knowing computer science. And I hope you have something useful for your teaching today.


Be sure to follow us on Twitter and Facebook, and subscribe on Apple Podcasts, Spotify, Amazon Music, or wherever you get your podcasts.