I believe the best way to teach students to program is to make them use something that doesn't give them a lot of distractions, something like a power C compiler on a floppy disk. No Libraries. No Object Oriented features. Let them learn basic programming contructs. Then teach them a new language that has slightly more abstraction. Fancy tools just get in the way of what really matters, learning to deconstruct problems into workable solutions.