comp.lang.ada
 help / color / mirror / Atom feed
* Re: Why one school changed from Pascal to C++
       [not found] <33664F10.6B76@mathernet.com>
@ 1997-05-02  0:00 ` Philippe Allenbach
  1997-05-02  0:00   ` Richard Watts
  1997-05-02  0:00   ` Lance Kibblewhite
  0 siblings, 2 replies; 13+ messages in thread
From: Philippe Allenbach @ 1997-05-02  0:00 UTC (permalink / raw)





Not to begin a language war and personnaly, I don't use C++ but still worth
reading,I thought it would be interesting to spread this post to other 
newsgroups.

>I found this through a publisher's home page.  It's a paper detailing 
>(It's several screens long, I haven't read it all the way through yet) 
>why the CS program at the University of Newcastle upon Tyne (in the 
>U.K.) switched from Pascal to C++ in their introductory CS class.

>I thought some of you might find it interesting.  Personally, I've 
>always liked Pascal, and I'm glad I was taught it, but I'm really 
>curious about their reasons.  Here's the URL:

>http://www.cs.ncl.ac.uk/publications/books/apprentice/InstructorsManual/C++_Choi
>ce.html

>AMT

Philippe Allenbach
allenb@desun1.epfl.ch




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Why one school changed from Pascal to C++
  1997-05-02  0:00 ` Why one school changed from Pascal to C++ Philippe Allenbach
  1997-05-02  0:00   ` Richard Watts
@ 1997-05-02  0:00   ` Lance Kibblewhite
  1 sibling, 0 replies; 13+ messages in thread
From: Lance Kibblewhite @ 1997-05-02  0:00 UTC (permalink / raw)



allenb@desun1.epfl.ch (Philippe Allenbach) wrote:

>
>Not to begin a language war and personnaly, I don't use C++ but still worth
>reading,I thought it would be interesting to spread this post to other 
>newsgroups.
>
>>I found this through a publisher's home page.  It's a paper detailing 
>>(It's several screens long, I haven't read it all the way through yet) 
>>why the CS program at the University of Newcastle upon Tyne (in the 
>>U.K.) switched from Pascal to C++ in their introductory CS class.
>
>>I thought some of you might find it interesting.  Personally, I've 
>>always liked Pascal, and I'm glad I was taught it, but I'm really 
>>curious about their reasons.  Here's the URL:
>
>>http://www.cs.ncl.ac.uk/publications/books/apprentice/InstructorsManual/C++_Choi
>>ce.html
>
>>AMT
>
>Philippe Allenbach
>allenb@desun1.epfl.ch

To be fair, it should be pointed out the analysis was done some time
ago, and does not include Ada 95.  Nor Ada 9x, which in interesting
since they obviously had no problem including other languages for
which the standardization process was still in the draft stages.
-- Lance.




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Why one school changed from Pascal to C++
  1997-05-02  0:00 ` Why one school changed from Pascal to C++ Philippe Allenbach
@ 1997-05-02  0:00   ` Richard Watts
  1997-05-03  0:00     ` Kevin Cline
  1997-05-02  0:00   ` Lance Kibblewhite
  1 sibling, 1 reply; 13+ messages in thread
From: Richard Watts @ 1997-05-02  0:00 UTC (permalink / raw)



In article <allenb.40.004C9240@desun1.epfl.ch>,
Philippe Allenbach <allenb@desun1.epfl.ch> wrote:
>
>Not to begin a language war and personnaly, I don't use C++ but still worth
>reading,I thought it would be interesting to spread this post to other
>newsgroups.
>
>>I found this through a publisher's home page.  It's a paper detailing
>>(It's several screens long, I haven't read it all the way through yet)
>>why the CS program at the University of Newcastle upon Tyne (in the
>>U.K.) switched from Pascal to C++ in their introductory CS class.
>
>>I thought some of you might find it interesting.  Personally, I've
>>always liked Pascal, and I'm glad I was taught it, but I'm really
>>curious about their reasons.  Here's the URL:
>
>>http://www.cs.ncl.ac.uk/publications/books/apprentice/InstructorsManual/C++_Choi
>>ce.html

 It's interesting that they seem to rate things like initialisation
