Comment Re:Python (Score 1) 799
stoolpigeon is exactly right. The only thing I have to add, just to reinforce that Python is the right teaching language, is that it was first developed based on a language (ABC) that was designed specifically for teaching kids how to program.
http://www.linuxjournal.com/article/5028
"Guido: Yeah! So a language like Python, which actually has roots in educational languages, will do better. Python is very strongly inspired by a language called ABC; I worked on the ABC implementation designed by colleagues of mine in the early '80s. It was a wonderful language for teaching. The history of Python comes out of the frustration I had with that language when it wasn't being used for teaching, but for day-to-day ad hoc programming—but that's a different story. Python inherits a lot of that focus to make it very simple, easy to understand, easy to remember and easy to learn. It's a very good language to start teaching. We are very hopeful about that side of the CP4E effort."
Also, instead of jumping straight from Python to C, you could use Cython as a bridge, and use it to teach variable typing basics.
If I were teaching programming today, this is the order I would use: HTML, Python Scripts, Python Modules, Python GUI, pygame, Cython, C, C macros, C libraries, C compiler optimization, assembler... and maybe yacc, or just general compiler design. Tangential languages like Perl, Java, Ruby, and C++ can be introduced at any point, to show different implementations of concepts first learned in Python, but they are all optional. If anyone gets stuck somewhere before compiler design, let them stay there as long as they want. Everyone has their own pace.