The Challenges of Learning Programming
If programming was easy to learn, there wouldn’t be much challenge to computing education. Since programming requires the programmer to have a robust notional machine, then we could simply teach programming, and we would achieve all the goals described in Chapter 1. The problem is that it’s hard to learn programming.
In this chapter, I review what we know about the challenges in learning programming. The story starts with empirical evidence of the challenge of learning and teaching computing. Next, I present results from learning sciences on how learning works, so that we can use those insights to understand how to improve computing education. Finally, I offer two theoretical perspectives that ...