and overloading as plusses for ADT implementation: experience seems to
indicate that full transparency is often a bad idea (do you _really_
want to give the impression that matrix multiplication is
commutative ?). It's also interesting that they didn't consider
teaching all of Modula-3 - it's quite a small language.

 Their problems seem pretty run-of-the-mill for C++-based courses, and
they seem to have reinvented pretty much all of the important
wheels as class libraries.


Richard.
-- 
SAY AGAIN STOP IS USENET DEAD OR DECEASED STOP
The University of Cambridge can't have these opinions even if it wants them.




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Why one school changed from Pascal to C++
  1997-05-03  0:00     ` Kevin Cline
@ 1997-05-02  0:00       ` Farshad Nayeri
  1997-05-05  0:00         ` Rennie Allen
  1997-05-06  0:00       ` Richard Watts
  1 sibling, 1 reply; 13+ messages in thread
From: Farshad Nayeri @ 1997-05-02  0:00 UTC (permalink / raw)



Kevin Cline wrote:
> 
> Symbols are used in mathematics because they are easier to read than text.
> They are used in computer programs for the same reason.

Well, I'd suggest that the goals of mathematics and computer science
are different, so we may not want to apply the same principles:

  In introductory mathematics, we learn to *use* abstractions. 
  (Only advanced mathematicians build abstractions of their own for others to use.)

  In introductory computer science, we learn to *build* abstractions.
  (By extension, only advanced computer scientists use abstraction built by others.)

Sorry, I did start with a longer, more serious point, but since
Netscape crashed, I thought to post this shorter, more silly post!

Seriously though, let's keep the conversation on the topic of why
one school switched out of Pascal to C++.  BTW, why isn't
comp.edu on this discussion? Aren't "they" the experts?

-- Farshad




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Why one school changed from Pascal to C++
  1997-05-02  0:00   ` Richard Watts
@ 1997-05-03  0:00     ` Kevin Cline
  1997-05-02  0:00       ` Farshad Nayeri
  1997-05-06  0:00       ` Richard Watts
  0 siblings, 2 replies; 13+ messages in thread
From: Kevin Cline @ 1997-05-03  0:00 UTC (permalink / raw)



rrw1000@cus.cam.ac.uk (Richard Watts) wrote:

> It's interesting that they seem to rate things like initialisation
>and overloading as plusses for ADT implementation: experience seems to
>indicate that full transparency is often a bad idea (do you _really_
>want to give the impression that matrix multiplication is
>commutative ?). 

Why should the use of '*' imply commutativity?  Surely almost all programmers
working on code that does multiply matrices will know that matrix
multiplication is not commutative.  If they don't, that is a training problem,
not an argument against operator overloading.  It's no more obvious that
the order of arguments to matrix_multiply is important.

Symbols are used in mathematics because they are easier to read than text.
They are used in computer programs for the same reason.






^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Why one school changed from Pascal to C++
  1997-05-02  0:00       ` Farshad Nayeri
@ 1997-05-05  0:00         ` Rennie Allen
  1997-05-05  0:00           ` Farshad Nayeri
  0 siblings, 1 reply; 13+ messages in thread
From: Rennie Allen @ 1997-05-05  0:00 UTC (permalink / raw)



Farshad Nayeri (farshad@cmass.com) wrote:

> Kevin Cline wrote:
> > 
> > Symbols are used in mathematics because they are easier to read than text.
> > They are used in computer programs for the same reason.

> Well, I'd suggest that the goals of mathematics and computer science
> are different, so we may not want to apply the same principles:

I agree.

>   In introductory mathematics, we learn to *use* abstractions. 
>   (Only advanced mathematicians build abstractions of their own for others
>   to use.)

I agree with this statement.

>   In introductory computer science, we learn to *build* abstractions.
>   (By extension, only advanced computer scientists use abstraction built by 
>   others.)

But not this.  In introductory computer science, students learn to build and
use abstractions (the programming language used typically employs many 
abstractions - part of intro comp sci is learning the language).

--
Rennie Allen                                       <rgallen@qnx.com>
QNX Software Systems Ltd.
175 Terence Matthews Crescent                      (613) 591-0931    (voice)
Kanata, Ontario, Canada K2M 1W8                    (613) 591-3579      (fax)




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Why one school changed from Pascal to C++
  1997-05-05  0:00         ` Rennie Allen
