In my earlier message, I didn't address the OO aspects. First, C++ is a "better" C -- I think that "cout << Variable;" is a lot more intuitive that "printf ( .... )" (or whatever the poor C programmer has to use) -- though it certainly doesn't hold a candle to "Put_Line ( Variable );". If I had to choose between C and C++ for the intro courses, I'd choose C++. That having been said: In CS1, the students have one assignment using user-defined classes. In CS2, the class is used as the encapsulation/abstraction mechanism for producing Abstract Data Types -- that's in all assignments (7.5 assignments in my case). By the fourth (middle) assignment, my kids are creating and using class templates. For the sixth assignment, they implement Queue as a child of List, so they're seeing inheritance. The 1/2 assignment (6A) deals with a heterogenous list (linked list of class-wide objects to us Ada folks). I certainly wouldn't say I'm teaching an object-oriented course, but it's certainly object-based with an introduction to OOP. (Pretty much what I did in the Ada version of the course, once Ada 95 compilers were available.) Now that I've got my feet pretty well grounded in the C++ stuff, I'm waiting for the Java shoe to drop. I think that would be worse. Phil Philip W. Brashear Software Quality Assurance EDS Corporation +1.937.237.4510 [log in to unmask] -----Original Message----- From: [log in to unmask] [mailto:[log in to unmask]] Sent: Thursday, October 05, 2000 12:57 PM To: [log in to unmask] Subject: Re: C++ as a first language >The intro C++ is being taught without the object >oriented aspects of the language, so I guess it really becomes a >"C class using the non-object oriented constructs specific to C++ and >not in C, and using a C++ compiler", >from what I can tell. The professors there are very concerned because their >students are performing much more poorly than they did with Pascal as an >intro language. >Now factoring out issues such as "teaching C++ for the first time" (which >maybe is more important in all of this than the language) ..... well what are >your all thoughts on this. My personal opinion, for what it's worth, is that this sounds a bit stupid! If they're going to teach C++ without the OO aspects, they would be as well teaching C as it would be much less confusing for beginners, however if that was the case, they would be much better teaching Ada as: 1) It has a Pascal-like syntax (so shouldn't be too difficult for the teachers to pick up) 2) It's OO features (at least those that are non-essential from a Software Engineering point of view, such as inheritance and classwide programming) can be avoided if required for simplification 3) It is better as an introduction to Software Engineering because it makes you think more about what you're trying to do WRT type conversions, proper used defined types and all. 4) It has inbuilt parallelism which replicates the way the real world works One of the particularly good things about Pascal is the fact that it was designed by Niklaus Wirth as a teaching language, this is not the case with C, and certainly not with C++. Since Ada is, to a significant extent, a derivative of Pascal, it should also be adequate as a teaching language. Whose idea was it to use C++? If they are looking to make the transition to OO programming later on, then surely they could continue with Pascal in the first instance and then move on to Delphi? I started with Pascal at university and, after using it for a couple of years in industry moved on to C. That jump was not particularly big as they're both functional languages. However, in the early days of trying to run with C++ I found it completely non-intuituve, particularly without a thorough grounding in the OO concepts on which C++ depended. My view is therefore that if they want to teach C++, they need to teach the OO concepts first (or at least at the same time). Hope this is useful. John