A survey of literature on the teaching of introductory programming | Synapse