Are challenge tasks like this a viable introduction to programming?
It's really bad for things like project structure and tackling multiple complex, related problems. Bigger picture ideas get lost because of the scope of the problems.
Really depends on what you're trying to accomplish. Think of them as a set of flashcards. I'd say it's one of the better ways to bridge the gap between beginner programming books and actually building small, useful programs.