And the fact that students are expected to have mastered certain things before their classes next semester (or for standardized exams at the end of this semester ) place teachers – particularly K12 teachers under tremendous pressure.

When you have to teach 5 classes 34 kids per class every day with the kids getting homework in all 5-8 of their subjects and your classes are around 40 minutes it’s not so easy to work all those so called best practices*

* – some of which I do believe are good practice, some bunk,

]]>It’s a great question! I interpret the question as the same as the original intro-CS/Geek Gene question at the next level of abstraction. Yes, I believe there are CS teachers who are not effective at teaching a broad range of students. But I don’t believe that they are *innately* ineffective. I believe that they can be taught to be more effective at teaching CS. Do they want to? Can we motivate/incentivize them? How much time will it take to teach them to be effective teachers? There are likely a diverse range of methods to prepare CS teachers, and some will be more effective than others.

We can use the layers of abstraction perspective to consider the next level, too. We might ask if we have enough providers of professional development to reach the teachers, and are all providers sufficiently prepared, incentivized, and informed to help all potential CS teachers?

The bottom line is that no teacher should assume that his or her students are un-teachable. There may not be enough time or resources to effectively learn, though. So, developing greater efficiency is an important goal.

]]>I’m just begging for quantification misinterpretation here, but… do you believe it is the case that all teachers can teach all students? Or, alternatively, given that there are a limited number (possibly zero) of (let’s say intro level) CS teachers available to a given student in a given learning context at a given time, then might there be a fundamental mismatch of resources (teacher to student mapping) that makes CS *effectively* unlearnable for some?

]]>All students will prioritize their time for learning, and we (CS) aren’t always – or even often – the number one priority for non-CS-majors. Sure, I could make them better programmers by demanding more time – with ENOUGH time I could probably teach anyone (almost anyone? anyone who can get into college?) to do simple programming. But I don’t need to demand that kind of time, and it’s not really the point of a CS4All approach.

]]>Let’s presume that students have differences when they enter our CS classes, whether due to previous classes (in mathematics and science, as well as CS), their upbringing (e.g., parents reading to children, going to museums and science centers), and perhaps due to good genes. Our only possible response is to change how we teach, to teach different students differently.

]]>