The impact of pair programming on student performance, perception and persistence | Synapse