Our problem in CS Ed is too much utility
One of my insights from SIGCSE 2013 was about the problem of “eating our seed corn,” and how this stems from too much utility. For most STEM fields (like mathematics, physics, or biology), a little bit of it isn’t enough to do much. One course in Biology does not lead to a lab technician job, and much less a job doing surgery. A student needs a significant amount of STEM learning in most disciplines before being useful to an employer.
Not true for computer science, and this has been a problem since the 1960’s. In The Computing Boys Take Over, Nathan Ensmenger describes how companies were desperate to identify and hire programmers to deal with the severe labor shortage as computers moved into business settings. Knowing anything about computing made you useful. Not necessarily good, but useful.
And that’s still our problem today:
- We cram so much into our first and second University courses, because our students want an internship as soon as possible, and we want them to know something about good process and good engineering, even if they don’t know enough about computer science to really understand it yet. Yes, those who complete a degree get even higher salaries, but a lot give up early because it’s enough.
- We desperately need more high school teachers, but if a high school teacher learns enough computer science to teach it well, she also knows enough to leave high school and get a much higher-paying job in industry.
- Meanwhile, because computer science is so useful, our university enrollments are climbing.
In a sense, these are good problems to have. I would not want computer science to be less useful. But the high utility of computer science knowledge does pose problems that educators in other STEM disciplines may not appreciate or understand.