[comp.software-eng] Re^2: CS education

murphyn@cell.mot.COM (Neal P. Murphy) (11/29/89)

billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu (William Thomas Wolfe, 2847 ) writes:

>...
>   such application domains, and it would behoove us to present the
>   student with software development problems which are relevant to
>   the problem domain(s) in which the student intends to specialize.
>...

Why must students specialize? (Not why *would* they, but why *must* they?)
A common thread through most of your articles is that students must restrict
themselves to one specific, narrow field of CS/SE. This teaches students to
know only what they know and to be closed to learning anything else, including
topics related to what they know. This produces, quickly enough, an employee
who can perform a specific task, but is completely unable to relate that
task to his fellow employees' tasks! A student has a lifetime to spend
specializing in some field. As a student, it is absolutely necessary that
he receive as well-rounded and as broad and education as he can get while
he is a student.

As relates to CS, a student should learn a reasonable amount of physical
sciences and mathematical sciences. He should at least be exposed to the
basics of other fields of engineering. His CS program should expose him
to a solid balance of Computing Science *and* Software Engineering. In
addition, he should learn a fair bit of liberal arts, meaning literature,
philosophy, subsequent languages, history, etc.

Once graduated and employed, this person will be able to see how his work
relates to his company's work and how his work relates to his society/culture
in general. While he will likely not know enough about these relations to
write a dissertation on either of them, he will know enough to feel at least
some twangs of guilt when he strays too far from the right and good path.
(Yes, it's another step away from childhood.)

And, once graduated and employed, he will be free to specialize to his heart's
content, returning to school to earn his MSCS and even his PhD.

Yes, I do realize that some students will find a deep fascination for specific
topics in CS. These students should not be allowed to blatantly disregard the
rest of the CS field. This is where academic advisors should earn their keep -
most other students will want to have the necessary balance. These special
students need extra effort to get them to learn about other CS topics.

If this were applied planetal (universal is a bit much!), we would be talking
Utopia, and I'm too cynical to believe that that is even remotely possible.
But if enough people receive a well-rounded education, the Earth would be a
better place to live, because there would be a greater tolerance of the
minority who don't fit the norms of society. After all, that is why we are
subjected to twelve to sixteen years of education, isn't it? We are supposed
to be learning how to fit into society, how to contribute to the future of the
society and how to accept others who do and do not fit into society.

Give a CS student a well-rounded education, including *both* Computing Science
*and* Software Engineering, and he will be *far* better off than a student who
is allowed to specialize and ignore most of his chosen field (and far more
valuable to the company that hires him.)


NPN

murphyn@cell.mot.COM (Neal P. Murphy) (11/29/89)

This is a companion article to my reply to Bill Wolfe. It is addressed to
CS professionals and educators in general.

Part of the problem in CS education is that colleges and universities are
trying to include too much in their CS curriculae. Compared to other fields
of study, CS is fairly new. Most of it is still taught at the post-secondary
level. Introductions to CS and the fundamentals of CS should be presented
in high school, if not sooner. Why, you ask? CS departments are still inundated
with students from Rocks, Shocks, Atoms, Potions and other disciplines who are
learning to use computers for the first time. This prevents CS faculty from
focusing their efforts on their CS students.

Computers are tools, and learning to use tools is something one usually
does in junior high and high school. Shift this facet of education to our
primary and secondary school systems. Help the people running those systems
to develop at least and adequate curriculum. Teach the educators what they
need to know so that they can teach their students about these tools.

You may be surprised upon finding that you have freed up a year or more of
time in the CS curiculum. You can squeeze in a lot more CS and SE in that
period of time. Let us stop bickering about the content of CS curriculae, and
begin seriously discussing how to off-load fundamental CS education to our
primary and secondary schools. I expect to see results before I retire.
(I'm an optimist - I know it can be done; I`m also a realist - it will take
time.) Tell me I'm wrong! Tell me my head is where the sun don't shine! On
second thought, boost my ego - tell me I'm right!

NPN

oplinger@minerva.crd.ge.com (B. S. Oplinger) (12/01/89)

In article <452@cherry5.UUCP> murphyn@cell.mot.COM (Neal P. Murphy) writes:
>
>This is a companion article to my reply to Bill Wolfe. It is addressed to
>CS professionals and educators in general.
>
>with students from Rocks, Shocks, Atoms, Potions and other disciplines who are
                    ^^^^^  ^^^^^^  ^^^^^  ^^^^^^^
What is Rocks, Shocks, Atoms, Potions? E-mail failed (host
unknown) so I must ask the world what does this mean. Try to
e-mail an answer.

brian
oplinger@crd.ge.com

please don't tell my boss that I never understand what's happening!
<#include standard.disclaimer>

horwath@cell.mot.COM (George Horwath) (12/01/89)

Something that always bothered me when I was in
school were all the candidates for master degrees
in CS taking the same classes that I was in yet
I only received a BSCS. They had a bachelors
degree in philosophy, poli sci, etc. (Non-CS
related with one intro to programming class.) Of course,
when they were done (no thesis or project required),
they got more bucks for the same amount of work
and same knowledge level. There never seemed to
be much difference between the two degrees although
this might be different for different universities.

Other areas might be different (what about the
BSCS person going for an MBA?). For a different point
of view, take a student that received a BSCS and
attended, perhaps, one music appreciation course.
Now send the student over to the Music Dept. and
see if he can get a MMu in one year with a
certificate in performance practice. The chairman
of the Music Dept. will probably be rolling on
the floor at the suggestion.

perry@apollo.HP.COM (Jim Perry) (12/02/89)

In article <450@cherry5.UUCP> murphyn@cell.mot.COM (Neal P. Murphy) writes:
>billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu (William Thomas Wolfe, 2847 ) writes:
>
>>...
>>   such application domains, and it would behoove us to present the
>>   student with software development problems which are relevant to
>>   the problem domain(s) in which the student intends to specialize.
>>...
>
>Why must students specialize? (Not why *would* they, but why *must* they?)

Bravo!  This discussion thread has tended to an extremely limited view
of the world, pitting computer science against mathematics on one side
and software engineering on the other.  (Assuming here that the goal
is to produce good software engineers; other parts of the thread have
argued different goals).  There's a lot more to day to day engineering
than is reflected in a discussion of whether or not the compiler/OS
course should be required or what to teach in its place.

In solid practical terms a greater emphasis on English would benefit
more engineers than any particular new SE course.  If more engineers
could produce decent English prose, productivity would be
significantly increased.  As it is, there's a considerable tendency 
among engineers and CS/SE students to downplay writing (and general
communication) skills.  This is extremely counterproductive.  

Much of the day to day work of software engineering involves
communication.  A design specification must, by its nature, be clear
and accurate.  The most painstakingly-designed, correct, efficient
program, with no comments, is worth only a small fraction of the same
program well documented.  The cost of a program is not in its
implementation but in its maintenance.  The world's best engineer
could go to make a change to the undocumented program and lose
hours or days analysing it, time that could have been saved with a
much smaller investment of time by the writer.  

I'm firmly of the opinion that there's much too much specialization in
American undergraduate education.  College is, for most of us, the
last chance to be exposed to a broad palette of educational
opportunity.  To waste that time in narrow pursuit of a particular
discipline, whether as a precursor to graduate study, or as
preparation for the job market, or even out of personal preference, is
a waste of an opportunity.  I consider this true at the level of
choosing CS over history; I would *certainly* counsel avoiding a
choice between CS and SE (while acknowledging that they are different,
or at least represent different, possibly overlapping, regions of a
spectrum).

By the way, if I were asked to pick the one course that had the most
direct influence on my day to day software engineering over the past
ten years, there would be no question, it was the compiler course.
The second was probably The History of the English Language.  No :-)
-
Jim Perry   perry@apollo.com    HP/Apollo, Chelmsford MA
This particularly rapid unintelligible patter 
isn't generally heard and if it is it doesn't matter.

billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu (William Thomas Wolfe, 2847 ) (12/03/89)

From perry@apollo.HP.COM (Jim Perry):
>>Why must students specialize? (Not why *would* they, but why *must* they?)

  Nobody is saying (I think) that students *must* specialize.  If a
  student wishes to become a generalist, then that path should be open.

  The problem is that the system dictates that everyone *must*
  be a generalist, and does not permit sufficient specialization
  (within an economically reasonable amount of time and money).
 
> In solid practical terms a greater emphasis on English would benefit
> more engineers than any particular new SE course.  

   A greater emphasis on documentation, perhaps -- far too few CS
   graders pay any attention to documentation as a vital element
   of product quality.
 
> I'm firmly of the opinion that there's much too much specialization in
> American undergraduate education.  College is, for most of us, the
> last chance to be exposed to a broad palette of educational
> opportunity.  To waste that time in narrow pursuit of a particular
> discipline, whether as a precursor to graduate study, or as
> preparation for the job market, or even out of personal preference, is
> a waste of an opportunity.  I consider this true at the level of
> choosing CS over history; I would *certainly* counsel avoiding a
> choice between CS and SE (while acknowledging that they are different,
> or at least represent different, possibly overlapping, regions of a
> spectrum).

   Well, Jim, I think you're certainly entitled to this opinion, and
   I would encourage you to exercise your First Amendment rights to
   provide *counsel* to your heart's content.  It's just that I also
   think I should be able to listen to other people's counsel as well,
   and make my own decision.  

   Remember: nothing prohibits me from taking history, etc. at a later 
   date should I eventually gain an interest in the topic.  If this is
   the case, I will have a much higher level of retention because of my 
   *interest* in the topic.  I would submit that practically all of what
   one is forced to study is destined to be completely forgotten, and that
   the paradigm of forced study of irrelevant topics is simply a waste of 
   the student's time and of both the student's and the taxpayer's money.  


   Bill Wolfe, wtwolfe@hubcap.clemson.edu

