So this time we're going to integrate pedagogy issues along with issues of equity in computer science. And in particular we're going to talk about culturally relevant teaching. Now maybe you've heard about culturally relevant, teaching before culturally responsive teaching, culturally responsive pedagogy. There a variety of terms around this, and I know that a lot of schools are taking this pretty seriously, and really looking at engaging and modifying the ways that they do things around this. And I don't have within the context of this course, or even really actually the expertise to go deep, deep, deep into a general introduction to the topic. But I will say that this book above I have really liked as a personal use, I'm kind of really into cognitive science and the brain. And so I really liked sort of understanding Culturally Responsive Teaching, from the impact of each of these students as human beings. And that we're all human beings and then there's ways our brain responds similarly no matter what. And how students experiences in a non culturally responsive setting, really can be described also as by how their impact is happening on their brain. So what are we going to do in this video? We are going to laser in, if you will, on not generally culturally responsive teaching, or culturally relevant teaching, but the computer science class room. And what do we know from studies of the computer science class room and student's experience in it and then also from my years of teaching computer science that is relevant to responsive teaching. So let's get started, one of the things that's really important in culturally responsive teaching is to start by recognizing your own cultural background and beliefs. And in this case, let's talk about sort of in common computer science classes, certainly ones I've been in, and maybe even ones that I have led. But one of the common cultural beliefs about computing and computer science classrooms that may be impacting your students. So one of the first ones I'm going to talk about is students believe that if they can do their assignments fast, then that must mean they're good at computing, and we must reinforce this. So here are some quotes from students actually at a university about their experience in a beginning programming course. So you can kind of hear, right, their angst here, it's like, I take longer than most people, maybe I'm not good at it, or it takes me forever and I finally do it. This generally leads their belief that maybe they're not right for programming, or maybe it's not something they're good at. Here's one more. Right, so they're really using this idea of the amount of time it takes them to complete assignments as some sort of indicator about whether or not they're going to be good at it. But as we know sometimes spending a lot of time debugging or going deep into a program actually gives you more experience that's good for you. So you should work to actively combat this perception that students are going to think, even if you don't tell them anything. They're likely going to think that the faster they can get a program done, or the kid who goes, I got it done first, that that means something. And so one of the ways you can do this is not have a single say, programming assignment activity. You could have levels, like, get done with this, and that's the first level is what you really want everybody to get done with. But then once you're done with this, you can move on to do this, and move on and make different modifications to the code. That way there's not so much clear obviousness in the classroom about when somebody gets done before others. You can get it completed but you need to have experienced at least x bugs by the time you're doing it. If not, you need to keep playing around with the code and find bugs, and maybe even write something up about them. Also pair programming is a great way to sort of keep everybody much more on more of an even level, not exactly even but fairly close. Here's another cultural experience or expectation many students have in the classroom. Yeah, that computer programming is an individual thing that old white guys do in the basement right, and it's all individual work and you shouldn't ask questions, you're just supposed to figure it out for yourself. Yeah, these are not necessarily really relevant to today's world, we have networks, and moreover they're not going to lead to the kind of skill development that we want. So ways you can actively combat these issues is not just have coding be an individual project where you just do it, and then once it's done it's done, but require code presentations. This is actually something that's done in industry called code reviews, okay? But it's literally standing up and presenting your codes, maybe walking through showing off the different parts of it, or even making PowerPoint presentations and describing what it does. Pair programming is another way to really actively combat this as well. Finally a lot of the ways that we used to teach programming especially before we had block-based languages, is we would have these canonical beginning programming assignments. One of them, and the funny thing is that what's true about all of them, they had one exact answer. So here you have to write a program, but really, everybody needs to write the exact same program, and in a way, it's kind of very weird. So one of the most common ones is print out the first n Fibonacci numbers, okay? So here's a table of Fibonacci numbers, and students are like, Fibonacci numbers, this isn't math, what are they even good for? Well, they're actually kind of cool, but the program itself, you'd spend hours and hours on it, and then it'd just spit out this list of numbers. It wasn't very rewarding, right? Another one that we used to always have to teach if statements is a change making program. So back when vending machines took real cash, which you gotta realize is becoming less and less common these days, how would you calculate out how many quarters, dimes, nickels, etc. And so again, students would work forever on something that was really maybe had a lot of things that they had to get right. And they were struggling with the syntax etc., for a program that they didn't think was actually all that interesting. So one of the best ways, one of the key tenants of culturally responsive teaching sort of speaks directly to that, and that is trying to align your lessons with collectivist culture values. So a lot of times cultures that are not the majority culture, white male culture in our room. White male culture tends to value individualist behaviors and individuals winning, or doing, or whatever. And other cultures are more collectivist in nature, it's about the family, it's about helping everything. And as we've seen with block-based programming especially, we can really, really do this quite easily. It's quite easy to have students, not make programs that are about making change, but that tell stories, or music, or dance, or something like that. Also, really great to have students experience not just the programming, but sort of the software design process by doing community projects. Maybe they need to analyze how a grandparent interacts with an app on a phone to see in what ways it doesn't work for them. Or maybe they want to create a program that is going to allow people to enter information about, I don't know, broken windows in the neighborhood. Or whatever it is they're interested in in their community, can they write a program that would either help analyze that data or it may be a public announcement for younger kids. Unplugged activities are also great because they show sort of real world uses of these things. It might be meaningful if you've seen about how this could be used in your community, and it's great to have things that kids can share withe their friends, family. And show their parents, or their grandparents, or their aunts and uncles, what is computer science, what am I doing in this? Because, as much as our students have these values and perceptions about computers, their parents do too. Another important thing to do in culturally responsive teaching is to identify possible sources of deficit thinking. And I'm sure deficit thinking is something that you've been trained in and trying to avoid all this time, but in computer science, it's sad to say. I could even tell you there's papers in computer science education research saying that university faculty computer science professors show evidence of thinking that there's a geek gene, and like some kids can do it, some kids can't. Are we scientists or what, but anyway, especially in computer science you're going to have courses with students with a lot of mixed prior experience. So some kids are going to look like wow, they really get this but it's really they've had a lot of prior experience. Maybe they went to a summer camp, maybe they had a class previously, maybe whatever. Maybe they have adult computing connections, they know if not their parents but other adults that are in the software field. And they already look up to them and they say, this might be something that would be good for me. Versus people with no adult computing connections can be like, I don't know anybody that does that so there's no way that that could possibly be for me. And even just having a computer at home is going to give, if kids have it they're going to have so much more experience even just physically manipulating the computer, just feeling comfortable with it as well. Finally, I think one of the coolest things about teaching computer science is there's so much opportunity in the computer lab setting to engage in what is called trust generating, okay. So this is the fact that look students are not going to be able to do their best learning unless they trust you, and trust that you want the best for them. And some of our students are going to have come into our classes with having experienced classes where their teacher didn't really trust them, so we have to earn their trust. A really great one in computer science, it's super easy to do, is this idea of selective vulnerability. You want to share a time, because you've been learning to program, right, a time when you struggled with bugs, you're like, you know what, I did too, it's okay. I can still struggle with bugs and be the computer science teacher, and so sharing that you've struggled and you've worked through it and you can get better, that gives students a signal that they can too. Another great one, again, back to this idea of the creative aspect of block-based programming, is share your own interests. Are you interested in knitting, go, just, you don't have to write your own program, who has time to do that? I mean it would be fun but go on to Scratch.MIT.edu and search on the term that you have and you'll probably find a program out there that does that. So we have knitting cat here is one, above me we have How Movie Trailers are Really Made, maybe you're into movie making, or art or graphics or things like that. Or any kind of game that you like, I guarantee you, there's a simulation of that game or a game like that in Scratch. But most importantly let students take the reigns, you'll see this in the K-12 CS framework and in the CSTA standard. There's a huge emphasis on students being able to create their own projects, the programs of their own design. Things that are personally meaningful to them, and that's really important as part of culturally responsive teaching. And, also just embrace the newness of CS. One of the best things that you probably have is, well let's just say compared to math, suppose you have a sixth grader or an eighth grader. Probably by the time they get to sixth or eighth grade, they have of some internal feeling like I'm either, maybe I just can't do math, math isn't for me. If you're teaching the first computer science course that they're ever in, yeah maybe they feel like there are other kids who know it better. But it's new and you can be like no this is what we do in computer science, we talk about our code, we pair program. We create things that are culturally meaningful for us or programs that we want to share with our families. So go ahead and let that newness of computer science as a class or a discipline for your students, let students do great things that they're happy to share.