Teaching programming to those who don’t shoot: Give up on the shooters

September 30, 2011 at 9:23 am 10 comments

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.

Entry filed under: Uncategorized. Tags: , , .

The Economist letters on how to improve UK CS education Who’s measuring the part-time students?

10 Comments Add your own

  • 1. Alan Kay  |  September 30, 2011 at 10:08 am

    I feel an urge to approach this from several other directions.

    First, let’s pick a non-elective area (such as reading and writing) that is not a human built-in.

    — there are lots of entry points

    — it takes a lot of doing to get fluent

    — there are important thresholds that have to be reached

    This can work well with enough good teachers (for example, parents make up a better teacher-learner ratio than most schools).

    At this point in time, computing is mostly an elective — so perhaps music is a better analogy (although I grew up in an exception: a small town in Massachusetts where music learning was a non-elective, just like the three Rs).

    The above three points do apply. One difference is that for music your teacher will almost always be a musician who can play, and the parallel is rarely the case for computing, or most other subjects.

    A further point is that a good pedagogy can often trump the first point. This was true with the mandatory music learning I experienced. It was true for the incredible Betty Edwards “Learning to Draw” curriculum.

    An interesting wrinkle about most music learning is that it has very distinct kinds of situations and kinds of learning that are different from most standard subjects.

    — there is “making music”, which almost always has a group component — playing with others. For early keyboard players, there is “piano band” — delightful! — in which there are multiple keyboards in the room and many arrangements from classical to band to pop are available.

    — there is “taking a lesson”, which is almost always 1-1, and is devoted more to deep foundations of technique and expression than the “band” experience which is about in-the-moment fluencies.

    — there is “woodshedding” which is 15 or more hours a week working mostly alone to try to do all the things over and over that are needed to develop fluencies.

    I submit that this kind of scheme would be much better for many subjects …

    Good teachers here allow choice to as much of an extent as possible, but don’t allow the learners to find a comfort zone that is below threshold. This is a key point.

    Neil Postman wrote well about the newer dilemmas in teaching and learning.

    Getting learners started — who come from a “designer jeans” pop culture in which form generally dominates content and learning — is harder now. They have had years of training as consumers with buying power who are wooed by markets which try to find out what they *want* and supply it.

    One of the biggest problems is that many/most leaners don’t know enough about the world in general and subject matters in particular to make consumer kinds of choices that will really enrich them. Real education is much more about what learners *need* than what they *want*.

    A good educational environment finds ways to get learners to eventually want what they need. Da Capo: consider reading again.



  • 2. Bonnie MacKellar  |  September 30, 2011 at 10:55 am

    What is a “shooter” exactly? Are you referring to guys (well, usually guys) who love to play video games? We always get lots of them in our Intro to CS course because the high school advisors tell guys who like video games that they should major in CS. Most of them flunk out rapidly – just because you can shoot an alien doesnt; mean you can figure out loop statements.

    Or do you mean some other trait?

    • 3. Mark Guzdial  |  September 30, 2011 at 4:39 pm

      I’m assuming the “guys (well, usually guys)” definition, Bonnie, but I didn’t ask the teacher what she meant — it was her term.

  • 4. Alfred Thompson  |  September 30, 2011 at 12:21 pm

    One of the nice things about computer science is that students can have outside projects and learning. This is not completely unlike Alan Kay’s music class analogy at all. I think the answer for the shooters is to a) make the point that the concepts they are learning in the non shooting environment will help them with that as well and b) point them to outside learning opportunities where they can learn the “shooting” pieces. Moving from Java to something like XNA or event Windows Forms programming in C# with Visual Studio may provide such outlets. And the software is free through various programs like Express editions or Dreamspark.com for students. There are also curriculum materials that teachers can use even if only for students to learn from on their own or in small groups.
    My point is that we not ignore or abandon the shooters (or give up on them) but that we give them additional outlets for their interests. Because of their interest they are more likely to jump on outside learning opportunities which I think we want them to do.

  • 5. gasstationwithoutpumps  |  September 30, 2011 at 12:39 pm

    I don’t see any correlation between liking video games (particularly first-person shooters) and being interested in programming. I know that the biggest draw for our CS department is the game-design major, but that’s largely because the students have no idea what they are getting into. They think they’ll be spending all their time play-testing.

    That said, I think that games and animation do provide a good entry point for many students (which is why I recommend novices start with Scratch as their first programming language).

    I find it truly unfortunate that for many people their first programming course is an intensive Java syntax course (the AP CS course), when that is much more suitable as a third or fourth language, once students have gotten to the point of doing projects big enough to benefit from rigidly defined interfaces.

    • 6. Mark Guzdial  |  September 30, 2011 at 4:37 pm

      I don’t mean to get in the way of this great discussion here, but I do want to put in a minor correction. “For many people their first programming course is an intensive Java syntax course (the AP CS course).” Yes, for many people, the first programming course is an intensive Java syntax course, but they are mostly seeing at Universities, not in high schools.

      • There are 25-30K high schools in the US (depending on how and when you count), but only 2K AP CS teachers. The odds of going to a high school that even has AP CS is small.
      • Last year, about 195K students took AP Calculus Level AB. Let’s call that a rough estimate of the population of possible AP-taking students. 14.5K students took the AP CS Level A exam last year. Less than 10% of all possible AP students is definitely not “many.”
      • Finally, AP CS actually has a higher percentage of test-takers that go on to take more classes in the given subject than just about any other AP. AP CS is not turning kids off to CS.

      However the AP CS is modeled on what’s actually going on in CS1’s across the country. There are many more students in CS1 than in AP CS. That’s where the “intensive Java syntax course” is likely turning off students. And don’t forget C++, which is still much more popular than Python in CS1 nationally, from what I’ve seen of book sales stats.

      • 7. gasstationwithoutpumps  |  September 30, 2011 at 9:41 pm

        True enough. Bad pedagogy at the college level is driving a much smaller amount of bad pedagogy at the high school level.

        I wonder how many non-AP computer science classes there are in high schools. I know that my son took one, but I suspect that they are nearly as rare as hen’s teeth.

  • 8. Jim Janossy  |  September 30, 2011 at 1:13 pm

    I’ve only just come across this blog partly because Mark Guzdial is speaking at DePaul (where I teach) on Oct 28 and I was looking over the abstract of his talk. Anyone interested in a fresh approach to distance or online teaching without the complexity of a learning management system is welcome to visit http://q123.us/cam where I have posted info and links to 3 courses I teach in this way. Lots of stuff there that’s relevant to this and other posts. My research is aimed at reducing as much extraneous cognitive load for faculty as well as learners, also in resolving intellectual property issues in the process and fostering DL in small underfunded institutions and third world environments. Happy to share, e-mail me at jjanossy@depaul.edu if you find the material interesting. Glad to help anyone who wants to try these techniques. 🙂 Jim

  • 9. Andy Kuemmel  |  September 30, 2011 at 9:54 pm

    After attending a SIGCSE workshop with you in Milwaukee Mark, I have used the Teach in Context idea at my high school and it works very well. Students learn APCS in several contexts, including Media Computation, Greenfoot, and this year, Finch Robot. Now when I go out to recruit students to take APCS, I have lots of different things that might interest them.

  • 10. reestheskin – What you need, not what you want  |  October 5, 2011 at 4:44 am

    […] Alan Kay […]


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackback this post  |  Subscribe to the comments via RSS Feed

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 9,045 other followers


Recent Posts

Blog Stats

  • 2,024,892 hits
September 2011

CS Teaching Tips

%d bloggers like this: