[comp.edu] What is CS?

mouse@mcgill-vision.UUCP (der Mouse) (03/14/88)

[ Let's move this to comp.edu; that's really where it belongs now.
  This article is crossposted and I've tried to redirect followups there. ]

In article <1982@ho95e.ATT.COM>, wcs@ho95e.ATT.COM (Bill.Stewart) writes:
> In article <3730@megaron.arizona.edu> debray@arizona.edu (Saumya Debray) writes:
[ An attribution line seems to have been lost here ]
>>> I contend that exposing first-year students to a functional
>>> programming language does not fit that role.
[The referent for "that role" seems to have been lost.]
>> Assuming you're not referring to two-year trade schools that crank
>> out programmers, I disagree.  In my opinion, a primary purpose of a
>> CS degree program is to teach students the basic principles of
>> computation.
> Remember that 1st-year students, even CS students, are studying more
> than just CS100, and, if possible, they should have *some* usable
> programming knowledge as soon as possible.

It seems to me that the Computer Science curriculum should teach
Computer Science.  The art of programming does not seem to me to be a
part of Computer Science; it belongs somewhere else (software
engineering maybe?).  This is not to say that CS students shouldn't be
taught any programming, but rather that we should not pretend that
programming is really part of CS proper.

> While it's probably a Bad Thing to expose them to BASIC, whatever
> functional language you teach them had better be adequate for doing
> chemistry and physics homework, numerical integration for calculus,
> statistics for their psych classes, and the like.

Why?  If they want to learn a language so they can use it, they should
take a course in that language.  (Selecting that language can be
difficult; they may want to first take an overview course, which should
give them some idea of what languages are out there and what their
relative strong and weak points are.)

The Computer Science "main line" should, it seems to me, consider
languages only for how they model computation, which will probably have
nothing to do with how practical they are to use to solve problems in
chemistry, physics, etc.  Consider an analogy: natural languages.  A
linguist can be either an "applied" linguist or a "theoretical"
linguist.  An example of the former would be someone who wants to do
translation work; an example of the latter might be Noam Chomsky or
whatshisname Whorf.  It seems to me that the same is true of computer
languages.  One can study them to use them to get things done or one
can study them to understand them in their own right and how they model
computation.

>>> [ ... ]  I have just changed jobs.  In no interview was I asked
>>> whether I knew ML; in every interview I was asked if I knew C.

The employers you interviewed with were interested in practical work
instead of theory, obviously.  If they were trying to hire a
theoretician (unlikely; theory isn't big outside academia in most
fields), then it would make more sense to ask you whether you were
familiar with the various types of languages rather than asking for
specific languages.

					der Mouse

			uucp: mouse@mcgill-vision.uucp
			arpa: mouse@larry.mcrcim.mcgill.edu

hes@ecsvax.UUCP (Henry Schaffer) (03/24/88)

In article <1000@mcgill-vision.UUCP>, mouse@mcgill-vision.UUCP (der Mouse) writes:
>... 
> It seems to me that the Computer Science curriculum should teach
> Computer Science.  The art of programming does not seem to me to be a
> part of Computer Science; it belongs somewhere else (software
> engineering maybe?).  
I would like to disagree with this idea.  (Note that I've cut into the middle
of a paragraph - continued below.)  I see this idea of the "theory" being
isolated from the "real world" cutting into all academic fields.  Engineers
who have never seen a machine, biologists who have never seen a frog or a
flower, and now computer scientists who have never seen a program?  I see
programming as being equivilent to the lab part of science courses.  One gets
a small amount of academic credit for the lab part of a course - the work is
usually much greater than the credit hours would indicate - the lab is
considered to be a necessary part of gaining an understanding - not a 
substitute for the "Science" which is covered in the lectures.  (Unfortunately,
the lab parts of science courses have been abbreviated or dropped over the
past decade.  I believe that this is a *bad* thing, and that it has been done
mostly to save money in teaching - and that many faculty have acquiesced
because they have thought that concepts can be taught in isolation.
>           This is not to say that CS students shouldn't be
> taught any programming, but rather that we should not pretend that
> programming is really part of CS proper.
Ok, this is the rest of the paragraph - so you see I did take the first part
out of context [just a little!] - but I still disagree with the end.  I'll
argue that programming is just as much really part of CS proper as the frog,
worm and flower (anatomy) form really part of the Biological sciences proper.
(I'm not saying that programming is the core of CS, nor that identifying
flower parts is the core of biology - but there is a great difference between
being the core and not really belonging to the field.)
> ... [much deleted - I've gone on long enough] 
> 					der Mouse
--henry schaffer  n c state univ
P.S.  Isn't this isomorphic to our recent discussion on whether people
should learn arithmetic?

rgsmeb@abcom.ATT.COM (Michel Behna) (03/24/88)

From article <4807@ecsvax.UUCP>, by hes@ecsvax.UUCP (Henry Schaffer):
> In article <1000@mcgill-vision.UUCP>, mouse@mcgill-vision.UUCP (der Mouse) writes:
>>... 
>> It seems to me that the Computer Science curriculum should teach
>> Computer Science.  The art of programming does not seem to me to be a
>> part of Computer Science; it belongs somewhere else (software
>> engineering maybe?).  
> I would like to disagree with this idea.  (Note that I've cut into the middle
> of a paragraph - continued below.)  I see this idea of the "theory" being
> isolated from the "real world" cutting into all academic fields.  
>>           This is not to say that CS students shouldn't be
>> taught any programming, but rather that we should not pretend that
>> programming is really part of CS proper.

I am jumping into this conversation with both feet. ;-)
It seems there is this misconception of what Computer Science is all about.
The way I see it encompasses all fields that relate directly to computers.
Academia has divided it into discrete areas for political reasons. So now we
have computer science, computer engineering, information management systems,
math & CS, etc...  This has given a lot of people, some young and some naive,
that this is the case in the outside world and that this is the way it should
be.

In the real world you do either programming, designing, analysis, testing,
specification writing or a combination of all of these or none of these
and manage :).  They don't care much about whether you know hardware if you
work in software as above. They don't care about the beauty or elegance of
your latest algorithm unless it solves something never done before. They
care about cost and about maintainability.

Now back to the issue at hand, I feel that a BS in CS should at least prepare
the person to get a job and have the proper tools , knowledge and skills
to perform this job. As far as what language should be taught first, an
overview of the languages as a first course should be a must. Preferably
concentrating on ones that are of "real world" and academic interest.
Although I started out with a structured language, I feel that a functional
language like LISP or SNOBOL or ...(fill in your favorite)would definitely
be a lot of help to all students, because they will starting thinking in terms
of solving problems instead of sequences of instructions and coding.
This is especially true if it is taught as a first language. 

I feel that CS is really an exercise in applied logic. Any programmer worth
his weight, any teacher will tell you that once you know half a dozen languages
or so, you should be able to pick any other relatively easily. Now, I woul
like to caution people against thinking that CS is ALGORITHMS + DATA STRUCTURES
only. The knowledge you pick up in CS courses is only meant to save you time
and provide you with enough knowledge and background information on what has
been discovered so far.

'Nuff said.
Michel Behna
abcom!rgsmeb

pjh@mccc.UUCP (Peter J. Holsberg) (03/24/88)

In article <4807@ecsvax.UUCP> hes@ecsvax.UUCP (Henry Schaffer) writes:
|(Unfortunately,
|the lab parts of science courses have been abbreviated or dropped over the
|past decade.  I believe that this is a *bad* thing, and that it has been done
|mostly to save money in teaching - and that many faculty have acquiesced
|because they have thought that concepts can be taught in isolation.

In defense of the faculty: in many institutions, the question of how
many hours of lab "go" with a theory course is no longer in the hands of
the course designer/instructor.  The courts have defended this as
"managerial perrogative"!  At my place, there is tremendous pressure to
make labs 2 hours instead of 3, and to use technicians and student aides
in the lab room rather than a faculty member.  The reason is, of course,
$$$$.  Another restriction for many institutions is imposed by the
bodies that accredit curricula.  They usually have "guidelines" for the
maximum number of credits and the maximum number of mandatory
hours/work.  Clearly, "good" students will spend as much time as needed
to learn, provided that the facilities are available, but ....

-- 
Peter Holsberg                  UUCP: {rutgers!}princeton!mccc!pjh
Technology Division             CompuServe: 70240,334
Mercer College                  GEnie: PJHOLSBERG
Trenton, NJ 08690               Voice: 1-609-586-4800

windley@iris.ucdavis.edu (Phil Windley) (03/25/88)

While teaching programming to students in CS is important, I think we
should be careful not to give students the impression that CS is JUST a
collection of programming languages.  I have received mail from undergrads
at major US universities that say things like "what programming languages
should I know to be successful".  

I couldn't care less what language my students need to know to get a job
with IBM.  They should know how to program, they should be able to deal
with abstraction, they should be able to design algorithms, but they
shouldn't necessarily learn JCL, COBOL (ugh!), or even C because that's
what HP wants.  

Phil Windley
Robotics Research Lab
University of California, Davis

rgsmeb@abcom.ATT.COM (Michel Behna) (03/26/88)

From article <1522@ucdavis.ucdavis.edu>, by windley@iris.ucdavis.edu (Phil Windley):
> I couldn't care less what language my students need to know to get a job
> with IBM.  They should know how to program, they should be able to deal
> with abstraction, they should be able to design algorithms, but they
> shouldn't necessarily learn JCL, COBOL (ugh!), or even C because that's
> what HP wants.  
> 
> Phil Windley

You may not care but as someone who graduated and had to find a job I think
you are wrong. Academia has the singular privilege of being able to afford
to hire unknowledgeable (read unskilled) people and training them.

C as a language is a good bet, so is COBOL and eventually ADA. As far as
Pascal or other languages, Good LUCK!!! Fortran is still widely used in
engineering apllications and Lisp in AI.

I agree with you about what they should be able to do(design, abstract,..)
but what good is it to you if the person is unable to translate these into
a language that a computer can understand. It's like having a foreign professor
try to teach you a subject but he is unable to do it in English.

But more important, MOST companies want you to be productive as quickly as
possible - this is especially true if you work for some small company - as they
don't have either the time or resources to devote to your training. Or they may
have deadlines that they have to meet. Furthermore, in a work environment you
don't have the luxury of exploring principles and theories as in a classroom
and so you should concentrate on picking those in class in the subject you're
interested in.

The real world wants productive and bright people! If you're bright they're 
willing to devote a lot of effort to training you but if you are unproductive
BYE BYE!!! This is not to say that design, analysis, ... are non productive
but that rarely do you start as a senior systems analyst. There are a few
positions out there which require research but they are rare.

Michel Behna
amdahl!abcom!rgsmeb

tlh@cs.purdue.EDU (Thomas L. Hausmann) (03/26/88)

In article <336@abcom.ATT.COM>, rgsmeb@abcom.ATT.COM (Michel Behna) writes:
> From article <4807@ecsvax.UUCP>, by hes@ecsvax.UUCP (Henry Schaffer):
> > In article <1000@mcgill-vision.UUCP>, mouse@mcgill-vision.UUCP (der Mouse) writes:
> >>... 
> >> It seems to me that the Computer Science curriculum should teach
> >> Computer Science.  The art of programming does not seem to me to be a
> >> part of Computer Science; it belongs somewhere else (software
> >> engineering maybe?).  
> >>           This is not to say that CS students shouldn't be
> >> taught any programming, but rather that we should not pretend that
> >> programming is really part of CS proper.
> 
> It seems there is this misconception of what Computer Science is all about.
> The way I see it encompasses all fields that relate directly to computers.

This is very broad and does little in defining CS.  (e.g.  what is a
a direct relationship?)

First of all I have yet to find a satisfactory definition of CS.
Second, any definition of what CS is will probably be too restrictive.  
Third, no one definition is going to please everyone.

However, for the sake of discussion let me include a proposed definition that
is intended to distinguish CS from CE and CIS.  Please note that it is a 
FUNCTIONAL definition and not a COMPREHENSIVE definition.  That is, it 
defines "stuff" sufficiently so as to apply the definition.

From CACM Vol 29 #3 (March 1986) in an article entitled "A Model
Curriculum for a Liberal Arts Degree in Computer Science."  [Words in
all caps are my emphasis.]

     Computer science is the systematic study of algorithms and data
     structures, specifically

     (1)  their formal properties,
     (2)  their mechanical and linguistic realizations, and
     (3)  their applications.

     Before describing the curriculum that follows from this
     definition it is important to reaffirm the essential ordering of 
     emphasis among the three components listed above.  The "formal 
     properties (1) of algorithms and data structures must be emphasized
     over their specific machines and languages (2), as well as their 
     applications (3), in order for a program to be legitimately called
     COMPUTER SCIENCE.  If (2) takes precedence over (1) then the program
     might be called computer engineering;  if (3) takes precedence, the
     program might be called information systems.

It is a "tight" definition in the sense that it does not attempt to capture
EVERYTHING that CS is (whatever it is..)  For example, CS on the one hand
may be considered a branch of "applied mathmatics." The above definition would
"push" graph theory, combinatiorics, Boolean algebra, into mathematics and
out of CS.

I am not going to say this is a good definition or a bad definition of CS 
because it is a "working" definition.

> ... I feel that a BS in CS should at least prepare
> the person to get a job and have the proper tools , knowledge and skills
> to perform this job. 

This suggests to me that there is a "vocational" emphasis in mind.  I have said
in the past that it is not a Univerisity's place to perform "vocational training."
Granted, that one may be able to get a job with a BS in CS, but to say that
the worth of a BS is judged by one's ability to perform jobs skills is wrong.
(It is a subtle distinction!)

> Michel Behna
> abcom!rgsmeb

-Tom

-------------------------------------------------------------------------------
Tom Hausmann       Dept. of Computer Sciences     Purdue University
tlh@mordred.cs.purdue.edu    | My ideas?  There has never been an original
...!purdue!tlh               | thought since Plato.

rgsmeb@abcom.ATT.COM (Michel Behna) (03/29/88)

From article <3640@medusa.cs.purdue.edu>, by tlh@cs.purdue.EDU (Thomas L. Hausmann):
> In article <336@abcom.ATT.COM>, rgsmeb@abcom.ATT.COM (Michel Behna) writes:
>> From article <4807@ecsvax.UUCP>, by hes@ecsvax.UUCP (Henry Schaffer):
>> > In article <1000@mcgill-vision.UUCP>, mouse@mcgill-vision.UUCP (der Mouse) writes:
>> ... I feel that a BS in CS should at least prepare
>> the person to get a job and have the proper tools , knowledge and skills
>> to perform this job. 
> This suggests to me that there is a "vocational" emphasis in mind.  I have said
> in the past that it is not a Univerisity's place to perform "vocational training."
> Granted, that one may be able to get a job with a BS in CS, but to say that
> the worth of a BS is judged by one's ability to perform jobs skills is wrong.
> (It is a subtle distinction!)
> Tom Hausmann       Dept. of Computer Sciences     Purdue University

Why is it that universities always seem to resent training people to earn a
living? Universities have become the only source of higher education and have
as such cornered the market. 

I have always felt that universities are training grounds for people. There
people are trained to think. What seems to lack in a lot of curricula is a
training of how to apply that in the real world.
The pursuit of knowledge for its own sake is admirable but I have to disagree
on how that will feed a hungry mouth although it may very well nourish a
hungry mind.

What is the worth of a BS? $7,000 in a state school or more than $30,000 in a
private school. Is that all it means? Or is it the amount of knowledge that
got crammed into your head? How many people remember all or most of what they
were taught? How many care to? What is really frightening is the amount that
is forgotten. What is a BS supposed to prove anyway? Where is it supposed to
lead you? to another degree? 

This resistance from universities to train people for the real world is
baffling. What's wrong with that? Regardless of what universities are 
supposed to or not do, I have to say that your "definition" of CS is a good
one. However, I would prefer that all 3 parts of the curriculum are equally
stressed. And furthermore I would like to add the science/art of programming
as a fourth part.

Michel Behna

pete@wor-mein.UUCP (Pete Turner) (03/30/88)

In article <364@abcom.ATT.COM> rgsmeb@abcom.ATT.COM (Michel Behna) writes:
>C as a language is a good bet, so is COBOL and eventually ADA. As far as
>Pascal or other languages, Good LUCK!!! Fortran is still widely used in
>engineering apllications and Lisp in AI.
>
>I agree with you about what they should be able to do(design, abstract,..)
>but what good is it to you if the person is unable to translate these into
>a language that a computer can understand. It's like having a foreign professor
>try to teach you a subject but he is unable to do it in English.

I disagree with this entire line of argument, based on both my academic and
professional experience.  If you have a good foundation in the generalities,
then any decent computer language can be learned from a book.  That is exactly
what I did with C at my first job (actually, I am somewhat dubious about C's
qualifications as a "decent" language) - I was reasonably up to speed within
a couple of weeks.  I certainly received no complaints from my employer.

If an employer is screening resumes for entry level programmers/engineers
on the basis of specific language/OS experience, then I, for one, wouldn't
want to work for them - they're probably running a hack shop!

tlh@cs.purdue.EDU (Thomas L. Hausmann) (03/31/88)

In article <364@abcom.ATT.COM>, rgsmeb@abcom.ATT.COM (Michel Behna) writes:
> From article <1522@ucdavis.ucdavis.edu>, by windley@iris.ucdavis.edu (Phil Windley):
> > I couldn't care less what language my students need to know to get a job
> > with IBM.  They should know how to program, they should be able to deal
> > with abstraction, they should be able to design algorithms, but they
> > shouldn't necessarily learn JCL, COBOL (ugh!), or even C because that's
> > what HP wants.  
> > Phil Windley
> You may not care but as someone who graduated and had to find a job I think
> you are wrong. Academia has the singular privilege of being able to afford
> to hire unknowledgeable (read unskilled) people and training them.

Do you also think it is a Univerisity's place to train people for industrial
jobs?  If you want to learn SKILLS while in school, internships and coop programs
are your options.  You MAY get job specific skills at a college or university,
but to say a university "trains" people is not accurate.  (As I have said before, 
I do not think it is a univerisity's place to "train" people for a "job."  Nor
do I know of any university's stated MISSION including "high placement for
our graduates.")

> I agree with you about what they should be able to do(design, abstract,..)
> but what good is it to you if the person is unable to translate these into
> a language that a computer can understand. 

Do you measure the worth of a computer scientist by how well they program?
Admittedly, programming is a SKILL largely taken for granted in universities
and within the system.  But whether a university should take the time to
train the students to be better programmers is unclear (and I am against it.)
 
> But more important, MOST companies want you to be productive as quickly as
> possible ...

True.
  
> The real world wants productive and bright people! If you're bright they're 
> willing to devote a lot of effort to training you but if you are unproductive
> BYE BYE!!! This is not to say that design, analysis, ... are non productive
> but that rarely do you start as a senior systems analyst. There are a few
> positions out there which require research but they are rare.
> Michel Behna
> amdahl!abcom!rgsmeb


Perhaps I am just picking on word choice above Michel.  What you say of the
"real world" is of course true.  It is just that I hold this idealized(?)
view of how universities should be.

-Tom

      .^.^.        Tom Hausmann 
     . O O .       tlh@mordred.cs.purdue.edu    ( ARPA )
      . v .        ...!purdue!tlh   ( UUCP  )
     / | | \
     ./   \.       "Whooo do ya think you're foolin' "
______mm.mm_____
       \_/

tlh@cs.purdue.EDU (Thomas L. Hausmann) (03/31/88)

In article <439@abcom.ATT.COM>, rgsmeb@abcom.ATT.COM (Michel Behna) writes:
> From article <3640@medusa.cs.purdue.edu>, by tlh@cs.purdue.EDU (Thomas L. Hausmann):
> > In article <336@abcom.ATT.COM>, rgsmeb@abcom.ATT.COM (Michel Behna) writes:
> >> From article <4807@ecsvax.UUCP>, by hes@ecsvax.UUCP (Henry Schaffer):
> >> > In article <1000@mcgill-vision.UUCP>, mouse@mcgill-vision.UUCP (der Mouse) writes:
> >> ... I feel that a BS in CS should at least prepare
> >> the person to get a job and have the proper tools , knowledge and skills
> >> to perform this job. 
> > This suggests to me that there is a "vocational" emphasis in mind. ...
> 
> This resistance from universities to train people for the real world is
> baffling. What's wrong with that? 

To me, a job training at a university would have defeated the purpose in attending
a school in the first place.  For if I went to school to become a programmer,
it would have been more efficient for me to learn a language and then get a job 
with that.  Please no flames about "just programming.." programming involves
a great deal of problem solving not directly obtainable by just programming.

Clearly we are both aware that a university does much more than 
qualify you to obtain work.  To me this is the key.  A univerisity gives
you a perspective that the world is more than your job.  A university that
cuts its liberal education requirements in favor of courses to "prepare
people for the real world" short-changes the students and defeats its mission.

> However, I would prefer that all 3 parts of the curriculum are equally
> stressed. And furthermore I would like to add the science/art of programming
> as a fourth part.
> Michel Behna

Like I said,  no definition will satisfy everyone.


      .^.^.        Tom Hausmann 
     . O O .       tlh@mordred.cs.purdue.edu    ( ARPA )
      . v .        ...!purdue!tlh   ( UUCP  )
     / | | \
     ./   \.       "Whooo do ya think you're foolin' "
______mm.mm_____
       \_/

neubauer@bsu-cs.UUCP (Paul Neubauer) (03/31/88)

In article <3684@medusa.cs.purdue.edu> tlh@cs.purdue.EDU (Thomas L. Hausmann) writes:
>In article <364@abcom.ATT.COM>, rgsmeb@abcom.ATT.COM (Michel Behna) writes:
>> From article <1522@ucdavis.ucdavis.edu>, by windley@iris.ucdavis.edu (Phil Windley):
>> > I couldn't care less what language my students need to know to get a job
>> > with IBM.  They should know how to program, they should be able to deal
>> > with abstraction, they should be able to design algorithms, but they
>> > shouldn't necessarily learn JCL, COBOL (ugh!), or even C because that's
>> > what HP wants.  
>> > Phil Windley
>> You may not care but as someone who graduated and had to find a job I think
>> you are wrong. Academia has the singular privilege of being able to afford
>> to hire unknowledgeable (read unskilled) people and training them.
>
>Do you also think it is a Univerisity's place to train people for industrial
>jobs?  If you want to learn SKILLS while in school, internships and coop programs
>are your options.  You MAY get job specific skills at a college or university,
>but to say a university "trains" people is not accurate.  (As I have said before, 
>I do not think it is a univerisity's place to "train" people for a "job."  Nor
>do I know of any university's stated MISSION including "high placement for
>our graduates.")
>
My $.02 may or may not be worth even that, but I think both Tom and Michel
are both right and wrong.  Tom is certainly right about how most (if not all
universities) perceive themselves.  Many, if not most, students seem to
believe that the purpose of a university is to prepare them for a job.
NO!!  A purpose of a university (not "the" purpose, "a" purpose) is to
prepare you for LIFE.  This does not mean training you to do some particular
job, but teaching and encouraging you to THINK.  The philosophy of your
typical university (and unfortunately few students and almost as few
businesspeople seem to realize this) is that the particular subject matter
is less important (to an undergraduate) than the fact that you are looking
at SOME subject in reasonable depth.  If you learn how to apply yourself and
think about a subject, and learn how to learn, then you will have done
yourself more long-term good than simply getting a first job can do you.

>Do you measure the worth of a computer scientist by how well they program?
>Admittedly, programming is a SKILL largely taken for granted in universities
>and within the system.  But whether a university should take the time to
>train the students to be better programmers is unclear (and I am against it.)

However, I part company with Tom at this point.  If the major subject is
computer science, then ideally a student should get what nearly everyone
considers to be a good grounding in all of the major areas of computer
science study.  Computer science clearly includes the analysis of algorithms
and of data structures.  It also includes computability theory and numerical
analysis, "artificial intelligence", language translation (compiler design),
computer hardware and architecture,....  But, computer science also includes
a component of what is now called "software engineering."  Perhaps someday
this will be formally split off from CS and "software engineering" will no
more be the province of CS departments than chemical engineering is the
province of chemistry departments today.  There does appear to be some
sentiment for that approach, but in most places, it does not seem to be much
more than sentiment. ("WHAT?  Give up our bread and butter courses? How are
we going to support our grad students?" :-) I am aware that constraints of
time and $$$ place a limit on how well the ideal can be approached, but I
contend that any CS student (grad or undergrad) is woefully shortchanged
without this important subdiscipline of CS.  Furthermore, I contend that
this is an area that cannot be taught in a relative vacuum.  Just as a
course in the analysis of algorithms normally demands that the student
actually analyze some algorithms, "software engineering" should demand that
the student actually analyze, plan and write some software, preferably on a
scale that forces more attention to design than the typical weekly project.
It may or may not be necessary to have a course with the name "software
engineering."  It may or may not even be possible within the constraints of
an existing situation.  However, it should not be completely ignored either.
A computer scientist (even a fledgling computer scientist) needs to know
about design and coding practices as surely as s/he needs to know about
algorithms, data structures and architectures.  It is unrealistic to think
that such knowledge will just happen.  Sorry, Tom, while I concur with you
about the undesireability of focusing on teaching (for example) C or COBOL
specifically as job training, I think you're dead wrong on the subject of
whether relevant (yes, I know this is begging the question) skills should be
the subject of some significant focus.

>Perhaps I am just picking on word choice above Michel.  What you say of the
>"real world" is of course true.  It is just that I hold this idealized(?)
>view of how universities should be.

Perhaps I am just picking on Tom's word choice, but I also hold an idealized
view of what and how universities should be.  I am in complete agreement
with (the excerpt from) Phil's cited posting.  A university need not and
should not simply follow the lead of whoever the local employer is likely to
be.  I do not feel that students would be well-served by such pandering, but
I also feel that students would not be well-served by ignoring all training
in how to be better programmers.  A programmer need not be a computer
scientist, but a computer scientist usually had better be a reasonably good
programmer.

/*end of soapbox mode*/

-- 
Paul Neubauer         neubauer@bsu-cs.UUCP
                      <backbones>!{iuvax,pur-ee,uunet}!bsu-cs!neubauer

seibel@cgl.ucsf.edu (George Seibel%Kollman) (03/31/88)

In article <3684@medusa.cs.purdue.edu> tlh@cs.purdue.EDU (Thomas L. Hausmann) writes:
>In article <364@abcom.ATT.COM>, rgsmeb@abcom.ATT.COM (Michel Behna) writes:
>> From article <1522@ucdavis.ucdavis.edu>, by windley@iris.ucdavis.edu (Phil Windley):
>> > I couldn't care less what language my students need to know to get a job
>> > with IBM.  They should know how to program, they should be able to deal
>> > with abstraction, they should be able to design algorithms, but they
>> > shouldn't necessarily learn JCL, COBOL (ugh!), or even C because that's
>> > what HP wants.  
>> > Phil Windley
>> You may not care but as someone who graduated and had to find a job I think
>> you are wrong. Academia has the singular privilege of being able to afford
>> to hire unknowledgeable (read unskilled) people and training them.
>
>Do you also think it is a Univerisity's place to train people for industrial
>jobs?  If you want to learn SKILLS while in school, internships and coop programs
>are your options.  You MAY get job specific skills at a college or university,
>but to say a university "trains" people is not accurate.  [...]

I'll side with Michel on this one.  The University seems to have cornered
the market on prestige and lofty knowledge, but to put knowledge to work
and do something practical with it is somehow unclean.  What's the deal
here?  Why can't we be both literate and skilled?  I don't believe that
our society can afford too many "armchair computer scientists".   We need
people who are capable of putting ideas into action.  I notice some of the
most successful scientists in my field are people who have technical
skills as well as theoretical expertise.  When they have an idea, they
can put it into practice quickly, instead of having to cajole some postdoc
or grad student into coding it up for them.   From my experience with
wide-eyed CS grads who were incapable of dealing with real world problems,
I suggest that CS could stand a dose of reality.

George Seibel
Dept. of Pharmaceutical Chemistry
UC San Francisco

hugo@eleazar.Dartmouth.EDU (Peter Su) (03/31/88)

In article <1000@mcgill-vision.UUCP> mouse@mcgill-vision.UUCP (der Mouse) writes:
>It seems to me that the Computer Science curriculum should teach
>Computer Science.  The art of programming does not seem to me to be a
>part of Computer Science; it belongs somewhere else (software
>engineering maybe?).  This is not to say that CS students shouldn't be
>taught any programming, but rather that we should not pretend that
>programming is really part of CS proper.
>

It seems to me that programming is an intimate part of computer science, if for no
other reason than it provides a vehicle for experimentally testing theoretical
results.  Historically, CS has always been a multifacited area, containing both
theory and practice.  I think that's what makes it more interesting than other
fields (like say, Math) that only provide one view of the world.

Rememer, one of the great works written about computer science was called "The Art
of Computer Programming."  What made it great what the fact that it containted a
mix of programming, mathematics and neat ideas in the field of algorithms.

Pete

-- 
CSNET: hugo@darmouth.edu                  UUCP: hugo@eleazar.UUCP (Sorry)
ARPA: hugo%dartmouth.edu@relay.cs.net

QUOTE:"Our president's crazy!  Did you hear what he said?" - Talking Heads

mcdonald@uxe.cso.uiuc.edu (04/02/88)

>I disagree with this entire line of argument, based on both my academic and
>professional experience.  If you have a good foundation in the generalities,
>then any decent computer language can be learned from a book.  That is exactly
>what I did with C at my first job (actually, I am somewhat dubious about C's
>qualifications as a "decent" language) - I was reasonably up to speed within
>a couple of weeks.  I certainly received no complaints from my employer.

I disagree seriously on this, if by "generalities" you mean theory. I
would say that learning ONE language COMPLETELY would be sufficient.
I also think it important that students be taught how to do at least
a few thing that the target language is NOT designed for: writing
a rudimentary editor in Fortran, or doing differential equations in Prolog..
That way they will see the reason for the Towel of Babel existing in
computer languages: it's there for a good reason.

Doug McDonald

rgsmeb@abcom.ATT.COM (Michel Behna) (04/02/88)

From article <3684@medusa.cs.purdue.edu>, by tlh@cs.purdue.EDU (Thomas L. Hausmann):
> In article <364@abcom.ATT.COM>, rgsmeb@abcom.ATT.COM (Michel Behna) writes:
>> From article <1522@ucdavis.ucdavis.edu>, by windley@iris.ucdavis.edu (Phil Windley):
> Do you measure the worth of a computer scientist by how well they program?
> Admittedly, programming is a SKILL largely taken for granted in universities
> and within the system.  But whether a university should take the time to
> train the students to be better programmers is unclear (and I am against it.)

I think that universities should! I've seen too many so-called _computer
scientists_ that have come out of college and that end up as programmers. The
worst part of it is that they do not know how to program. They figure that if
they can create a nifty algorithm it does not matter if nobody else understands
it or if they are unable to maintain six months from now.

No, universities should not train people for high placement jobs BUT they
should not ignore reality. Coop programs are not always available and most
CS programs lack real-world relevant experience. Software-engineering is
under-emphasized(de-emphasized). I have had teachers that tried to teach me
a language and failed miserably because they, themselves, were unable to
program in that language. They could not implement what they taught.

rgsmeb@abcom.ATT.COM (Michel Behna) (04/02/88)

From article <3686@medusa.cs.purdue.edu>, by tlh@cs.purdue.EDU (Thomas L. Hausmann):
> In article <439@abcom.ATT.COM>, rgsmeb@abcom.ATT.COM (Michel Behna) writes:
>> From article <3640@medusa.cs.purdue.edu>, by tlh@cs.purdue.EDU (Thomas L. Hausmann):
>> > In article <336@abcom.ATT.COM>, rgsmeb@abcom.ATT.COM (Michel Behna) writes:
>> >> From article <4807@ecsvax.UUCP>, by hes@ecsvax.UUCP (Henry Schaffer):
>> >> > In article <1000@mcgill-vision.UUCP>, mouse@mcgill-vision.UUCP (der Mouse) writes:
> Clearly we are both aware that a university does much more than 
> qualify you to obtain work.  To me this is the key.  A univerisity gives
> you a perspective that the world is more than your job.  A university that
> cuts its liberal education requirements in favor of courses to "prepare
> people for the real world" short-changes the students and defeats its mission.

Good Luck! if you think that you can get a job by just learning a language
and hold it very long! You would stagnate like a swamp.

And who said anything about cutting liberal arts programs. I have a BA in
French Literature and Biology and a BS in Mathematics and Computer Science.
All I said is that a little real world influence in a program will do it a
lot more good, not harm!!

I switched to CS because I could not get a job with my BA. How many CS
graduates know how to program an IBM PC? How many know what a LAN is and
how it works? How many understand that tech specs are the only reason many
people buy computers of a particular brand? How many can justify it?

Idealism is a beautiful thing but it does not work as good as realism!

Michel Behna

rgsmeb@abcom.ATT.COM (Michel Behna) (04/02/88)

From article <10771@cgl.ucsf.EDU>, by seibel@cgl.ucsf.edu (George Seibel%Kollman):
> In article <3684@medusa.cs.purdue.edu> tlh@cs.purdue.EDU (Thomas L. Hausmann) writes:
>>In article <364@abcom.ATT.COM>, rgsmeb@abcom.ATT.COM (Michel Behna) writes:
>>> From article <1522@ucdavis.ucdavis.edu>, by windley@iris.ucdavis.edu (Phil Windley):
> I'll side with Michel on this one.  The University seems to have cornered
> the market on prestige and lofty knowledge, but to put knowledge to work
> and do something practical with it is somehow unclean.  
[stuff deleted]
>  I notice some of the
> most successful scientists in my field are people who have technical
> skills as well as theoretical expertise.  

I think you've hit upon the problem here!

I also think that computers will become pervasive in our society that people
cannot afford to be computer illiterate. How many programmers got hired to
program an application that they have no understanding of and botched it up?

Universities are a practical way of acquiring knowledge, so where is the
idealism? What happened to the renaissance man?

Why don't we all go back to learning on our own? Isn't the scientific method
supposed to work for universities? Observe reality and then postulate your
hypothesis ( curriculum).

Aren't teachers supposed to impart me with knowledge that I need and want
instead of what they think they should teach?

I know that I could have used a couple of courses in typing. Programming
involves a lot of it! I would ceratinly feel more productive if I could
type better!

Amen!

tlh@cs.purdue.EDU (Thomas L. Hausmann) (04/02/88)

In article <10771@cgl.ucsf.EDU>, seibel@cgl.ucsf.edu (George Seibel%Kollman) writes:
> In article <3684@medusa.cs.purdue.edu> tlh@cs.purdue.EDU (Thomas L. Hausmann) writes:
> >In article <364@abcom.ATT.COM>, rgsmeb@abcom.ATT.COM (Michel Behna) writes:
> >> From article <1522@ucdavis.ucdavis.edu>, by windley@iris.ucdavis.edu (Phil Windley):
> >> > I couldn't care less what language my students need to know to get a job
> >> > with IBM.  They should know how to program, they should be able to deal
> >> > with abstraction, they should be able to design algorithms, but they
> >> > shouldn't necessarily learn JCL, COBOL (ugh!), or even C because that's
> >> > what HP wants.  
> >> > Phil Windley
> >> You may not care but as someone who graduated and had to find a job I think
> >> you are wrong. Academia has the singular privilege of being able to afford
> >> to hire unknowledgeable (read unskilled) people and training them.
> >
> >Do you also think it is a Univerisity's place to train people for industrial
> >jobs?  If you want to learn SKILLS while in school, internships and coop ...
> 
> I'll side with Michel on this one.  The University seems to have cornered
> the market on prestige and lofty knowledge, but to put knowledge to work
> and do something practical with it is somehow unclean.  What's the deal
> here?  Why can't we be both literate and skilled?  

I don't believe that anyone advocates "literacy" or "skill" (read "well-rounded
background" and "good programming skills" (?)) in absence of the other.  Michel
and I differ on which should be emphasized.  I am (of course) influenced by my
liberal arts undergraudate degree, but my experience at Purdue has not changed
my opinion.  Good programmers are problem solvers who can encode instructions.
[not the other way around - to me]


> I don't believe that
> our society can afford too many "armchair computer scientists".   

What do you mean by "armchair computer scientists".     

> From my experience with
> wide-eyed CS grads who were incapable of dealing with real world problems,

By this, I take it to mean that you found CS grads who were not fast programmers.
Or, CS grads who had difficulties applying their knowledge.

> I suggest that CS could stand a dose of reality.

Every discipline may be plaugued by graduates who have difficulties making the
connection between theory and practice.   Not to sound trite but is this what you 
mean by "reality".

> George Seibel
> Dept. of Pharmaceutical Chemistry
> UC San Francisco

-Tom


      .^.^.        Tom Hausmann 
     . O O .       tlh@mordred.cs.purdue.edu    ( ARPA )
      . v .        ...!purdue!tlh   ( UUCP  )
     / | | \
     ./   \.       "Whooo do ya think you're foolin' "
______mm.mm_____
       \_/

dstalder@gmu90x.UUCP (Darren Stalder) (04/02/88)

This is only marginally related to the topic at hand.  go ahead and
flame me if you desire, they will be ignored.

A college professor and I were talking about what should really be
taught in a programming course to prepare them for the real world.  

My suggestions were:  Give someone a piece of spaghetti code that does
one thing.  Give them some trivial mods to get it to do the same thing
only slightly different.  Tell them that it is due tomorrow and that
the entire thing needs to be documented in full.

His suggestions:  Give them a project and tell them it needs to do
this.  Give them a data set that isnt valid.  Then halfway to the due
date, change what the program needs to do and tell them it needs to be
done in 2 days.

Just a little comment from your local reality checker..
--
                  Torin/Darren Stalder/Wolf
Blessed         Internet: dstalder@gmuvax2.gmu.edu
  Be!           Bitnet:   dstalder@gmuvax
                ATTnet:   1-703-352-8124
      Hail      uucp:     multiverse!uunet!pyrdc!gmu90x!dstalder
        Eris!   Snail:    PO Box 405/Fairfax, VA 22030/USA
DISCLAIMER: I have enough problems getting credit what I do do for
            work, much less this stuff.

rgsmeb@abcom.ATT.COM (Michel Behna) (04/03/88)

From article <906@gmu90x.UUCP>, by dstalder@gmu90x.UUCP (Darren Stalder):
> A college professor and I were talking about what should really be
> taught in a programming course to prepare them for the real world.  

You forgot the most realistic one:
Find a job. Get along with your peers and boss. Get a promotion. Have
a family. Raise your kids. And die!

But seriously,
Figure out what the user wants in H/W and S/W. Present a complete argument
for your solution. Spec it out and have the user sign-off on it. Start design
and analysis. User changes his mind and start all over again. Implement this
and test. Install at user site. All this was to be done last year, and for
$100.00....

-- 
Michel Behna
"Unix is unique!"
rgsmeb@abcom.att.com
{ncsc5,codas}!abcom!rgsmeb

jefu@pawl23.pawl.rpi.edu (Jeffrey Putnam) (04/03/88)

In article <568@abcom.ATT.COM> rgsmeb@abcom.ATT.COM (Michel Behna) writes:
>From article <3684@medusa.cs.purdue.edu>, by tlh@cs.purdue.EDU (Thomas L. Hausmann):
>> In article <364@abcom.ATT.COM>, rgsmeb@abcom.ATT.COM (Michel Behna) writes:
>> Do you measure the worth of a computer scientist by how well they program?
>> Admittedly, programming is a SKILL largely taken for granted in universities
>> and within the system.  But whether a university should take the time to
>> train the students to be better programmers is unclear (and I am against it.)

>I think that universities should! I've seen too many so-called _computer
>scientists_ that have come out of college and that end up as programmers. The
>worst part of it is that they do not know how to program. They figure that if
>they can create a nifty algorithm it does not matter if nobody else understands
>it or if they are unable to maintain six months from now.

What bothers me is that many of these so-called computer scientists
dont understand the very real problems involved in implementing the
algorithms, things like interaction with paging, disk io problems and
so on.  I remember one large computational type program that was
blythely running through large arrays across pages (rather than
through them) so the application paged the machine to death (yes, the
order could have been changed).  Written by a computer scientist no
doubt (actually i dont know who wrote it, but this was typical of the
kind of mistake that i have seen computer scientists make).

I have also been bothered by the mindset of many "computer scientists"
who seem to think that only computer science is pure and nice and the
people who actually write code are somehow impure and nasty.  This
species often refuses to learn anything about the systems and programs
that they must use and like to use others as walking manuals and coders.
These people are usually afflicted with a firm belief in their innate
superiority and as a result probably dont get as good results as they
might otherwise.

On the other hand, i know several computer scientists who are primarily
interested in theory but who keep both feet firmly planted in the machine -
people who are not afraid of coding and who really understand the problems
and rewards of actually building systems - and these people tend to 
impress me more with what they do than the other type.  

But then, i am coming to believe that a programming course should be
required of _all_ students - including humanities students and all. 
Computers are increasingly common in all disciplines and workplaces and
a good programming course is the best way to understand the problems and
advantages of computer use.

jeff putnam  
{jefu%pawl -or- jeff_putnam%rpitsmts}@itsgw.rpi.edu
"People would rather believe a simple lie than the complex truth."

hes@ecsvax.UUCP (Henry Schaffer) (04/04/88)

In article <607@imagine.PAWL.RPI.EDU>, jefu@pawl23.pawl.rpi.edu (Jeffrey Putnam) writes:
> ...
> But then, i am coming to believe that a programming course should be
> required of _all_ students - including humanities students and all. 
> Computers are increasingly common in all disciplines and workplaces and
> a good programming course is the best way to understand the problems and
> advantages of computer use.
> 
  Sometimes I agree with this point of view - especially if "programming"
is interpreted in a general sense.  The programming course for students
in science and engineering would probably be a fairly standard course
using FORTRAN or Pascal.  Would it make sense for the "programming" for
students in the business curriculum to use a spreadsheet as its
language?  I've always wanted to teach a programming course to students
in the humanities and use SNOBOL4 as the language (maybe I would want
to use ICON today.)  I've never had the opportunity - but I think it
would be fascinating to see if students who were motivated by natural
languages and the manipulation of words would respond to a computer
language which facilitated such uses.

  Does teaching students to use a spreadsheet or a math manipulator
(e.g. TK-solver or MathCad, ...) meet your requirement for what 
teaching programming is supposed to do?

> jeff putnam  
> {jefu%pawl -or- jeff_putnam%rpitsmts}@itsgw.rpi.edu

--henry schaffer  n c state univ

tlh@cs.purdue.EDU (Thomas L. Hausmann) (04/04/88)

In article <568@abcom.ATT.COM>, rgsmeb@abcom.ATT.COM (Michel Behna) writes:
> From article <3684@medusa.cs.purdue.edu>, by tlh@cs.purdue.EDU (Thomas L. Hausmann):
> > In article <364@abcom.ATT.COM>, rgsmeb@abcom.ATT.COM (Michel Behna) writes:
> > ...  But whether a university should take the time to
> > train the students to be better programmers is unclear (and I am against it.)
> 
> I think that universities should! I've seen too many so-called _computer
> scientists_ that have come out of college and that end up as programmers. The
> worst part of it is that they do not know how to program. ...
> 


OK, we now have policy statements from concerned parties.  Perhaps Michel and
I can discuss things further via e-mail.


Hope you all had a nice Easter weekend.

-Tom

-------------------------------------------------------------------------------
Tom Hausmann       Dept. of Computer Sciences     Purdue University
tlh@mordred.cs.purdue.edu    | My ideas?  There has never been an original
...!purdue!tlh               | thought since Plato.

tlh@cs.purdue.EDU (Thomas L. Hausmann) (04/04/88)

In article <569@abcom.ATT.COM>, rgsmeb@abcom.ATT.COM (Michel Behna) writes:
> From article <3686@medusa.cs.purdue.edu>, by tlh@cs.purdue.EDU (Thomas L. Hausmann):
> > In article <439@abcom.ATT.COM>, rgsmeb@abcom.ATT.COM (Michel Behna) writes:
> I switched to CS because I could not get a job with my BA. How many CS
> graduates know how to program an IBM PC? How many know what a LAN is and
> how it works? How many understand that tech specs are the only reason many
> people buy computers of a particular brand? How many can justify it?
> 
> Michel Behna



You and I are in CS for two very different reasons.  I suggest we discuss this further
via e-mail.

-Tom


      .^.^.        Tom Hausmann 
     . O O .       tlh@mordred.cs.purdue.edu    ( ARPA )
      . v .        ...!purdue!tlh   ( UUCP  )
     / | | \
     ./   \.       "Whooo do ya think you're foolin' "
______mm.mm_____
       \_/

jefu@pawl18.pawl.rpi.edu (Jeffrey Putnam) (04/04/88)

In article <4859@ecsvax.UUCP> hes@ecsvax.UUCP (Henry Schaffer) writes:
>In article <607@imagine.PAWL.RPI.EDU>, jefu@pawl23.pawl.rpi.edu (Jeffrey Putnam) writes:
>> ...
>> But then, i am coming to believe that a programming course should be
>> required of _all_ students - including humanities students and all. 
>> Computers are increasingly common in all disciplines and workplaces and
>> a good programming course is the best way to understand the problems and
>> advantages of computer use.




>                 ... Would it make sense for the "programming" for
>students in the business curriculum to use a spreadsheet as its
>language?  I've always wanted to teach a programming course to students
>in the humanities and use SNOBOL4 as the language (maybe I would want
>to use ICON today.)  I've never had the opportunity - but I think it
>would be fascinating to see if students who were motivated by natural
>languages and the manipulation of words would respond to a computer
>language which facilitated such uses.

>  Does teaching students to use a spreadsheet or a math manipulator
>(e.g. TK-solver or MathCad, ...) meet your requirement for what 
>teaching programming is supposed to do?

I dont think so - though i have certainly considered it.  I would
not favor spreadsheets or math programs for a couple reasons.  First,
these programs are in fairly general use and it is likely that people
will use them at some point naturally, and i believe it is a good idea
to expose them to something that they might not normally see.  But 
more fundamentally, i would prefer a "real" programming language as 
it is an opportunity not just to teach programming, but to teach something
about the way computers work, the way programmers work, the way
algorithms are described and implemented, and how they can use this
stuff to actually build programs that will solve problems they might
encounter.  

I was thinking of either a lisp family language (to minimize syntax
woes) or something like ICON but with graphics extensions.  I would
focus on graphics (given an appropriate system) or string processing -
primarily non-mathematical stuff to ease math anxiety.  Graphics, 
even given math anxiety, would be nice because you can _see_ what
is going on and there are some interesting things to do that are
quite accessible.  String processing is of fairly general interest
as it doesnt involve math and there are some fun problems that
are also accessible.


jeff putnam  
{jefu%pawl -or- jeff_putnam%rpitsmts}@itsgw.rpi.edu
"People would rather believe a simple lie than the complex truth."

hugo@eleazar.Dartmouth.EDU (Peter Su) (04/04/88)

In article <607@imagine.PAWL.RPI.EDU> jefu@pawl23.pawl.rpi.edu (Jeffrey Putnam) writes:
>But then, i am coming to believe that a programming course should be
>required of _all_ students - including humanities students and all. 
>Computers are increasingly common in all disciplines and workplaces and
>a good programming course is the best way to understand the problems and
>advantages of computer use.
>

At CMU, where I was an undergrad, there was a programming course that all students
had to take, though there were several versions of it.  It was basically simple
programming and data structures in Pascal. 

There are a few reasons why I didn't think it was appropriate.  The first is kind
of irrelevant, but I think an interpreted language with simpler syntax, like LISP
or SCHEME should be used in intro classes because then you can concentrate on
progrmaming instead of the subtle nuances of Pascal parameter passing semantics.

But, aside from that issue, I think  a straight prgramming class is next to
worthless for many Humanties and fine art students.  What they need is more an
illustration of how computers can be useful to them, rather than a tedious semster
of dealing with concepts that are totally unrelated to their major.

So I think we have to be careful in saying that _programing_ is to be required of
everyone, because not everyone need to know how to program a computer.  People
should be taught that computers can be very useful in all academic areas, and that
they should not be feared and hated.  Cramming Pascal down a poor freshman's throat
just guarantees one more freshman will never use a computer again. 

Pete


-- 
CSNET: hugo@darmouth.edu                  UUCP: hugo@eleazar.UUCP (Sorry)
ARPA: hugo%dartmouth.edu@relay.cs.net

QUOTE:"Our president's crazy!  Did you hear what he said?" - Talking Heads

hes@ecsvax.UUCP (Henry Schaffer) (04/05/88)

In article <612@imagine.PAWL.RPI.EDU>, jefu@pawl18.pawl.rpi.edu (Jeffrey Putnam) writes:
> In article <4859@ecsvax.UUCP> hes@ecsvax.UUCP (Henry Schaffer) writes:
> >In article <607@imagine.PAWL.RPI.EDU>, jefu@pawl23.pawl.rpi.edu (Jeffrey Putnam) writes:
> >> ...
 
> >  Does teaching students to use a spreadsheet or a math manipulator
> >(e.g. TK-solver or MathCad, ...) meet your requirement for what 
> >teaching programming is supposed to do?
 
> I dont think so - though i have certainly considered it.  I would
> not favor spreadsheets or math programs for a couple reasons.  First,
> these programs are in fairly general use and it is likely that people
> will use them at some point naturally, and i believe it is a good idea
> to expose them to something that they might not normally see.  But 
> more fundamentally, i would prefer a "real" programming language as 
> it is an opportunity not just to teach programming, but to teach something
> about the way computers work, the way programmers work, the way
> algorithms are described and implemented, and how they can use this
> stuff to actually build programs that will solve problems they might
> encounter.  
 
  We might get into some controversy over what is a "real" programming
language -  Is an object oriented programming language a "real" one -
how about hypertalk - or some of the 4GL database languages?  While
I have a gut feeling that only the procedural languates are "real"
(they certainly do relate to the way computer work - they kind of
reflect it) but wonder if we shouldn't raise above that. 1/2 :-)

  I think that the criterion "how they can use this stuff to actually
build programs that will solve problems they might encounter" is a
very strong justification for using the spreadsheet as the specimen
language!

> I was thinking of either a lisp family language (to minimize syntax
> woes) or something like ICON but with graphics extensions.  I would
> focus on graphics (given an appropriate system) or string processing -
> primarily non-mathematical stuff to ease math anxiety.  Graphics, 
> even given math anxiety, would be nice because you can _see_ what
> is going on and there are some interesting things to do that are
> quite accessible.  String processing is of fairly general interest
> as it doesnt involve math and there are some fun problems that
> are also accessible.
 
  I agree that non-mathematical applications are a necessity.  Why
burden the student with an irrelevant subject area if you are supposed
to be teaching about programming.  (That reminds me about how I had to
learn about electrical circuits in order to pass calculus - but that
is another story.

> jeff putnam  

--henry schaffer  n c state univ

jmm@thoth20.berkeley.edu (04/06/88)

In article <8538@eleazar.Dartmouth.EDU> hugo@eleazar.Dartmouth.EDU (Peter Su) writes:
>>But then, i am coming to believe that a programming course should be
>>required of _all_ students - including humanities students and all. 

You probably use wooden furniture all the time.  Do you also think that
a class in woodworking should be required of all university students :-)?
Make that 1/2 :-).  Just because something is in wide use does not mean
that it is a fit subject for study at a university level.  You might
very well want people to know how to use a tool, but there are far
better ways to use academic time to teach them that tool.  (Make classes
available for learning how to use computers as tools, but don't make
them requirements.  And don't give academic credit for them.  Make
people realize that the tools exist, and they can use them RIGHT NOW
to make their lives easier.  Don't force them to take bonehead CS when
they could take something valuable instead.)

/ James Moore		/    	|  jmm@bartleby.berkeley.edu
/ 			/	|--------------------------------------------|
/ Ma ta Gaeilge agut,	/	|   Nil aon speis ag Ollscoile na	     |
/ scriobh i!		/	|   California im bharulacha fein.           |

msir_ltd@ur-tut (Mark Sirota) (04/06/88)

In article <8538@eleazar.Dartmouth.EDU> hugo@eleazar.Dartmouth.EDU (Peter Su) writes:
> But, aside from that issue, I think a straight prgramming class is next to
> worthless for many Humanties and fine art students.  What they need is
> more an illustration of how computers can be useful to them, rather than a
> tedious semster of dealing with concepts that are totally unrelated to
> their major.

I agree.  Not everyone needs to know how to program, but everyone should
learn to recognize that the computer can be a useful tool.  CMU does take
care of this somewhat by offering computer art classes in the Arts
program, which is probably fairly unique.

It occurs to me that teaching programming to those in the "creative" arts
- writing, drama, music, and the like - might be detrimental.  Programming
requires a certain type of thought, very right-brained, very logical,
whereas people in these disciplines are on the other side of the brain,
and think in a more relational, intuitive manner.  Couldn't it be that
forced programming will change the way these people think, and therefore
possibly hinder their skills in their chosen area?  Does anyone know of
any evidence to support or disprove this?
-- 

Mark Sirota
 msir_ltd%tut.cc.rochester.edu@cs.rochester.edu (rochester!ur-tut!msir_ltd)

gmg@yendor.UUCP (Gary Godfrey) (04/06/88)

In article <8538@eleazar.Dartmouth.EDU>, hugo@eleazar.Dartmouth.EDU (Peter Su) writes:
> It was basically simple programming and data structures in Pascal. 
> 
> There are a few reasons why I didn't think it was appropriate.  The first
> is kind of irrelevant, but I think an interpreted language with simpler
> syntax, like LISP or SCHEME should be used in intro classes because
> then you can concentrate on progrmaming instead of the subtle nuances
> of Pascal parameter passing semantics.
> 
> But, aside from that issue, I think  a straight prgramming class is next
> to worthless for many Humanties and fine art students.

In my last English class, one of the major stumbling blocks for most of
the students was the documentation of the papers.  The whole process
is fairly simple - for a programmer.  Put the comma here, the quotes
there, and underline the title of books.  Simple.  Nothing compared to
trying to remember the nuances of a language like 'C' or Pascal.  But
some students had real problems with a bibilography; the type of
thinking involved was alien to them.  An intro to programming
would have probably helped a great deal.



-----
Watch me pull a habit out of my rat.

Gary Godfrey - ACT, Reston, VA			Phone:		(703)471-9433
UUCP: ..!{mimsy,sundc}!{prometheus,hqda-ai}!yendor!gmg

tlh@cs.purdue.EDU (Thomas L. Hausmann) (04/06/88)

In article <8538@eleazar.Dartmouth.EDU>, hugo@eleazar.Dartmouth.EDU (Peter Su) writes:
> In article <607@imagine.PAWL.RPI.EDU> jefu@pawl23.pawl.rpi.edu (Jeffrey Putnam) writes:
> >But then, i am coming to believe that a programming course should be
> >required of _all_ students - including humanities students and all. 
> But, aside from that issue, I think  a straight prgramming class is next to
> worthless for many Humanties and fine art students.  
> Pete

I agree, straight programming is of little use to most H&FA students.  However,
most "Computers in Society" courses are trivial if you can think and read. 
There should be some programming but it should be CLEARLY de-emphasized.


-------------------------------------------------------------------------------
Tom Hausmann       Dept. of Computer Sciences     Purdue University
tlh@mordred.cs.purdue.edu    | My ideas?  There has never been an original
...!purdue!tlh               | thought since Plato.

tlh@cs.purdue.EDU (Thomas L. Hausmann) (04/06/88)

In article <1666@ur-tut.UUCP>, msir_ltd@ur-tut (Mark Sirota) writes:
> In article <8538@eleazar.Dartmouth.EDU> hugo@eleazar.Dartmouth.EDU (Peter Su) writes:
> > But, aside from that issue, I think a straight prgramming class is next to
> > worthless for many Humanties and fine art students.  What they need is
> 
> I agree.  Not everyone needs to know how to program, but everyone should
  
> Couldn't it be that
> forced programming will change the way these people think, and therefore
> possibly hinder their skills in their chosen area?  Does anyone know of
> any evidence to support or disprove this?
> Mark Sirota

   I present no evidence other than history.  Philosophers and musicians in
   the past have been excellent mathematicians.  I know of people in my
   department who write poetry, play the violin, etc.
   
   I really doubt that programming would cause permanent  *dain bramage*.
   (What am I saying...?)

-------------------------------------------------------------------------------
Tom Hausmann       Dept. of Computer Sciences     Purdue University
tlh@mordred.cs.purdue.edu    | My ideas?  There has never been an original
...!purdue!tlh               | thought since Plato.

windley@iris.ucdavis.edu (Phil Windley) (04/07/88)

In article <1666@ur-tut.UUCP> msir_ltd@tut.cc.rochester.edu (Mark Sirota) writes:
>  [ ... some lines deleted ...]
>
>It occurs to me that teaching programming to those in the "creative" arts
>- writing, drama, music, and the like - might be detrimental.  Programming
>requires a certain type of thought, very right-brained, very logical,
>whereas people in these disciplines are on the other side of the brain,
>and think in a more relational, intuitive manner.  Couldn't it be that
>forced programming will change the way these people think, and therefore
>possibly hinder their skills in their chosen area?  Does anyone know of
>any evidence to support or disprove this?

While I'm not an advocate of teaching programming to everyone, I cannot
believe that teaching someone a skill that is inherently different from the
ones in their normal area of study will hinder them.  If this is true,
perhaps we should refrain from teaching them any math at all for fear of
destroying some budding Bach.  Perhaps we should assign right-brained
people to them at birth to perform all these tasks, so they never have to
even think a single thought along those lines.  It appears that the idea,
in the extreme, is pretty ridiculous.

When people outside the major take a CS class they should be introduced to
CS topics much like when a CS student takes a music class or an economics
class for general education credit.  Students can be introduced to
"computation" without understanding that the semicolon doesn't belong
before the else in Pascal.  If people outside (and inside) the discipline
are ever going to understand that CS is more than what a lab technician
does with the PC on his/her desk, we need this kind of class.

Phil Windley
Robotics Research Lab
University of California, Davis

jmm@thoth30.berkeley.edu (04/07/88)

In article <1666@ur-tut.UUCP> msir_ltd@tut.cc.rochester.edu (Mark Sirota) writes:
>It occurs to me that teaching programming to those in the "creative" arts
>- writing, drama, music, and the like - might be detrimental.  Programming
>requires a certain type of thought, very right-brained, very logical,
>whereas people in these disciplines are on the other side of the brain,
>and think in a more relational, intuitive manner.  Couldn't it be that
>forced programming will change the way these people think, and therefore
>possibly hinder their skills in their chosen area?  Does anyone know of
>any evidence to support or disprove this?

I don't have any hard and fast 'evidence,' but I did have an interesting experience
at an interview with Bank of America.
The interview was for a programming position, but they were trying to avoid hiring
CS students, on the basis that CS students in general are very poor at communicating with
anything other than a computer.

One of the people with whom I interviewed asked me if I was a musician.  He wanted to know
because it was his observation that musicians tend to make very good programmers.  He
thought it might be because musicians tend to be very good at recognizing how patterns
fit together.  And remember the stories about the code-breakers in WWII?  Quite a few
of them were recruited from military bands for the same reasons.

And I would tend to take issue with your statement that programming is more logical
than 'creative arts.'  Perhaps the actual implementation of the project does require
a very methodical, step-by-step methodology, but good design needs to be very
creative.  And there is a great deal of craft in art that requires the same type of
rigid mental process that writing code does.

/ James Moore		/    	|  jmm@bartleby.berkeley.edu
/ 			/	|--------------------------------------------|
/ Ma ta Gaeilge agut,	/	|   Nil aon speis ag Ollscoile na	     |
/ scriobh i!		/	|   California im bharulacha fein.           |

jonson@unicom.UUCP (Mary D Johnson) (04/07/88)

Keywords:first languages


In article <612@imagine.PAWL.RPI.EDU> jefu@pawl18.pawl.rpi.edu (Jeffrey Putnam) writes:
<Stuff about using spreadsheets or other programs to teach non-CS or science
oriented people from prior messages deleted>
>I was thinking of either a lisp family language (to minimize syntax
>woes) or something like ICON but with graphics extensions.  I would
>focus on graphics (given an appropriate system) or string processing -
>primarily non-mathematical stuff to ease math anxiety.  Graphics, 
>even given math anxiety, would be nice because you can _see_ what
>is going on and there are some interesting things to do that are
>quite accessible.  String processing is of fairly general interest
>as it doesnt involve math and there are some fun problems that
>are also accessible.
>
>jeff putnam  

I have found that using LOGO, with an emphasis on the turtle graphics
in one of the units (2 to 3 hours of class time) of the introduction to
computers has been a real help in showing what computers do--that they do things
in a literal fashion i.e. it does what you told it to, not what you wanted
it to do. The graphics give the students a real sense of mastery over
the machine--a very important point in overcoming anxiety.

ok@quintus.UUCP (Richard A. O'Keefe) (04/07/88)

In article <1666@ur-tut.UUCP>, msir_ltd@ur-tut (Mark Sirota) writes:
> It occurs to me that teaching programming to those in the "creative" arts
> - writing, drama, music, and the like - might be detrimental.  Programming
> requires a certain type of thought, very right-brained, very logical,
> whereas people in these disciplines are on the other side of the brain.

(a) This left-brain/right-brain thing is "Pop Sci".
    Certain faculties _are_ localised (notably speech), but not in the
    same hemisphere for all people, and where "logical thinking" lives
    is anybody's guess.  (It is not the case that all logical thinking
    is verbal.)
(b) The kind of thinking required for programming is BOTH logical AND
    creative, just like writing, drama, music, &c.  (Don't confuse the
    art of writing beautiful programs with hacking or bit-diddling.)
    For what it's worth, a beautiful program and music that I enjoy
    arouse the same kind of pleasure in me.  A well conceived data
    structure integrates a subroutine package the way a subject
    integrates a fugue.  A really competent programmer has a passion
    for beauty as well as function in his programs.

Programming is one of the creative arts, using logic as one of its tools,
just as drama is one of the creative arts, using speech as one of its
tools.  I would go so far as to say that many programmers would benefit
from courses in writing and music appreciation.

rgsmeb@abcom.ATT.COM (Michel Behna) (04/07/88)

From article <8538@eleazar.Dartmouth.EDU>, by hugo@eleazar.Dartmouth.EDU (Peter Su):
> In article <607@imagine.PAWL.RPI.EDU> jefu@pawl23.pawl.rpi.edu (Jeffrey Putnam) writes:
	[Stuff deleted]
> But, aside from that issue, I think  a straight prgramming class is next to
> worthless for many Humanties and fine art students.  What they need is more an
> illustration of how computers can be useful to them
	[Stuff deleted]
> People should be taught that computers can be very useful in all academic 
> areas, and that they should not be feared and hated.  Cramming Pascal down 
> a poor freshman's throat just guarantees one more freshman will never use 
> a computer again. 
> Pete

Bravo! I believe that you have hit upon a problem in both education and industry

To many understanding how a computer works is boring, tedious and irrelevant
but having the computer cut down the time it takes you to do a task is more
of an incentive to learn and use one maybe even understand one.

Everybody likes to play games on computers but not everyone wants to program
a game or even figure out how everything works. A computer is a means to an
end for the rest of non-computerdom and it should be as transparent as posssible
and as user-friendly( NOT that word again) as possible.

The day people stop thinking of computers as computers and more as a tool will
be the day that making people computer-literate is no longer necessary as by
then it will have been integrated into society.

-- 
Michel Behna					Qui a eu l'idee folle
"Unix is unique!"				D'inventer un jour l'ecole
rgsmeb@abcom.att.com				C'est se sacre Charlemagne
{ncsc5,codas}!abcom!rgsmeb

elg@nuchat.UUCP (Eric Green) (04/08/88)

From article <1666@ur-tut.UUCP>, by msir_ltd@ur-tut.UUCP:
> In article <8538@eleazar.Dartmouth.EDU> hugo@eleazar.Dartmouth.EDU (Peter Su) writes:
> It occurs to me that teaching programming to those in the "creative" arts
> - writing, drama, music, and the like - might be detrimental.  Programming
> requires a certain type of thought, very right-brained, very logical,
> whereas people in these disciplines are on the other side of the brain,
> and think in a more relational, intuitive manner.  Couldn't it be that
> forced programming will change the way these people think, and therefore
> possibly hinder their skills in their chosen area?  Does anyone know of

Jerry Pournelle, in his column in Byte, has noted many times that the
same organizational skills needed to write a novel are similar to the
ones needed to write a program. For those of you who've lived under
a rock for the last 10 years, Jerry is a best-selling science fiction
writer, who learned a few things here and there after he
got a computer to use for word-processing his novels.

Programming doesn't REALLY require a certain type of thought. It
requires thought, and organizational skills. Period. In fact, one
ability of many artistic types, the ability to intuitively grasp
"the big picture", comes quite in handy for programming. There was
a survey a few years back, whose authors found it noteworthy that
many of today's best programmers are also people of above-average
language skills or artistic ability. One example that pops to mind
immediately is Richard Stallman, who has a PhD in Philosophy, of
all things....

I mentioned that programming requires thought. Unfortunately, a
large percentage of the American population is incapable of
any thought more sophisticated than "duh, I wonder where I'm gonna
go out Friday night when I get my paycheck from the (ad agency,
factory, etc.)?". Perhaps that's why you associated artistic
thinking with lack of thought. When, in fact, if you look at the
top practicioners of any art, they are thoroughly grounded in
theory, and have invested a lot of thought and pain into improving
their art and developing a unique style of their own.

-- 
Eric Lee Green   P.O. Box 92191  Lafayette, LA 70509
uunet!nuchat!elg  "I survived the Flood of '88"

jefu@pawl17.pawl.rpi.edu (Jeffrey Putnam) (04/10/88)

In article <4871@ecsvax.UUCP> hes@ecsvax.UUCP (Henry Schaffer) writes:
>In article <612@imagine.PAWL.RPI.EDU>, jefu@pawl18.pawl.rpi.edu (Jeffrey Putnam) writes:
>> In article <4859@ecsvax.UUCP> hes@ecsvax.UUCP (Henry Schaffer) writes:
>> >In article <607@imagine.PAWL.RPI.EDU>, jefu@pawl23.pawl.rpi.edu (Jeffrey Putnam) writes:
>> >> ...

(among other stuff relating to my proposal that programming be taught
to all incoming freshmen)
 
>  We might get into some controversy over what is a "real" programming
>language -  Is an object oriented programming language a "real" one -
>how about hypertalk - or some of the 4GL database languages?  While
>I have a gut feeling that only the procedural languates are "real"
>(they certainly do relate to the way computer work - they kind of
>reflect it) but wonder if we shouldn't raise above that. 1/2 :-)

I think an object oriented programming language like CLOS (is that
what Common Loops mutated to?) with an interface to a window system
where graphics can be done (X or NeWS by preference) would be close
to ideal.  The algorithmic nature of the beast is evident, but the
advantages to inheritance would make the actual coding less tedious.

Let me back off just a bit and try to explain again why i proposed
a universal programming requirement and answer a couple of the questions
and problems that people have brought up.

My experience has been that a great part of the students in american
higher education have a reasonable depth of specialized knowledge by
the time they leave college and are almost completely ignorant outside
their fields.  There are reasons for this and they are good ones given
the current cultural situation.  One is certainly that universities
are acting as vocational schools (even strongly academicly/research
oriented schools are acting as vocational schools - where the vocation
is getting research dollars (as opposed to actually doing interesting
research)).  However, although this probably keeps industry (more or
less) content it is doing a great disservice to the students.  We 
can see this clearly in technical programs (like CS) but it is also
true in the liberal arts fields, although the training there is wider
in spectrum.

I think it would be of more use to all students to have more exposure
to _all_ fields, including non-technical fields for technical students
and technical fields for non-technical students.  However, since I
doubt that people who avoided algebra in high school would be able to
handle a calculus (or other reasonable math) course, I think that a 
minimal exposure to at least a kind of mathematics can be achieved 
with programming.  (In the best of all possible worlds, i would assume
a reasonable high school background and require a real math, a real
science, a real philosophy course etc).  

Programming is also useful (ouch!), and not just with spreadsheets.
Several times in the last month or two I have talked to people with
computer problems that could easily have been solved with minimal
programming experience and the availability of a programming language
on their machines, but that were very difficult without these.  I also
talked to someone who could have solved a problem easily with a
product (LaTeX) that required embedding "programming" in the text but
who was sufficiently frightened by programming in general to refuse to
even consider it as a possible solution.  (I tried to present LaTeX as
something that did not require programming, but to no avail.)

One of the criticisms that was proposed against a programming
requirement was that left (or was it right?) brain types - the
artistic ones - would somehow be sullied by having to learn
programming.  I dont know if i give much credence to this distinction,
but i cant see how exposure to other types of discipline would harm
anyone.  This distinction is even rather dangerous (smacks of
something like racism to me).  The following statements would seem to
follow (and i find them equally egregious).
"Artists should never take programming courses as it might somehow
make them less of an artist.
"Engineers should never take writing courses as it might somehow
ruin their engineering talents."

Another criticism was that some poor freshman shouldnt have Pascal
shoved down his throat as he might not like it and might go away
hating it and avoiding it.  This is a good point, but i think it
reflects more on Pascal and the teaching methods used than on the idea
of teaching programming.  As i said before, i think graphics would be
a good place to start as it does make things fun - of course it is
expensive as you need a good graphics system - but it is also quite
interesting and you can go a long way with it.  Well, i was a math
major as an undergrad and had calculus (several courses worth) and
physics shoved down my throat and hated every second of both subjects.
I still became a math major and did quite well once i got out of the
nasty stuff (loved analysis!).  Come to think of it, i also had
programming (in fortran, batch, cards, IBM...) and hated it as well.
I would love to manage the world in such a way that people only
learned things when they wanted to, but im not sure that that is
really feasible.  Come to think of it, im not sure i liked much of
anything my freshman year, but i think i did need to be exposed to it.

I havent managed (reading this over) to explain myself at all well, but
i think that to really do the problem justice would take much more
time and energy and bits than im willing to put into it just now.  
jeff putnam  
jefu@pawl.rpi.edu -or- jeff_putnam%rpitsmts@itsgw.rpi.edu
"People would rather believe a simple lie than the complex truth."

tlh@cs.purdue.EDU (Thomas L. Hausmann) (04/11/88)

In article <643@imagine.PAWL.RPI.EDU>, jefu@pawl17.pawl.rpi.edu (Jeffrey Putnam) writes:
> In article <4871@ecsvax.UUCP> hes@ecsvax.UUCP (Henry Schaffer) writes:
> (among other stuff relating to my proposal that programming be taught
> to all incoming freshmen)
> >  We might get into some controversy over what is a "real" programming
> >language -  Is an object oriented programming language a "real" one -
> I think an object oriented programming language like CLOS (is that
> what Common Loops mutated to?) with an interface to a window system
> where graphics can be done (X or NeWS by preference) would be close
> to ideal.  

As a language intended to introduce programming to (the unwashed masses ;-)) 
I mean all incoming Freshman?  First of all, not everyone NEEDS to program
and secondly I think such a course should use a mor conventional language.


>                      ...  As i said before, i think graphics would be
> a good place to start as it does make things fun - of course it is
> expensive as you need a good graphics system - but it is also quite
> interesting and you can go a long way with it.  ...

What kind of graphics are you thinking about?  I doubt that a lot of departments
would want to lay ot a lot of cash in equipment expenses to teach a service 
course.  Also, how good of a graphics system are you thinking about?

> jeff putnam  
> jefu@pawl.rpi.edu -or- jeff_putnam%rpitsmts@itsgw.rpi.edu

-Tom

      .^.^.        Tom Hausmann 
     . O O .       tlh@mordred.cs.purdue.edu    ( ARPA )
      . v .        ...!purdue!tlh   ( UUCP  )
     / | | \
     ./   \.       "Whooo do ya think you're foolin' "
______mm.mm_____
       \_/

reggie@pdn.UUCP (George W. Leach) (04/12/88)

In article <643@imagine.PAWL.RPI.EDU> jefu@pawl17.pawl.rpi.edu (Jeffrey Putnam) writes:

>My experience has been that a great part of the students in american
>higher education have a reasonable depth of specialized knowledge by
>the time they leave college and are almost completely ignorant outside
>their fields.  There are reasons for this and they are good ones given
>the current cultural situation.  One is certainly that universities
>are acting as vocational schools ............


     I completely agree!  Certainly one is not exposed to a wide enough
spectrum of knowledge in high school.  The undergraduate program should
meet this need.  I still remember complaining about my first two years
of undergraduate work in an engineering curriculum, where I only encountered
two CS courses.  What do I need calculus, physics, chemistry, etc... for???
Upon entering college my *only* interest was in computers.  That is not a
healthy attitude when one considers that I was never exposed to many other 
fields  prior to coming to this decision.  Thank God I was required to minor
in another field, albeit an engineering or science field :-)

-- 
George W. Leach					Paradyne Corporation
{gatech,rutgers,attmail}!codas!pdn!reggie	Mail stop LF-207
Phone: (813) 530-2376				P.O. Box 2826
						Largo, FL  34649-2826

posdamer@wucs2.UUCP (Jeff Posdamer) (04/13/88)

> >                      ...  As i said before, i think graphics would be
> > a good place to start as it does make things fun - of course it is
> > expensive as you need a good graphics system - but it is also quite
> > interesting and you can go a long way with it.  ...
> 
> What kind of graphics are you thinking about?  I doubt that a lot of departments

We have used simple PC graphics for this. The ability to see the program
run, see obvious errors and use what has become a standard IO methodology
is as important as file operations.

> would want to lay ot a lot of cash in equipment expenses to teach a service 
> course.  Also, how good of a graphics system are you thinking about?
>       .^.^.        Tom Hausmann 
>      . O O .       tlh@mordred.cs.purdue.edu    ( ARPA )

Our experience (for several years) is that including graphics output in
introductory (CS and service) courses is motivating to the students,
an appropriate use of the readily available PC technology and provides
the students with a useful and powerful tool.

Remember, CS students are students. They need as many computer based aids
as other students. An anti-professional bias in CS departments can put the
CS student in the bizarre situation of being LESS computer competent that
their peers in the physics/chemistry/calculus/composition...  classroom.

			Jeff Posdamer

-- 
Jeff Posdamer, Washington University, St. Louis, MO, (314) 889-6147
posdamer@syr.wustl.edu