@ 1997-05-05  0:00           ` Farshad Nayeri
  0 siblings, 0 replies; 13+ messages in thread
From: Farshad Nayeri @ 1997-05-05  0:00 UTC (permalink / raw)



Rennie Allen wrote:
> 
> Farshad Nayeri (farshad@cmass.com) wrote:
> 
> > Kevin Cline wrote:
> > >
> > > Symbols are used in mathematics because they are easier to read than text.
> > > They are used in computer programs for the same reason.
> 
> > Well, I'd suggest that the goals of mathematics and computer science
> > are different, so we may not want to apply the same principles:
> 
> I agree.
> 
> >   In introductory mathematics, we learn to *use* abstractions.
> >   (Only advanced mathematicians build abstractions of their own for others
> >   to use.)
> 
> I agree with this statement.
> 
> >   In introductory computer science, we learn to *build* abstractions.
> >   (By extension, only advanced computer scientists use abstraction built by
> >   others.)
> 
> But not this.  In introductory computer science, students learn to build and
> use abstractions (the programming language used typically employs many
> abstractions - part of intro comp sci is learning the language).

I think your point is well-taken. I admit, my statement was 
phrased too carefully for a silly post. 

I was just making a small point that what's good in mathematics isn't
necessarily what's good in computer science (though there are a lot
of intersections.) In math courses I took (as a math major), 
we seldom talked about how to put together structures 
to create a new abstraction. We were presented with a structure
(i.e., the theorems) for an abstraction and were told to 
fill in the blanks. In contrast, in even introductory 
computer science courses I took (as a computer science 
major) we were given much freedom about the structure of
our abstractions.

[I suggest this line of discussion continue at comp.edu. I have
set proper crosses, and followups.]

 -- Farshad




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Why one school changed from Pascal to C++
  1997-05-03  0:00     ` Kevin Cline
  1997-05-02  0:00       ` Farshad Nayeri
@ 1997-05-06  0:00       ` Richard Watts
  1997-05-06  0:00         ` Farshad Nayeri
  1997-05-06  0:00         ` Robert Dewar
  1 sibling, 2 replies; 13+ messages in thread
From: Richard Watts @ 1997-05-06  0:00 UTC (permalink / raw)



In article <8229B62E52EAC144.6C6C6DF4FB6915C3.A10EAF24E2BF24E1@library-proxy.airnews.net>,
Kevin Cline <clines@delete_this.airmail.net> wrote:
>
>rrw1000@cus.cam.ac.uk (Richard Watts) wrote:
>
>> It's interesting that they seem to rate things like initialisation
>>and overloading as plusses for ADT implementation: experience seems to
>>indicate that full transparency is often a bad idea (do you _really_
>>want to give the impression that matrix multiplication is
>>commutative ?).
>
>Why should the use of '*' imply commutativity?  Surely almost all programmers
>working on code that does multiply matrices will know that matrix
>multiplication is not commutative.  If they don't, that is a training problem,
>not an argument against operator overloading.

 Well, yes and no. There's a limit to how many special cases one
can hold in memory at once - * usually denotes multiplication. What
you do to matrices is not by any stretch of the imagination
multiplication, so why should it have the same name ? It's bad
enough having it represent both integer and (three kinds of) fp
multiplication, but that doesn't usually matter since their only
differences come out in special cases one doesn't usually
(expect to) encounter.

>  It's no more obvious that
>the order of arguments to matrix_multiply is important.

 I'd say that it was: you usually expect the order of arguments
to a function to be important, it's just that for * you're told
by the language definition that they usually aren't.

 My experience has been that situations where behaviour is
