Mark Guzdial had a guest post by Eric Roberts of Stanford today titled - Guest Post: Eric Roberts on the Dangers of Escalating Enrollments which really got me thinking. While the focus of the post was increasing CS enrollment at Stanford and some other universities it got me thinking about high school computer science and how it relates to this issue. I did post a longish reply in the comments there but decided I had more to say than was appropriate for a comment. What would it mean if interest in CS grew in HS? Could we handle the increase? What is our capacity? And most important, would what we do help or hurt university computer science education?
My first thought on it this was "well that is Stanford." They do after all attract a pretty smart bunch of students. But the bit about students building credential for a weak job market makes sense in a lot of contexts. In the long run that is likely to create the same sort of bubble that the dot com boom did with people taking CS primarily for the money. Although if as it appears to be happening at Stanford, students are actually growing to like the subject after taking it for other reasons perhaps this increase will last. At least at some not yet determined plateau.
The capacity problem at universities seems a little easier to deal with than if it were happening at the high school level. There are, I hear, a bunch of CS PhDs floating around looking for faculty positions rather than temporary post docs. I read something about that at Mark Guzdial’s blog. (http://computinged.wordpress.com/2011/03/09/impact-of-increasing-number-of-post-docs-in-cs/) Classrooms and lab time are somewhat harder but given faculty solvable issues. In high schools we have a terrible chicken and egg situation with not enough demand to hire teachers and not enough teachers to fill jobs in places where demand grows – if in fact it grows at all.
I’d like to think that the word would get down to high schools that students at top schools, like Stanford, are taking more CS to help them get into the job market and so increase demand for CS earlier. But I am not sure that will happen in anything like the scale and timeliness we’d like. Even it, or perhaps where, it does get to the attention of students, guidance counselors and school administrators where will the teachers come from? My concern is that teachers with limited experience and excitement about the field of CS will be “drafted” into the roles and turn off students before they get a chance to get excited about CS. This could reverse the trend that Stanford and others are seeing. This would be bad.
The number one thing, in my opinion, that high school computer science needs to do is to build interest in learning more. Actually I see that as the role of high school in pretty much any subject you can think of. Do the courses we have today do that? I am optimistic about the new APCS Principles course. There is talk of a new pre-AP course along the lines of what several schools and districts are doing. They look ok to me as well. Again, assuming the right people are teaching them. APCS as it exists now? OK I’m not so excited about that. I think that one has to already be excited about CS to enjoy that course. Even then it can be a thrill killer. Again, it need not be with the right teacher and the right emphasis on the exam. That means, again my opinion, not treating the test as god.
So the two problems are the right teachers and the right courses/curriculum/teaching tools. I think there are lots of good tools and curriculum. I post about a lot of stuff like XNA Game Development courses. And Small Basic for introductory programming courses. Free or inexpensive tools for schools (MSDN AA – contact me if you need this for free) and students (DreamSpark) abound. For the Java fans there is GreenFoot. There are also graphical drag and drop teaching tools like Kodu, Scratch and Alice. I like to think that many of the programming projects I write about here are fun and build interest as well. But where are we going to find the teachers?
There are some great opportunities for professional development for existing CS teachers. (Information on my favorite at the end of this post) but not a lot of incentive for teachers to move into the field. The ever articulate Mark Guzdial took this question up on a post at What’s the argument for becoming a computer science teacher? and I took up the question at Making the Case for Becoming a Computer Science Teacher The fact remains that finding enough good computer science teachers is probably the hardest problem we have in high school CS education. And far too few people outside our immediate community seem to be interested in addressing it.
Footnote: High school computer science teachers really should attend the Annual CSTA Computer Science and Information Technology Symposium this summer in New York. Register now at http://tinyurl.com/csit2011reg