Examining the role of self-regulated learning on introductory programming performance | Synapse