Is it easier to take CS people and teach them to teach or is it easier to take teachers and teach them CS?

The question gets batted around from time to time.

This time via twitter:

Some think it's easier to teach a teacher to teach CS than to teach a CS pro to teach. @alfredtwo is not one of them https://t.co/QCUP8d8llZ — Diane Levitt (@diane_levitt) July 3, 2017

Agreed. It takes a lot of work. More than a week long workshop. — Alfred Thompson (@alfredtwo) July 4, 2017

The conversation was referring to blog posts by Alfred Thompson and Garth flint. Alfred's key point - one that I've spoken about before is that short term professional development does not a CS teacher make.

As to the lead in question? I've seen both routes succeed and both routes fail. Both can be heavy lifts but there's a missing part of the equation that's never addressed.

The claim is that it's easier to teach CS to a non-CS teacher because they already know how to teach. The problem is, particularly in the later grades that teachers of different subject areas have very different tool sets. Sure, there are common factors – get the kids involved, layer, spiral, etc. but you don't teach a CS lesson the same way you teach a math lesson let alone a literature, history, language lesson.

In a math class, it's common to have students write solutions to problems up on the board. If you try that in a CS class, you'll be waiting 20 minutes while the kids transcribe the problems. Likewise, math homework will likely consist of a certain amount of repetitive practice problems whereas a CS class won't have something directly analogous. This is not to say that you don't have opportunities for students to present at the board in CS class or that there isn't worthwhile homework but rather that even at this simple level, there are differences.

So, if we're going to teach a non-CS teacher the CS content, beyond the challenge of giving them the necessary depth and breadth of content knowledge we have to teach them how to teach CS.

I've inventoried some of the techniques my colleagues and I have used in our classes and the collected methods could easily fill a couple of graduate education courses.

So, what's the answer to the question? It doesn't matter where you start but if we want to do right by our kids we need to prepare them in not two but three areas:

CS Content

CS Pedagogy

General education and pedagogy

Short term PD (professional development) won't do it and neither will scripts for "teachers" to follow. It's going to take time, will, and effort.

Here's hoping that municipalities look at the long game. It's fine to do PD now to get something started but it's not enough. I wanted my kids math teachers to know math and how to teach it. We should demand no less from our CS teachers.