Text this: Algorithmic puzzles /