What should we teach in CS courses

I read an interesting article today in the CACM by Bjarne Stroustrop (inventor of C++) who was bemoaning the fact that university CS courses are not aligned with industry needs and proposing that the problem should be addressed by making the first CS degree a Masters rather than a Batchelor’s degree.  He concludes that the answer is a ‘body of knowledge’ (he calls this a ‘core’+application areas) and licensing of software professionals.

While I agree with his description of the problem, I think this whole body of knowledge stuff is simplistic. What on earth is core computer science – when I started teaching CS, it was inconceivable to have a CS course without compiler theory and development. Now, hardly any courses have such things – and, in truth, it doesn’t matter that much.  Who really cares about Turing machines?  Some people who work in the software industry really need discrete maths but if you are developing simulation systems then maybe knowing about differential equations is more important.

The fact is, software is so diverse and different types of software have such different knowledge requirements (e.g. compare computer game development and database programming) that we simply cannot cover everything in a course be it a Batchelor’s or a Master’s course.

The licensing route is a slippery slope to ossification with licenses controlled by a small group of greybeards who are not in touch with modern developments (we see this in the UK in BCS accreditation of courses). It’s really not a good idea.

And the other thing that we in universities must always remember – industry is not our customer – they pay very little towards the university system. Our paying customers are students and if we offer dull and irrelevant courses, they will vote with their feet and go elsewhere. I reckon that was part of the problem for the decline in CS enrolements (some universities have faced up to this, others continue to delude themselves that it was all to do with the dot-com crash). Courses are getting better and I think that, in the UK at least, they are slowly being updated to reflect 21st century needs.

Advertisements

1 Comment

Filed under CS education

One response to “What should we teach in CS courses

  1. Pingback: Hello world! « Bits and pieces

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s