Text this: Using Adaptive Content Recommendations to Improve Logic and Programming Teaching and Learning