pygmy_giant wrote:What specifically did you teach them and what resources did you use? I would be interested to know as it could remove some of my fears as a 36 year old.
It is quite simple:
1::: Get them into BBC BASIC V to where they have a usable understanding of Variables, Scope, Flow control, etc.
2::: A little bit at a time get them to start replacing the built in BBC BASIC V commands with equivalent SYS calls, and in the process slowly introduce them to the concept of indirection (eg Pointers).
3::: Build on this until they are only using BBC BASIC statements for flow control, and managing variables. Then slowly step them into building WIMP based multitasking applications.
4::: Use analogies from BBC BASIC V to start them in assembly language, at first just very simple stuff that just calls a SWI and then returns, then add loading and storing to/from memory/registers.
5::: Slowly nudge them into using the flow control and translating the BBC BASIC V expressions into a sequence of assembly instructions (Remember integers are probably more natural for them than floating point so stick with the integer unit for now). They may stumble a little with division

though you will be surprised how much they enjoy knowing that they are getting the computer to do what they want with something close to its own language.
And before you know it they will be writing programs entirely in ARM Assembly.
I also thinks that this helps to explain my earlier statement about BBC BASIC being a good stepping stone into Assembly.
RISC OS, Giving the control of your computer to you.