[LINK] Where Are the Software Engineers of Tomorrow?
gdt at gdt.id.au
Mon Jan 14 03:07:43 EST 2008
On Tue, 2008-01-08 at 22:48 +1100, Bernard Robertson-Dunn wrote:
> As technology based systems become more complex, CS students seem to
> becoming less widely educated, are focussed on the internet and less
> able to understand the complexity of modern systems.
Not sure I buy that. There's a lot of database-backed websites
around and I'd contend that many of those are OLTP systems at
heart. "You say CICS, I say Ruby on Rails."
I do have my own doubts about the CompSci curriculum, but mine
are focused on "new" subjects which should be taught rather than
old subjects which have been de-emphasised. Topping that list would
be security. Followed by real-time systems, computer networking
and software development and operations practicalities (configuration
control, system testing, release, etc).
If I had my way, then students would take an industry placing
and then, eyes opened, come back to learn project management,
development methodologies, writing and some people skills.
I'm not too worried about the CompSci degree. There is a
lot of emphasis at the universities which have traditionally
offered CS to retain its rigour. What does concern me is
the lack of rigour in a lot of the "information technology"
degrees. I'd contend that some of these were established
as money makers for universities when IT was "hot".
Having written that, I do despair of many of the graduates
I encounter. Maybe networking is a bit of a niche, but
it's a big niche. I seem to spend most of my time teaching
stuff that people should already know and repairing design
errors which should not have occurred. In common with most
ISPs, we get the blame for any "network outage" no matter
how shoddy a site's network.
ADDRESSING THE ARTICLE
As to the use of Ada in teaching, been there, done that
and it hurt badly. For a first language in a CompSci
degree you want a ALGOL-heritage language with object
oriented extensions. The choice from that long list
comes down to instructional clarity versus commercial
applicability; at the extremes Lua versus C++.
Ada is simply a poor compromise. It's instructionally
insanely verbose and unnecessarily complex and has no
commercial applicability. No commercial applicability
means that recruiting teaching staff is difficult, let
alone those that know the language well. It is also
unfair on students that are using the subject in another
degree, since they don't end up learning a skill which
can be put to use in their course. Ada's verbosity
just gets in the way of teaching -- you simply can't
have a small example in Ada -- and it's a killer for
learning -- student's need to be obsessive about the
requirements of the language leaving them no capacity
to think on the skill we are trying to teach.
Teaching Ada did make The University of Adelaide inclined
to move to another language that could be used to express
large and embedded systems. Which is why it chose another
language with those design goals -- Java.
The danger of Java is that students know the price of
nothing. That's easily fixed the next semester by teaching
the C language and Computer Architecture.
Formal Methods. Hmmm. It has never lived up to its promise
but it is expensive to teach, taking about 8 weeks. Although
I'd like to see it stay, I think a CS course would still be
acceptable without it.
Numerical Analysis. I spent the first three years of my
working life practising this. It was my job to make sure
the cents part of the ABS's figures was correct. What a
Computer Scientist needs to know about N.A you can teach
in about four classes. If they need any more than that
then you don't want a CompSci degree you want a Math
degree. There is more math that a CompSci student should
know and a "Math for CS" subject following Computer
Architecture is a fine plan.
N.A is important for some CS research. I tend to view
the over-teaching of N.A at some institutions as lecturers
teaching what they know rather than what their students
need. At the risk of sounding like doing something
similar, I'd drop a fair whack of statistics into the
"Math for CS" subject, since as soon as you measure
something knowing some stats is useful.
Anyway, I've been a teaching casual in CompSci classes for
two decades now whilst working and the above is the little
I've learned :-(
Glen Turner <http://www.gdt.id.au/~gdt/>
Tel: 0416 295 857 or +61 416 295 857
More information about the Link