A software infrastructure to support introductory computer science courses | Synapse