Using scalable game design to teach computer science from middle school to graduate school | Synapse