A games first approach to teaching introductory programming | Synapse