Investigating the relationship between the development of abstract reasoning and performance in an introductory programming class | Synapse