Teaching and Learning Computer Programming Using Gamification and Observation through Action Research | Synapse