A Conceptual Model for Learning to Program in Introductory Programming Courses | Synapse