There's been a lively discussion on pushback to CS for All at the K12 level over on Facebook. Mark Guzdial started a sub thread asking if CS for All should first be implemented at the undergrad level rather than K12.
It's an interesting question and as good as anything to get me out of my month long non-blogging rut.
Mark was right when he said that if Colleges implement CS for All, K12 will likely do so to follow - just look at AP. Colleges have been saying that students should take more AP classes (while giving less credit) and we all know where that's led.
On the other hand, can colleges really do CS for All, what does it mean and what would it look like.
Much like there is no single K12 - it's 50 states and who knows how many independent school districts, there won't be a single CS for All at the college level but let's think about how things could play out.
Many colleges have distribution requirements. Students must take one course from bucket A, two from bucket B etc. Many schools that I've looked at already count CS courses in one of their distribution buckets. This doesn't mean every student will take CS but in theory means they can. Colleges could in theory create a required CS bucket or even a required CS course but I don't think it's as easy as that. It might be at a private institution but while I don't know all the ins and outs of Hunter's governance rules I do know that adding a universal student requirement is a HUGE undertaking.
So my take is that while it might be easy for a private college to add a CS requirement I'm guessing other public institutions are more similar to Hunter and it's not going to be an easy task.
Regardless, let's say we have a required class on the books. Will we have the capacity to teach it? It seems that schools are struggling to deal with their existing CS majors and running sufficient electives and courses for them. Just a month or so ago there was an article about a college ending its CS minor due to lack of resources. It doesn't sound like a radically different problem then that faced in K12. Maybe it's harder given that at least in NY, there is room for a required CS course if you can find the teacher.
Even so, assuming we have the capacity to enroll every undergrad in a CS course what would that be? I think most people would be in agreement that it shouldn't be CS 101. Maybe existing pre-major courses but even there I don't know if that's always the best path. There could be a great pre-major course to give students the basics and lead some into the major but what about a CS course for students in majors that need some deeper but focussed programming skills. The appropriate course for them isn't the same as a general/pre-major course. Using Statistics as an example, at Hunter, many majors require a statistics course which is off loaded to the Stats department. Each major has slightly different requirements. Over years, the end result is a course that it seems that nobody is happy with - a least common denominator course. CS for All at the college level could give us a least common denominator course that doesn't serve anyone.
Now, if you have the resources, none of these are issues. A well heeled private institution can run tons of sections of specialized classes no problem but this means just like on the K12 level we'll get the CS for All tale of two cities that I see coming in NY where the rich schools have good programs and the poor get a substandard experience.
With all of this said, I'm finally getting to the big red flag with college CS for All and it's an issue that everyone conveniently ignores. I'm talking about teacher quality. One of my big takeaways from SIGCSE is that college faculty are well behind K12 teachers in terms of pedagogy and I don't see this changing anytime soon. This is to be expected given that professor's career advancement is really based on research. Having a good teacher is always important but it's even more important for non-major students since a student in the professor's major will at least be passionate about the subject area. To me, this is not a recipe for success.
One can certainly make the claim that we aren't any better off right now at the K12 level because we don't have teachers who know either the subject nor how to teach it and at least at the college level they know the subject matter. This is very true and it's why pre-service CS teacher preparation is so critical to getting this right even though it will take time. That's something that both Mark and I have been vocal about but more on that subject next time.