Solutions (And a Ray of Hope?)
If its true that CS curriculums need to be improved, to be bulked up and made more in-depth, does Dewar foresee any improvements on the way?
I dont know, he says. We got a fair amount of interest going. And a nice thing thats happening is that theres going to be an ACM [Association of Computer Machinery] point-counterpoint, with me writing the point and some guy from some other university writing the counterpoint on this whole issue.
I just like to keep it as a topic of discussion. I know it strikes a chord among many university people, too. Part of the trouble with universities is that there are relatively few faculty members who know much about software. They know about the theory of computer science and the theory of programming languages. But there are relatively few faculty who really are programmers and software engineers and understand whats involved in writing big applications.
Its just not the kind of thing that universities are into, really. Because they tend to regard computer science as a scientific field rather than an engineering field. So Ive always felt that was a weakness.
Part of the problem is that programming is hard to teach. Programming is a mixture of a highly technical skill and an aesthetic art. And thats a very difficult combination.
Dewar sees at least four ways to better educate programmers:
More one-on-one mentoring My most successful teaching of programming was when I worked one-on-one with people, he says. Of course thats difficult at the university level, with a teacher-student ratio of 30 to 1, or 90 to 1.
Read a whole lot of good code One critical way of learning programming is to read a lot of code written by really good programmers. Most students dont get that opportunity.
Work in Groups I would like to see much more in terms of group projects. Now theyre hard to grade, and grading stands in the way of education, often and this is one of those ways. Its the same problem a manager faces, really understanding how much everyone has contributed.
Realize that copying code has value Its interesting when you think that the message that we give to students is: You must do this all on your own, you mustnt borrow anything from anyone else. And then we put them in a real industry situation and the message suddenly turns to, Reuse code as much as you can. Real life programmers get good at using chunks of other peoples code.
While those may all be good suggestions, Dewars voice alone isnt enough to produce change. As he sees it, CS departments need to light a fresh fire.
Ive got all these people saying Yeah, Yeah, Yeah, but thats not good enough to say Yeah, Yeah, Yeah you have to do something.
One obvious thing is that we need to get much more industry presence in the ACM curriculum discussion, because thats a real focus. ACM has a real influence over curriculums. Each year they produce a recommended computer science curriculum. So thats a real entry point.
One obstacle: The inertia is huge. So many members dont really want to learn new stuff, particularly.
Still, amid his doubts, Dewar believes that a bright, well-trained CS grad can have a good career.
My feeling is, its not a field where any idiot will be able to get a high paying job. Which at the height of the dotcom thing, any idiot could get a high paying. But competent, well-educated students will be able to find jobs without problem. I think thats a fairly widely held view.