Earlier quoted context omitted.
While I think that most CS people should learn assembly and computer internals basics, it would be an absolute disaster to start students off in assembly as CS 101. Python is a fairly decent language for starting people off: * It doesn't have a lot of boilerplate, so no magic "I'll teach you what this means in three weeks" steps * Output for debugging is fairly easy, since print accepts a lot of stuff without needing…
It really depends on the type of school. We started programming on University with a simplified assembly, but it made a lot of sense since it was electrical engineering school and we've learned about hardware in parallel, so we could follow what physically happens when the code is executed. I don't remember that anyone had a huge problems with following it. For many people around me with good math skills, but no prev…
Luckily the introductory course was based on SICP - and it really realigned my BASIC- and C- damaged brain.
It turned out to be the only course that I enjoyed so I eventually switched to a more computer systems and sciences oriented education.
It was a good introductory course for me, and perhaps most others. Perhaps not good for the most daft though...
I guess you also need some assembler-skills but it's hard in a totally different dimension somehow.