* 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-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-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-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 ` 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 ` Robert Dewar 1997-05-06 0:00 ` Farshad Nayeri 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 ` Robert Dewar 1997-05-06 0:00 ` Spencer Allain 1997-05-06 0:00 ` Farshad Nayeri 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 ` 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
* Re: Why one school changed from Pascal to C++ 1997-05-06 0:00 ` Richard Watts 1997-05-06 0:00 ` Robert Dewar @ 1997-05-06 0:00 ` Farshad Nayeri 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-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
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 ` 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-06 0:00 ` Farshad Nayeri 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