A Novel Teaching Strategy Through Adaptive Learning Activities for Computer Programming | Synapse