described not by the operation but by the type of the operands
tend to be (very) confusing. I can't think of many operators
which it makes sense to overload without changing their behaviour
significantly - bignums might be one such situation, but even
then if you're mixing integer * and bignum * you have to be
careful that you don't run into recursive loops (trying to
allocate memory by doing calculations which allocate memory
and the like).

>
>Symbols are used in mathematics because they are easier to read than text.
>They are used in computer programs for the same reason.

 Yup, and they're confusing in mathematics too - I don't know about
you, but I spend a lot of my time being confused when maths books
start calling the operation in a non-abelian group `multiplication'
(and then go on to use real multiplication and the group operation
together ...).


Richard.
-- 
SAY AGAIN STOP IS USENET DEAD OR DECEASED STOP
The University of Cambridge can't have these opinions even if it wants them.




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Why one school changed from Pascal to C++
  1997-05-06  0:00       ` Richard Watts
  1997-05-06  0:00         ` Farshad Nayeri
@ 1997-05-06  0:00         ` Robert Dewar
  1997-05-06  0:00           ` Spencer Allain
  1 sibling, 1 reply; 13+ messages in thread
From: Robert Dewar @ 1997-05-06  0:00 UTC (permalink / raw)



Richard says

<< Well, yes and no. There's a limit to how many special cases one
can hold in memory at once - * usually denotes multiplication. What
you do to matrices is not by any stretch of the imagination
multiplication, so why should it have the same name ?>>

It should have the same name because mathematicians have called this
operation matrix multiplication for a long time, since long before
computers had even been thought of. It is NOT helpful for computer
scientists to try to revise standard mathematical terminology in
this way. If matrix multiplication is not in "any stretch of
[your] imagination multiplication", then your notion of multiplication
is entirely idiosyncratic, and too unfamiliar to be helpful!





^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Why one school changed from Pascal to C++
  1997-05-06  0:00         ` Robert Dewar
@ 1997-05-06  0:00           ` Spencer Allain
  1997-05-13  0:00             ` W. Wesley Groleau (Wes)
  0 siblings, 1 reply; 13+ messages in thread
From: Spencer Allain @ 1997-05-06  0:00 UTC (permalink / raw)




I was hoping this thread wasn't going to start.  I have a healthy
respect for both Richard and Robert, and I personally have mixed
feelings about this notation discussion.  I don't claim to be an
expert in notational theory, but as far as I'm concerned, we don't
have enough symbols on the keyboard to even make a pretense of doing
justice to the true accepted mathematical syntax.

I can already see the arguments about cross-products and dot-products
starting, and which notation to use for which, etc.  I'd be much
more happy to discuss getting support for real symbols and not
even talk about the "*" operator, which is a computer science convention.

I think the real issue is not "*", but consistent representation.  If
the world agrees that "*" on matrices always means standard matrix
multiplication, and there is an assumption that there is some good
way to have it "blow up".  Ie what happens when you take A (3x4) and 
B (4x2) matrices.  AB is valid, but BA should throw some type of
exception.

Where is the "computer scientist's" handbook of mathematical
representations?  Maybe we should all have one of those and this
discussion won't keep cropping up.

-Spencer

