If you really want to dig deeper into educational research and how it applies to teaching programming, you should grab a copy of Juha Sorva's PhD thesis. The UUhistle system he built is interesting, and the research he did with it is thought-provoking, but what's really great is the summary of educational research in the first third of the thesis. I've extracted that part with his permission, and I can't recommend it highly enough.

This post originally appeared in the Software Carpentry blog.