Self-efficacy and mental models in learning to program | Synapse