Teaching programming to those who don’t shoot: Give up on the shooters
I’ve been exchanging email lately with a CS teacher using media computation in Python with her 9th grade class this year. She has been pushing the boundaries of JES, trying to do more interactive programming. It’s hard to do with JES. Swing and Jython don’t get along all that well, particularly from within JES, a Swing application. I finally asked her: Why not just use media computation for what it’s good for? Play to its strengths: Make collages, sound collages, music, and videos. Interactivity is hard for early beginners. She had this response.
I need to develop an approach that appeals to all of the people who have traditionally signed up for programming classes (because they want to shoot things) along with the underrepresented groups who have not signed up for programming because they don’t want to shoot things.
It’s a great comment, and it’s a deep question. Does she? Does she need to serve both audiences? Do we need to teach, in every classroom, to engage every student?
This issue comes up when I talk to people about Threads. “We love your approach, but we have a small school. We can’t cover all those Threads. What should we do?” The answer is not “whatever we have been doing, pretty much decontextualized, which works for any problem” (which is what I normally hear). Go ahead and specialize. Teach to a context. Students (especially novices who don’t understand what computing is for) will learn more, and more deeply, than by teaching in a decontextualized way. Your students will be more marketable by knowing about computing + X, where X is some interesting applications context. Pick a context that draws the students that you want to encourage and engage.
At the post-secondary level, you don’t have to please everybody in every class in every school. Students have choices. Colleges should play to their strengths. Larger Universities can offer more options on the same campus. For smaller schools, build coalitions so students have choices between the schools.
But the question is harder for the high school teacher. Her students don’t have a choice. If she doesn’t engage them, they’re not going to get computer science somewhere else.
Here’s my answer, though I realize that it comes at some risk: Give up on the shooters. There’s a lot more of those who weren’t interested in computing traditionally, than those that were. Computer science in the last decades has drawn from only a small demographic. Play to the larger audience. Play to the audience with different interests than those most commonly in CS today. Teach to those who don’t shoot.