>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
>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.