Combining cooperative learning and peer instruction in introductory computer science | Synapse