Newsgroups: comp.edu,comp.lang.ada,comp.lang.c++,comp.lang.modula2,comp.lang.scheme
Path: cantaloupe.srv.cs.cmu.edu!rochester!cornellcs!travelers.mail.cornell.edu!news.tc.cornell.edu!news.cac.psu.edu!newsserver.jvnc.net!newsserver2.jvnc.net!howland.reston.ans.net!news.sprintlink.net!gatech!psinntp!psinntp!psinntp!psinntp!merlin.hgc.edu!jcm
From: jcm@hgc.edu (James McKim)
Subject: Re: Comparison of languages for CS1 and CS2
Message-ID: <1995Jul11.202739.11299@merlin.hgc.edu>
Sender: usenet@merlin.hgc.edu (Action News Central)
Organization: The Hartford Graduate Center
References: <puk.805218191@maroon.tc.umn.edu> <3trm48$n4i@duke.cs.duke.edu> <3tsp99$233@felix.seas.gwu.edu>
Date: Tue, 11 Jul 1995 20:27:39 GMT
Lines: 102
Xref: glinda.oz.cs.cmu.edu comp.edu:13189 comp.lang.ada:32460 comp.lang.c++:137867 comp.lang.modula2:11985 comp.lang.scheme:13109

In article <3tsp99$233@felix.seas.gwu.edu> mfeldman@seas.gwu.edu (Michael Feldman) writes:
>In article <3trm48$n4i@duke.cs.duke.edu>,
>Owen L. Astrachan <ola@cs.duke.edu> wrote:
>
>>Arrays are a nightmare in C (and, by extension, in C++).  In our CS1

This line does speak volumes, doesn't it?

>>course, where we use C++, we use a templated vector class.  We don't use
>>these words initially, so we're just teaching a different syntax to
>>students.  The prototype for ReverseArray above would be
>
>>    void ReverseArray(vector<int> & a, int numElts);
>
>>There's no new syntax here except for <int>.  We've already discussed
>>reference and const-reference parameters.  I new firmly believe that
>>using the built-in array type is extremely foolish.
>
>As I read through this discussion, I keep asking the question "why
>are we putting our students through this?"

Good question. Very good question.

>
>I don't want to get into a language war, but I'm having a hard time
>finding the real intellectual justification for teaching C++ to
>first-years. Almost all the writers to the net and elsewhere seem
>pretty ambivalent about this. Is anyone doing it because they
>really think C++ is the best foundation language for the students?
>(This is NOT a rhetorical question!)
>
>The basic reasoning seems to be "students are demanding C++, and
>they will need it in industry, so we'll teach it to our freshmen as best
>we can."

And to high school students. Gotta make sure they can pass that advanced
placement exam.

>
>I was around for the "switch to Pascal?" debates 15-20 years ago,
>and there was a strong consensus in favor of Pascal even though
>it was not popular in industry and nobody thought it ever would be.

Me too.

>Industrial popularity has never been seriously used as the major
>justification for a first-year language, until now.

Yup. What makes it even more ironic is that all indications are
that C++ is now fast losing market share in industry (mainly to 
Smalltalk). So the main reason for using it in first (or any other
year) programming is diminishing. Unfortunately the C++ movement 
has built up quite a bit of momentum. Actually, I do think there is a
place for C++ in the Curriculum, namely in systems programming classes,
where its low level features can be used to advantage.

>
>I read the net and the literature a lot, go to SIGCSE conferences 
>a lot, and swap a lot of e-mail. What I see and hear is:
>
>- Pascal advocates make an intellectual case (still!);
>- Lisp/Scheme advocates make an intellectual case;
>- Ada advocates make an intellectual case;
>- Modula-2 advocates make an intellectual case;

All the above make both intellectual and pedagogical sense. As
do Eiffel (my favorite - nearly as simple as Pascal, but fully OO), 
Modula-3, Smalltalk, and others.

>
>- C and C++ advocates make a popularity or industry-oriented case.

I've only heard one person attempt to make a pedagogical 
case for C++ in CS1. The exchange went something like this:

   "We've been using C++ in CS1 for a couple of years now and it's
    much better for learning than what we were using before!"

   "What were you using before?"

   "C."

>
>I would feel MUCH more comfortable (well, a little more, anyway)
>with this C (or C++) in CS1/CS2 movement, IF I knew that the
>proponents could make a solid intellectual case for why it was the
>best _foundation_ for the students. As it is, have we really gotten
>to planning curricula by public opinion poll?

Not all of us.

>
>Mike Feldman

Hang in there,

-- Jim
-- 

*------------------------------------------------------------------------------*
Jim McKim  (203)-548-2458     Co-editor of Eiffel Outlook 
Internet:  jcm@hgc.edu        Subscribe early and often!
