Ok for the point of view of a current secondary (11 to 18 years old) teacher in a good quality school (Boys Grammar School) in the UK:
Boys don't like reading (a generality but like most generally true) they prefer to have someone tell them.
Reading
and understanding if you have neither experience, a technical hobby or background may not be the same thing.
Without the tinkerers willingness to 'have a go, so what if I break it' attitude many people are frankly scared to dive in -
more so if a) they think they have followed instructions but it still doesn't work, b) they entered the supplied code - didn't understand how it worked anyway because it uses some complicated and "interesting" features AND the example contains errors they are never going to find at their stage of knowledge.
Personally I break the teaching into 3 sections:
1. A basic overview to understand what "control" is and what the systems does with no worries about HOW it does it (Magic will do for now) - Sensors, lDR, Thermistor (see later) - output devices LEDs, Piezo sounder, motors. The average 12 year old does NOT know how an electric motor works - science in UK schools no longer teach this, although they may show them a picture.
2. The 7 most useful commands you need to get a grip of:
High
Low
Wait/Pause (Note: the average beginner has no idea what a milli second is)
Goto and labels
For ...Next and variables.
Sound because the kids think it's fun.
Couple those with some LED work to get them seeing it in action and after 6 hours most will be programming multiple LEDs some can be shown 2 LEDs between 2 outputs, all will be making a noise as soon as the first one does, and about half will have some immediate grasp of what they are currently doing.
The next 2 lessons go to driving other things - motors because they are useful beasts.
I explain relays, an electromechanical switch, and pass round a BIG one with no cover on so they can press the leaver and see the contacts change.
They take the idea of a relay H bridge very easily. The we go onto the L293 (same but smaller - who cares what is inside at this present time only what it does.
We bread board the L293, a small motor/fan a thermistor and a light bulb (BIG jump for some but they already know they can make things turn on and off)
In pairs for support we discuss advanced programming - READADC - The kids programme the fan to turn on to cool the thermistor, and the bulb to come on to warm it up - Air conditioning system/greenhouse control.
This pretty much fills 6 weeks 1 hour a week.
In the next 6 weeks we build a simple 2 motor robot simple touch and reverse action but the kids like them and most can easily programme them.
After that it is up to them - I point them at Picaxe.com, I tell them it's cheap, I tell them to show their parents (interested!!!), Hardly ever do any do anything about it because it's so much more fun killing alien monsters on your ready made sleek and cool XboxtendoWii or whatever.
BUT where would the world be if we were all engineers - i hear Dippy saying "a better place" - OK
Fact is, (I think), This forum is invaluable because of the experienced people who are willing to give their time again and again to the same issues with different people and often without a word of thanks.
Without the support many/most would not get past point a).
We do however have 2 issues - 1. the beginner who can't get the durned programme to download. 2. The advanced user who needs some highly complex heavily optimised code to drive their wireless driven remote ant colony simulation designed to cleanup nuclear waste in the event of the next government screwup.
They are 2 distinct areas and have different needs - PLEASE guys don't get discouraged and stop replying to the beginner (RTFM isn't always very useful although with a page ref it may work - see above) - good teaching is a log with an expert at one end and an open mind at the other, (Mark Twain - paraphrase), Keep them logs rolling.
We were all beginners once, and remember how hard valves were to get working Stan?