There’s a lot of talk of college-level computer science education in SD Times and on the website this month, and with good reason: It is back-to-school season. On one hand, some industry execs are complaining that the kids they get out of college generally don’t have many useful skills beyond rudimentary knowledge of a few programming languages and some basic algorithms. But on the other hand we have Armando Fox at UC Berkeley, where he and a few other professors around the country are genuinely trying to solve the problem.
We feel that certifying computer scientists isn’t necessarily the answer to the problem of inadequacies of our college-level computer science degrees. Frankly, the answer instead is something we’ve been advocating for more than a decade, and something that Fox has managed to codify into both a real-live and free massive online course.
The solution to computer science education that does not prepare students for the real world is to redesign some of the classes. We’d leave intro classes alone, but Fox’s junior level course in software engineering should be replicated the world over.
Fox, you see, gives the students an entire life cycle’s worth of tooling, a 15,000-line application, and some requirements necessitating changes to that application.
Is that not what enterprise software development is all about? Building a spell checker from scratch may be a great exercise for explaining algorithms, but it’s not something that will ever be a business project. It’s vastly more likely that your company would want such a feature added into an existing application.
Kudos to Fox and the UC Berkeley teams that have been furthering these efforts. We’re excited to see them succeeding and spreading to other schools, because we believe every student coming out of American CS programs should know how to write a requirement, submit a bug, write unit tests, and debug a tangled mess of 15-year-old code.