Journal Articles

CVu Journal Vol 12, #2 - Mar 2000 + Project Management
Browse in : All > Journals > CVu > 122 (18)
All > Topics > Management (95)
Any of these categories - All of these categories

Note: when you create a new publication type, the articles module will automatically use the templates user-display-[publicationtype].xt and user-summary-[publicationtype].xt. If those templates do not exist when you try to preview or display a new article, you'll get this warning :-) Please place your own templates in themes/yourtheme/modules/articles . The templates will get the extension .xt there.

Title: What Use is a Degree?

Author: Administrator

Date: 03 March 2000 13:15:36 +00:00 or Fri, 03 March 2000 13:15:36 +00:00

Summary: 

Body: 

What Use is a Degree?

Pippa Hennessy


One of the best-selling authors of programming textbooks is often criticised on technical grounds - why do his books sell so well? Because they are set textbooks for many university programming courses, indicating that lecturers don't know enough about programming to know that these books are full of inaccuracies and examples of bad practice. Should this worry us?

A recent thread on accu-general discussed the usefulness of academic qualifications (in particular, computer science and other science degrees) as a basis for a career in software engineering. During the debate, the Journal Editor asked current or recent computer science students to write up their opinions on the issue for C Vu - sadly it's a long time since I left university so I can't help there. He also invited "considered articles about experiences of turning academic learning into productive skills" - which is something I can have a stab at. I graduated with a Psychology BSc in 1987 (the degree included a programming course in POP-11, a Lisp-like AI language, and several AI related options). Directly after that I did a PhD in Computer Science. Although that required no coursework I took several undergraduate courses and tutored BSc and MSc students. Since then I have worked as a researcher and an analyst programmer.

So what have people been saying? Well, it's all been anecdotal, so none of these points can or should be generalised (or even necessarily assumed to be true), but it's worth quoting a few of them anyway to give us a starting point:

  • "A university course these days prepares you to think and learn for yourself - which I feel ably qualified to do."

  • "I think it's fair […] to highlight instances where students have been seriously let down by their courses - but I would expect these to be rare and extreme cases."

  • "I don't expect graduates to be fluent in the current language of the month, but they ought to have the background to help them pick up any languages they need."

  • "I've seen "model answers" from OOP courses which are so bad I would have failed the lecturer"

  • "I do have a very low opinion of the overall standard. I even understand why it is that way. Often lecturers are given a quite unreasonable task by being asked to present a course for which they have little prior experience (that is what academics tell me, OK hearsay)"

  • "Being a third year student at University with five years of professional experience previous, I am quite impressed by the variety of skills I have picked up from my course."

  • "…we have had good and bad people from all types of backgrounds. Generally at interviews I just look for enthusiasm and problem solving ability."

  • " …the world has increasingly moved towards the idea that University degrees prepare people for work."

  • "We find it a lot easier (quicker anyway) to teach a scientist programming than to teach a programmer science."

  • "From a recruitment point of view, I don't think I would consider interviewing anyone who did not have a computer related degree, or had considerable experience, because we do not have the resources to support such a person."

Before writing this article I canvassed opinions from my colleagues, and got several varying responses. All but one said the practical skills (programming languages, design methodologies, etc.) they'd been taught had been no use to them in their careers. Interestingly the exception obtained his degree fairly recently from one of the "new universities". Most said that their degree courses had been valuable in providing background knowledge and general techniques. But opinion was much more divided on whether a Computer Science degree had been (or would have been) useful for their career.

My first question when considering this issue is: what can one expect from a graduate that one would not expect from a non-graduate? More specifically, what can one expect from a Computer Science graduate? It would seem valid to assume that someone with an arts degree can write essays and communicate effectively, and someone with a science degree can apply a structured approach to problem-solving. Note that this doesn't mean that an arts graduate can't solve problems and a science graduate can't communicate, but we would not necessarily expect those skills. Can we make any more specific assumptions? Can we even be sure that these assumptions hold true?

Let's step back even further. What is the aim of an undergraduate Computer Science course? In my view, it should encourage the students to think for themselves, it should teach them how to solve problems by breaking them down into smaller problems, it should provide information about various aspects of computers and computing, and it should teach students how to program. Its aims should not include training students to anything beyond beginner's standard in a particular programming language, or providing students with all they need to know to become a database programmer, or an embedded systems developer, or whatever.

So an employer could reasonably expect that a Computer Science graduate would have the basic skills necessary for a career in the computing industry. While he or she will not be a fully productive programmer from day one, it should be possible for him or her to learn any relevant programming languages more quickly and more effectively than a similar person who has not studied for a science degree.

There are three reasons for an employer's expectations not to be met: the expectations could be too high, the tuition on the particular course could have been poor, or the graduate could be inherently incapable of becoming a programmer.

There is very little we can do about the last case in terms of making sure the graduate meets the expectations. But if such a person successfully applies for a programming job, it is the employer's selection process that is at fault, not the university that conferred the degree. While we expect that a Computer Science graduate is capable of becoming a programmer, we should not assume it to be the case - apart from anything else, programming is typically a small part of the degree course.

When the tuition on a particular course is poor, the onus is usually on the students to get something done. Back in 1987 the whole of my year threatened to go on strike if one of our compulsory final year courses was not taught more effectively - it was remarkable how rapidly the teaching improved! OK, it isn't always obvious to a student that a course is badly taught, so it is the responsibility of other lecturers, ex-students and tutors to identify such courses and encourage the lecturer to seek help to improve the quality of the course. In my opinion this isn't enough - the students should be told that they are being short-changed so that they can do something about it. Even if they can't persuade the lecturer or the university to bring the course up to standard they at least then have the opportunity to use their initiative and find ways of making up for the poor quality teaching.

If employers are indeed increasingly expecting degree courses to fully prepare students for the world of work they are placing unfair requirements on students and on lecturers. It is extremely important that a new employee is able and willing to quickly and effectively acquire the particular knowledge and skills needed to do their job. For most jobs it will be counter-productive if that employee has gained an in-depth knowledge of the particular programming language used at the expense of having been taught to think.

It is my personal belief that most Computer Science graduates are as qualified as we could expect them to be, but that is only a belief. It is other people's personal belief that this is not the case; that the university system is letting students down by failing to equip them with the skills they need for careers in the computing industry. Again, that is only a belief. Both sides of the argument are supported by anecdotal evidence, there is no empirical evidence that can be used to show whether one side or the other is "more right". I suspect that such empirical evidence would be too difficult to obtain, and would almost certainly be out of date as soon as it was published.

Therefore we must take a pragmatic approach. We must accept that some courses are worse than others. We should try to identify such courses and help lecturers improve the quality of their teaching. Students should be discerning in their acceptance of all they are taught, they should question their lecturers and read around the subjects. Finally, employers should be aware that a Computer Science degree is not in itself a guarantee that an applicant could successfully become a programmer, and it is certainly not a guarantee that an applicant will become a fully productive employee as soon as s/he starts work.

So what use is a Computer Science degree? It does not produce graduates who are ready to take up positions as commercial programmers. However, it teaches students useful background information, and also how to think for themselves and how to solve problems. In most cases it lays adequate groundwork for a career in computing.

Notes: 

More fields may be available via dynamicdata ..