I'm teaching a programming course with ~20 students, guiding them through coding assignments and helping them understand what they are doing, and why it works or doesn't. Tasks expected of them range from trivial to medium-complexity in the range of a 40-hours curriculum.
Now, toward the end of the course, they know enough to solve moderate programming problems. In order to get them to work on a few things more "exciting" than what we offer them, I am considering asking them to join an online coding (or problem-solving-through-coding) competition, such as Project Euler. I wouldn't expect them to be able to solve all problems, of course, but I could select a list of problems for them to pick from. For example:
For this session, you are expected to solve between 5 and 10 problems from the following selection of Project Euler numbers: 1-10, 13, 15, 20-24, 26-29, 33, 35-38.
Sure, I could just copy these problems and make them "assignments" for them, but I think it could bring some fun for them to see it as part of a competition. Also, why I don't understand why, it seems that to their generation, doing anything online is vastly more exciting than doing the same thing otherwise. Finally, I have some hope that a few students might actually get into it, and continue doing it for fun after the course.
Now, comes the question: what downsides do you see to requiring them to participate in one of these online challenges? (I'm most interested in the specific case I detail above, but generic advice/answers for other types of online participation might be interesting too!)