Is there something like Project Euler, but with each task consisting of a broken program which you have to fix? So one can improve debugging skills. Where you can post your improved version, and it checks if your fixed version of the program works correctly (and possibly that you haven't just totally rewritten). Perhaps also a spoiler page which describes the problem and debugging techniques useful for the exercise.
Small/medium sized problems, not too big, so you can do them as sort of programming-entertainment. Fixing real problems in open source software is good, but it needs more setting up, the code is generally much larger and the problems may be too hard.