How the nature of programming and learning materials affects novice learner's motivation and programming ability | Synapse