On Sun, Feb 03, 2002 at 10:34:44AM +0000, Damian Counsell wrote:
'Frank Shute' wrote:
On Sat, Feb 02, 2002 at 08:25:14PM -0000, Nick Clarke wrote:
The best way to learn programming IMHO is unix shell. If it must be on a Windows platform then they could use perl, or for an oo language python or Java.
Sorry, but after more than 20 years teaching programming in Schools and Colleges from the youngest to degree level, these would not 'cut the mustard'
Students of all ages want their programs to look nice.
Do you know what? I don't care what the kids want, I want what's good for them.
I want my students to be educated. Generally that's good for them. Better they grasp 90 percent of something that's not quite ideal---probably not Visual Basic, though---than they retain just 10 percent of something that's "good for them".
You missed my point, I want what's good for them in terms of education and as you rightly say that's `probably not VB'.
They will spend hours making a simple program like a metri/imperial convertor look the part.
Hours wasting their time polishing turds.
Today most naive users would never use, say, a metric/imperial convertor that ran at the command line.
You have to ask yourself: Why are these users naive? Could it be that they're being taught to be naive? Are they being taught that the only way to use a computer is with a mouse clicking widgets? Do they always have to prompted with metaphors & cartoons?
It doesn't matter how bug-free, elegant and ideologically sound a piece of software is if no one uses it.
I'm not concerned remotely about idealogy in this context, nor elegance nor bug frequency. But it's a known fact that bug-frequencies escalate when using C/C++ & some of them can be subtle and unrewarding to track down for a beginner to programming. Even the best can put out stuff with stack overflows.
And rigour need not be sacrificed for usability.
This so called `usability' benefit when using IDEs is a myth - it's just a distraction that hinders the unsophisticated users from understanding what is really going on.
Like it or not, it is Windows that has made them expect this. As a C programmer I would like them to learn C, followed by C++ ...
I wouldn't. They'd get bogged down with pointers & casts etc. They should learn on a garbage collected, non-strongly typed language....without a GUI.
What's wrong with a GUI? Java is an *excellent* teaching language, for example. This is like saying that students should use a fountain pen because it's a "proper" pen---rather than a biro which would allow other people to read their writing properly.
Java is an excellent teaching language & properly taught teaches people the advantages (& pitfalls) of object-orientation. But you seem to think that developing simple programs in it means using a GUI, it doesn't - I'm using vim and the command line to get to grips with it the same as I do for all languages. For my more complicated university work with piles of classes etc. I'll be using an IDE - largely because I've been told to. Every language I've ever programmed in I've been able to do so using bash & vim. Now suppose for those half dozen plus languages I'd learnt, I'd used a different IDE in every case? I'd now be very good at using IDEs but I wouldn't have got a hell of a lot of programming done would I?
What the program looks like is a total irrelevance,
Even in the academic world the take-up of a piece of software is directly affected by the way the program looks. Understanding how to build a usable and appealing interface is intellectually worthwhile---and of great practical consequence.
I agree with you, but first you need to get the fundamentals right *before* you start say using Swing in Java.
For years the Japanese made reliable and economical cars that no one wanted to buy because they looked awful. The Land Rover is a fundamentally sound design,
It's not, FWIW. I've studied mech/man engineering & can tell you they're a pile of trash.
but Rover wouldn't sell so many of them if they didn't also make a pretty Freelander model with colour-keyed bumpers and curvy lines.
People buy them solely on how they look & the ludicrous adverts suggesting they'll be `more of a rugged outdoors man/sexual stud'. Sad but true. On the other hand what the Japs don't know about quality engineeering isn't worth knowing, despite Ford originally leading the field in the area.
it's what it does & how it does it that's the interesting thing & by pandering to their supposed preference/interest in an IDE/RAD you are hence focusing their attention away from the interesting bit; in essence you're failing your pupils based on your own uninformed prejudice.
Irony alert!
VB or Delphi are the only real options.
Prejudiced drivel.
You may have a point there, but Delphi is based on one of the most popular and successful (and "ideologically sound") teaching languages ever: Pascal. And it looks nice too.
But they are not the only options by a long way and to suggest that they are is total & complete bilge.
(C Builder would be better, but for some reason it has never caught on as I would personally like it to) Kylix has just arrived, and this may change things a bit.
I've told you why C/C++ are not suitable languages for secondary school students & your suggestion that they are shows you know little about programming and even less about teaching programming.
This is an argument of the "you disagree with me so you are ignorant" variety.
The use of good libraries can make learning C/C++ appropriate at any age. You can hide away the nastiness of print statement syntax, pointer arithmetic and memory management and get across good programming principles at the same time. Also, whether we like it or not, most "real" software is written in C/C++, including Linux.
So what you're saying is that you need a pile of non-standard libraries to make it usable for beginners. They then go out into the real world and wonder why their programs won't compile. Why not use a language where the equivalent of getch & printf etc. are simple & come with the core classes/libraries of the language? Wouldn't that make a lot more sense? FWIW, I've got nothing against C, it's a great language & gets you close to the hardware. C++ I've got my reservations about, yes, piles of software is written in it but personally I wouldn't write anything in it - people should be using more modern OO languages - even MS have come to that realisation. Shame that most of their bug-infested software is already written in it though. Leave C/C++ to more advanced students like Chris.
English is a horribly inconsistent language in which slight errors in syntax can have catastrophic effects. Somehow, despite its unsuitability, it has displaced Esperanto from our secondary schools. Very young children seem to be quite good at picking it up. What they do once they've got hold of it is another matter...
Programming languages and languages per se have very little in common. One's logical & the other is not & subject to nuance etc. so your metaphor is inappropriate.
Even at advanced level GNVQ students are not expected to produce fully operating GUIs as well as fully working programs, only the latter.
Quite right too.
Hear, hear.
[snips out aggressive *ad hominem* stuff]
Climbs down off soapbox and settles down to do some real work on my Linuxbox - but that is as a consultant, not in school!
God help your clients....and your pupils.
Two of the keys to consulting are to listen to people's needs and to be prepared to compromise. Nick Clarke's original email made reasonable points and seemed to balance up different considerations in a thoughtful way.
His original email was neither considered nor thoughtful, it just demonstrated that he'd neither considered nor thought through what he was saying - a quick wave of the hand saying `20 yrs in the business' doesn't mean it's thoughtful & worth reading.
I didn't agree with a lot of what he wrote, but I think he mentioned his 20 years "in the business", not so much to "prove his rightness", but to point out that his opinions were the result of experience rather than bigotry.
He never made any attempt to bring to light any of his experiences in 20 yrs that backed up his wild & indiscriminate assertions about learning to program. At least I've had the decency to back up my wild & indiscriminate assertions with a few facts and personal experiences.
We share a lot of common ground on this list, but sometimes you'd never guess it from the (personal nature of the) conflagrations.
I just speak as I find, I'll leave the diplomacy to others. -- Frank *-*-*-*-*-*-*-*-*-*-* Boroughbridge. Tel: 01423 323019 --------- PGP keyID: 0xC0B341A3 *-*-*-*-*-*-*-*-*-*-* http://www.esperance-linux.co.uk/ Q: What's the difference between a dead dog in the road and a dead lawyer in the road? A: There are skid marks in front of the dog.