manis@cs.ubc.ca (Vincent Manis) (12/05/89)

In article <7291@hubcap.clemson.edu>
billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu writes:

>  The problem is that the system dictates that everyone *must*
>  be a generalist, and does not permit sufficient specialization
>  (within an economically reasonable amount of time and money).

But that's what a university is supposed to be. We aren't supposed to be
training people for careers (even ones as software engineers); rather
we're supposed to be producing intelligent, educated people whose major
strengths are problem-solving and disciplined creativity. 

It might be argued that professional faculties (notably medicine, law,
and engineering) *are* for career preparation. However, if one looks at
the many complaints about engineering education in particular, the
overriding complaint which comes from practitioners is precisely the
fact that graduates don't have any sort of overriding sense of what
their field is really about, and that they secretly expect an answer in
the back of the book to the problems they confront on the job. Given
that engineering practitioners and academics are trying to get students
away from cut-and-try techniques, I see no reason why the sciences
should choose to move toward these techniques.

As for CS vs SE: well, I teach a course labelled `Software Engineering'.
I try, as best as I can, to cover engineering practice. However, I know
(or at least hope!) that the problems my students will deal with in
their professional lives will be ones that neither I nor anybody else so
far has thought about; in other words, what I'm trying to do is to teach
my students not the principles according to some mythical cookbook, but
rather the ways in which they can become innovators. I trust to their
employers to give them the detailed techniques they'll need for their
particular areas of specialisation. 

What it comes down to, basically, is that it really doesn't matter, from
a professional point of view, what one studies in an undergraduate
program. A good CS program is one which has breadth and rigour, and
which inculcates in the student a respect for methodical design on the
one hand, and innovation on the other. Whether the focus is operating
systems, artificial intelligence, or algorithmic complexity is of no
importance. 
--
Vincent Manis <manis@cs.ubc.ca>      "There is no law that vulgarity and
Department of Computer Science      literary excellence cannot coexist."
University of British Columbia                        -- A. Trevor Hodge
Vancouver, BC, Canada V6T 1W5 (604) 228-2394

sullivan@aqdata.uucp (Michael T. Sullivan) (12/05/89)

From article <5866@ubc-cs.UUCP>, by manis@cs.ubc.ca (Vincent Manis):
> 
> But that's what a university is supposed to be. We aren't supposed to be
> training people for careers (even ones as software engineers); rather
> we're supposed to be producing intelligent, educated people whose major
> strengths are problem-solving and disciplined creativity. 

Nonsense.  Doctors, lawyers, librarians, teachers, and musicians all
got practical training in college.  Why don't CS students?  When my
wife went to school to be a librarian she wasn't just taught why it is a
good thing to catalog materials, she was taught how things were cataloged.
She was actually given practical assignments that helped her later in her
career.  Now, Turing machines may be swell but I sure can't see how they
helped my problem solving skills, much less my career after school.  There
are things I am learning all the time that are basic to computer programming/
software engineering that I wish would have been taught in school.

And why is it Universities can't produce "intelligent, educated people whose
major strengths are problem-solving and disciplined creativity" who are also
better trained for careers, since careers are what most students want, anyway?
Just another pet peeve.
-- 
Michael Sullivan          uunet!jarthur.uucp!aqdata!sullivan
aQdata, Inc.
San Dimas, CA

betsyp@apollo.HP.COM (Betsy Perry) (12/08/89)

In article <1989Dec5.155727.20983@aqdata.uucp> sullivan@aqdata.uucp (Michael T. Sullivan) writes:
>From article <5866@ubc-cs.UUCP>, by manis@cs.ubc.ca (Vincent Manis):
>> 
>> But that's what a university is supposed to be. We aren't supposed to be
>> training people for careers (even ones as software engineers); rather
>> we're supposed to be producing intelligent, educated people whose major
>> strengths are problem-solving and disciplined creativity. 
>
>Nonsense.  Doctors, lawyers, librarians, teachers, and musicians all
>got practical training in college.  Why don't CS students?  When my
>wife went to school to be a librarian she wasn't just taught why it is a
>good thing to catalog materials, she was taught how things were cataloged.
>She was actually given practical assignments that helped her later in her
>career.  

Let me be the 97,000th to point out that, with the possible exception of musicians
and teachers, the professions you list above get their professional education 
in graduate school.   (And musicans and teachers are both expected to 
continue their professional education throughout their lives).  They don't
give undergraduate law degrees.  There isn't enough time in a 4-year program
to cover law *and* everything else an educated adult needs to know in order to
practice law.  (Fess up;  I'll bet your wife's degree in Library Science
was a Master's, right?)

>
>And why is it Universities can't produce "intelligent, educated people whose
>major strengths are problem-solving and disciplined creativity" who are also
>better trained for careers, since careers are what most students want, anyway?
You can't produce an intelligent, educated graduate unless the graduate *wants*
to become an intelligent, educated person.  As you point out, most students
*want* pieces of paper which enable them to get jobs.  It's hard to educate
somebody who is in college only to get the diploma.
Betsy Perry                          betsyp@apollo.com
Apollo Division, Hewlett-Packard, Inc.
(her opinion doesn't matter, matter, matter, matter...)

sullivan@aqdata.uucp (Michael T. Sullivan) (12/09/89)

From article <474a6994.20b6d@apollo.HP.COM>, by betsyp@apollo.HP.COM (Betsy Perry):
> 
> Let me be the 97,000th to point out that, with the possible exception of musicians
> and teachers, the professions you list above get their professional education 
> in graduate school.   (And musicans and teachers are both expected to 
> continue their professional education throughout their lives).

So universities _can_ give a professional education, it's just that some
have to wait for graduate school?  There are others (teachers (in some cases),
musicians, business majors) that don't have to wait.  I just would like to
see more cases where a professional education can be had at the undergraduate
level.

> There isn't enough time in a 4-year program
> to cover law *and* everything else an educated adult needs to know in order to
> practice law.  (Fess up;  I'll bet your wife's degree in Library Science
> was a Master's, right?)

Yes, she does have an MLS but I should think a four year CS program could
be more suited to the real world.  How often have you come up against
mu recursive functions?  I haven't yet.

> You can't produce an intelligent, educated graduate unless the graduate *wants*
> to become an intelligent, educated person.  As you point out, most students
> *want* pieces of paper which enable them to get jobs.  It's hard to educate
> somebody who is in college only to get the diploma.

As I mentioned in another posting, today it is hard if not impossible to
get certain jobs without that diploma/college experience.  Do not blame
someone if their priority is job first, education second.
-- 
Michael Sullivan          uunet!jarthur.uucp!aqdata!sullivan
aQdata, Inc.
San Dimas, CA

news@psueea.UUCP (Net News Account) (12/10/89)

>
>So universities _can_ give a professional education, it's just that some
>have to wait for graduate school?  There are others (teachers (in some cases),
>musicians, business majors) that don't have to wait.  I just would like to
>see more cases where a professional education can be had at the undergraduate
>level.
>
Except for Accounting, any other major from a B School can hardly be
considered a "professional degree". Even in Accounting (this is what my
ug degree is in ... I also spent 4 years as a faculty member in a B-School
teaching at both the undergrad and MBA level) what you really get is a
"pre-professional" degree. To get the professionalism, you are expected to
work for several years in order to get the CPA.  A degree in Accounting does
not prepare you in any way to become immediately productive in a CPA firm,
though for those who don't make the grade and go into private accounting
they are taught how to do journals and ledgers.
From: warren@psueea.uucp (Warren Harrison)
Path: psueea.uucp!warren

An accoutning program does cover a great deal of "general stuff" too. COurses
in marketing, production, personnel management, etc. are considered just as
important as Auditing and Tax Accounting. The goal is not to turn out
narrowly focused Accounting automaton, but rather to produce people who
knowledgeable about commerce in general and Accounting in particular.
Ask someone in the local B-school about the Common Core Requirements.
>> There isn't enough time in a 4-year program
>> to cover law *and* everything else an educated adult needs to know in order to
>> practice law.  (Fess up;  I'll bet your wife's degree in Library Science
>> was a Master's, right?)
>
>Yes, she does have an MLS but I should think a four year CS program could
>be more suited to the real world.  How often have you come up against
>mu recursive functions?  I haven't yet.
>
Interestingly enough, the trend is moving towards 5-year Accounting programs,
becuase there *isn't* time to do what needs to be done in four years.
>> You can't produce an intelligent, educated graduate unless the graduate *wants*
>> to become an intelligent, educated person.  As you point out, most students
>> *want* pieces of paper which enable them to get jobs.  It's hard to educate
>> somebody who is in college only to get the diploma.
Right on!
>
>As I mentioned in another posting, today it is hard if not impossible to
>get certain jobs without that diploma/college experience.  Do not blame
>someone if their priority is job first, education second.
Give someone a fish and they can eat tonight, teach someone how to fish
and they can eat forever. 


Warren Harrison                CSNET: warren@cs.pdx.edu
Department of Computer Science UUCP:  {ucbvax,decvax}!tektronix!psueea!warren
Portland State University      Internet: warren%cs.pdx.edu@relay.cs.net
Portland, OR 97207-0751

crm@romeo.cs.duke.edu (Charlie Martin) (12/11/89)

Apropos of multiple substreams on this, it's worth noting that Medical
School in Germany is an *undergraduate* school; you go to med school
right out of "high school", just as you might go to get a BA otherwise.

The reason they can do this is that you get into University from the
gymnasium, which isn't a place to work out but a special college-prep
high-school.  In general, universities in Germany won't accept american
students without an american BA, because otherwise they don't have
sufficient preparation to compete with gymnasium graduates.

Charlie Martin (crm@cs.duke.edu,mcnc!duke!crm) 

sullivan@aqdata.uucp (Michael T. Sullivan) (12/12/89)

From article <2065@psueea.UUCP>, by news@psueea.UUCP (Net News Account):
>
> Give someone a fish and they can eat tonight, teach someone how to fish
> and they can eat forever. 

That's not the point.  Some people would like to eat while learning
how to fish.
-- 
Michael Sullivan          uunet!jarthur.uucp!aqdata!sullivan
aQdata, Inc.
San Dimas, CA