Text this: Intermediate problem solving and data structures