I think our issue isn’t should we, but how should we. There are some important points raised in this post and in Mark Guzdial’s recent post along the same lines. First, coding/programming/CS courses are primarily being introduced in high income, predominantly white schools. More needs to be done to incorporate it in other kinds of schools, so that it doesn’t continue to be something “white guys” do (see the recent diversity stats from Google). In the article linked above, Larry Cuban suggests as much, and Guzdial addresses this as well. We all agree this is a problem. Now we need to address it.
Second, we need scaffolding and transfer. Mark points to some good research about whether the problem-solving skills that are at the heart of some of these initiatives will transfer to CS or to other disciplines. Unlike Math and Reading, there isn’t much out there yet on best practices for teaching CS concepts to younger kids. There’s research on undergrads and to some extent high school, but not much for the K-5 crowd. Again, Cuban and Guzdial agree that there’s no research proving that transfer occurs. So we need to work on this as well.
Third, I think we need to connect some dots here. And separate some. While I think there are ways we can teach CS in the younger grades in a way that is effective and that teaches some real skills, I’m almost more interested in the mere exposure. Perhaps because I work with all girls, I want to give girls the opportunities to explore computing and engineering that they might not take on their own. Society still pushes girls toward non-stem extracurricular activities. Boys still tend to pick up things like coding on their own for fun while girls won’t think of it unless they’ve seen it. So I’m connecting the dots between the lack of diversity in CS and introducing it early through school. Teaching the skills and giving opportunities are somewhat separate goals, and for me, the latter takes slightly more precedence, but they kind of go hand in hand.
Let me address Larry Cuban’s “true believers” and Logo example. I never learned Logo in school, but I did learn BASIC and I think that was part of the same “reformation” that Cuban mentions. I was a student during the Logo phase of things so I can’t speak personally to what was going on for educators at that time, but I know my education history and theories. And I know that computers were expensive back then. My suspicion is that Logo died out because the equipment was expensive and then testing came into fashion and that’s where the money got shifted. By the time computers were affordable and on everyone’s desk, the idea of coding or computational thinking as a school subject had been all but forgotten. In fact, my small college got its first computer lab the year I graduated. It was a luxury to have a PC or Mac back then.
But just as not understanding your history means you are doomed to repeat it, not knowing how your computer works and how to harness its power for your own purposes means you are doomed to be at its mercy and not the other way around.
Cuban admits that these skills are needed, but thinks schools won’t teach them “right” (to simplify his argument). It’s true that school boards and districts, and administrators confuse CS with Photoshop and Microsoft Office and buy iPads on which coding is all but impossible (it’s at least limited). But that’s why there are organizations like the CSTA and Code.org and NCWIT and many others that try to educate people about what Computer Science is and to set standards for schools to follow. This can do a lot to make sure schools have some guidelines and understanding about what CS is and best practices for teaching it.
Cuban suggests that teachers aren’t invested in teaching CS. There are teachers, teachers with Computer Science degrees, who want to teach Computer Science in schools, but many schools won’t make room for it and the teachers are relegated to teaching Office applications or keyboarding at worst and at best, Photoshop or CAD drawing. (Or they end up teaching another subject, like Math or Physics) That’s why you can’t just randomly make someone a CS teacher. You need to hire for it. There needs to be certification for it. Most states don’t have that yet.
So, I understand the worry, that this whole movement will be a flash in the pan, but I think there are some solid reasons to teach coding as early as elementary school. And I do think we need to address the issues raised by Cuban, Guzdial, and others. We need more research. We need standards (not testing, mind you), we need committed and professional teachers, and we need infiltration into diverse school populations. All of these can be addressed, and they shouldn’t be used as barriers to moving forward.