Text this: Gamification and Self-Determination Theory in Teaching Computational Thinking