Ingo said:
Eric said:
Let me turn the question around: If you were preparing
a course on C, what features would you omit altogether?
Would you omit [...]
`long double'? `<stdarg.h>'?
`continue'?
Sure.
What's the difficulty with long double?
A course has to introduce numeric data types, which fall into 2
categories: integral types and floating point types.
Right-ho, two categories: integral and floating
point. And complex. And -- I'll come in again. There
are three categories of numeric types in C: integral,
floating-point, and complex. "What about _Bool?" Wait,
I'll come in again. Amongst the various categories of
numeric types in C are such diverse elements as ...
Aw, the heck with it. Fetch ... the comfy `char'!
Getting back to the original topic, I now feel I was
hasty to imply that an incomplete course was irresponsible.
It all comes back to the course objectives, that is, to the
promise made to the student: "Pay attention, do your work
diligently, and you will equip yourself to do _____." There
are many ways to fill in _____, and I unconsciously presupposed
one of them: "competent (albeit inexperienced) C programming."
Other course objectives can be perfectly valid, and cheat
nobody if properly advertised.
Still, a course title like "Advanced C" raises hackles.
If the original course was a thorough introduction to C, I
don't see what's left for the "advanced" course: the focus
will be elsewhere (algorithms, data structures, software
engineering, numerical methods, ...) even if the programming
tasks are carried out in C. And if the original course was
intentionally (and overtly) incomplete, the follow-up ought
not to flaunt an adjective like "advanced." "Remedial" might
be a better match, but its pejorative implications probably
obviate its employment. Harrumpgh.