dewar@merv.cs.nyu.edu (Robert Dewar) writes:
> 
> Richard says
> 
> << Well, yes and no. There's a limit to how many special cases one
> can hold in memory at once - * usually denotes multiplication. What
> you do to matrices is not by any stretch of the imagination
> multiplication, so why should it have the same name ?>>
> 
> It should have the same name because mathematicians have called this
> operation matrix multiplication for a long time, since long before
> computers had even been thought of. It is NOT helpful for computer
> scientists to try to revise standard mathematical terminology in
> this way. If matrix multiplication is not in "any stretch of
> [your] imagination multiplication", then your notion of multiplication
> is entirely idiosyncratic, and too unfamiliar to be helpful!
> 




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Why one school changed from Pascal to C++
  1997-05-06  0:00       ` Richard Watts
@ 1997-05-06  0:00         ` Farshad Nayeri
  1997-05-06  0:00         ` Robert Dewar
  1 sibling, 0 replies; 13+ messages in thread
From: Farshad Nayeri @ 1997-05-06  0:00 UTC (permalink / raw)



Keeping to the topic of "Why one School Switched 
from Pascal to C++", I'd like to point people to 
an alternative perspective presented in an
article Spencer Allain and I wrote based on 
a survey of some of the schools which taught 
Modula-3 in their CS curriculum.

The article, "Teaching Computer Science with 
Modula-3" is included in the second issue of 
the Threads Newsletter:

      http://www.cmass.com/threads/2/#academia

I suggest you take a look at this; M3 has worked
out pretty well in the past few years for those
who have taugt it. (Perhaps some instructors
will be willing to elaborate on USENET, but it is
near the end of the term and they are busy.) Indeed, 
I found a comment by one instructor quite impressive:

> "Last year we had a programming project course 
>  where we recommended the students to use Modula-3, 
>  but some project groups chose to use C++ or Borland 
>  Pascal. Most of the groups using Modula-3 did 
>  complete the course in time, while many of the 
>  others did not: 
> 
>      Modula-3:       85% in time (22 of 26)
>      Borland Pascal: 67% in time (2 of 3) 
>      C++:             0% in time (0 of 4)
> 
>  We found the top advantages of Modula-3 to be: its 
>  similarity to but without the shortcomings of Pascal, 
>  its support for modularization, garbage collection 
>  and the standard library." 

See the article for more elaboration, including
a list of some of the academic resources available 
for Modula-3. 

Best Regards, -- Farshad

-- 
Farshad Nayeri           farshad@cmass.com
Critical Mass, Inc.      http://www.cmass.com
Cambridge, USA           +1 617 354 6277

P.S., I shouldn't have to say this, but as 
with any publication, the article presents authors' 
bias, and its conclusions are open to interpretation!

P.P.S., I have tried again to add comp.edu to the discussion,
which I believe has a charter for such discussions.
Though this is my last attempt!




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Why one school changed from Pascal to C++
  1997-05-06  0:00           ` Spencer Allain
@ 1997-05-13  0:00             ` W. Wesley Groleau (Wes)
  1997-05-15  0:00               ` Kaz Kylheku
  0 siblings, 1 reply; 13+ messages in thread
From: W. Wesley Groleau (Wes) @ 1997-05-13  0:00 UTC (permalink / raw)



> not enough symbols on the keyboard to even make a pretense of doing
> justice to the true accepted mathematical syntax.

Give me an "A" !!!
Give me a  "P" !!!
Give me an "L" !!!

What does that spell ?!?!?!?




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Why one school changed from Pascal to C++
  1997-05-13  0:00             ` W. Wesley Groleau (Wes)
@ 1997-05-15  0:00               ` Kaz Kylheku
  0 siblings, 0 replies; 13+ messages in thread
From: Kaz Kylheku @ 1997-05-15  0:00 UTC (permalink / raw)



In article <3378C216.5198@this.message>,
W. Wesley Groleau (Wes) <see.signature@this.message> wrote:
>> not enough symbols on the keyboard to even make a pretense of doing
>> justice to the true accepted mathematical syntax.
>
>Give me an "A" !!!
>Give me a  "P" !!!
>Give me an "L" !!!
>
>What does that spell ?!?!?!?

Duh, INTERCAL?




^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~1997-05-15  0:00 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <33664F10.6B76@mathernet.com>
1997-05-02  0:00 ` Why one school changed from Pascal to C++ Philippe Allenbach
1997-05-02  0:00   ` Richard Watts
1997-05-03  0:00     ` Kevin Cline
1997-05-02  0:00       ` Farshad Nayeri
1997-05-05  0:00         ` Rennie Allen
1997-05-05  0:00           ` Farshad Nayeri
1997-05-06  0:00       ` Richard Watts
1997-05-06  0:00         ` Farshad Nayeri
1997-05-06  0:00         ` Robert Dewar
1997-05-06  0:00           ` Spencer Allain
1997-05-13  0:00             ` W. Wesley Groleau (Wes)
1997-05-15  0:00               ` Kaz Kylheku
1997-05-02  0:00   ` Lance Kibblewhite

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox