News
Commentary
5/4/2008
00:00 AM
Commentary
Commentary
Commentary
Connect Directly
RSS
E-Mail
50%
50%

CS Grads: You Don't Know Jack

This week  Embedded.com has Jack Ganssle trot out what is by now a thoroughly exhausted straw man in his article CS Schooling, where he asks Do CS departments come even close to producing graduates that meet the needs of the firmware community?

This week  Embedded.com has Jack Ganssle trot out what is by now a thoroughly exhausted straw man in his article CS Schooling, where he asks Do CS departments come even close to producing graduates that meet the needs of the firmware community?

Jack is addressing firmware specifically, and for his punching bag he looks at the required courses in a typical CS curriculum (parenthetical comments are his):

  • Object-Oriented Programming I and II (in Java)
  • Discrete Structures (in Java) 
  • Introduction to Low-Level Programming Concepts (no programming requirement I could discern) 
  • Computer Organization (a bare introduction to assembly but that appears superficial) 
  •  Organization of Programming Languages (C, Pascal, ML, LISP, Prolog, C++, and Smalltalk - so many, it's hard to imagine a harried student would master any of them.) 
  •  Algorithms (no apparent programming)

Jack uses this list to make two points:

  1. He thinks that the CS curriculum is weofully deficient in classes that require programming, and more importantly, C and C++.
  2. The EE curriculum is much more in tune with the requirements needed to write firmware.

Jack Fell Down 

Jack Ganssle
Jack Ganssle
Personally, I think Jack is batting .500 at best. His contention that CS undergrads aren't doing enough programming isn't even born out in the class list he offers up - most of those classes will have plenty of programming work.

And honestly, complaining that taking an Algorithms class doesn't help prepare you for real life because there's no programming is like saying Organic Chemistry doesn't prepare you for a career in medicine because there's no interaction with patients. I think CS students could use more work in algorithms, not less, and that class can (and perhaps should) be taught very effectively with nothing but pencil and paper. (As Dijkstra has so famously maintained.)

As for the superiority of the EE curriculum for training people in firmware develpment, I guess my reaction is Duh! As you move closer and closer to the hardware, you're going to find that a greater and greater percentage of firmware developers are EEs. There's a reason for this: it's their home turf.

When a firmware developer has to work directly with hardware for things like development of device drivers, management of interrupts, control of MMUs, and so on, an EE is definitely going to be more comfortable by training. Pure CS people can play happily in this domain, but they need to acquire hands-on experience, whether that be in the workplace or outside. And giving that in-depth exposure as part of a general CS curriculum would probably not stand up to a cost/benefit analysis.

Should We Care?

Jack's arguments don't really inspire any call to action, at least not to me. But does this mean we shouldn't care about the CS curriculum? Of course not.

Believe it or not, the majority of people in academia do care, a lot, about properly preparing their students for industry. They know darned well that their students face a lot of competition for entry-level jobs, and schools that don't place their students are going to suffer.

But professors and department chairs can't do their job in a vacuum. The best thing you can do to help the situation is to provide feedback. Establish a relationship with the schools that you hire from, and let them know where they are falling down, and where they are doing well.  If you care about the profession, it's an excellent way to give something back.

 

Comment  | 
Print  | 
More Insights
The Business of Going Digital
The Business of Going Digital
Digital business isn't about changing code; it's about changing what legacy sales, distribution, customer service, and product groups do in the new digital age. It's about bringing big data analytics, mobile, social, marketing automation, cloud computing, and the app economy together to launch new products and services. We're seeing new titles in this digital revolution, new responsibilities, new business models, and major shifts in technology spending.
Register for InformationWeek Newsletters
White Papers
Current Issue
InformationWeek Tech Digest - August 27, 2014
Who wins in cloud price wars? Short answer: not IT. Enterprises don't want bare-bones IaaS. Providers must focus on support, not undercutting rivals.
Flash Poll
Video
Slideshows
Twitter Feed
InformationWeek Radio
Sponsored Live Streaming Video
Everything You've Been Told About Mobility Is Wrong
Attend this video symposium with Sean Wisdom, Global Director of Mobility Solutions, and learn about how you can harness powerful new products to mobilize your business potential.