UVa contains hundreds of programming problems. They are like the ones used during programming contests, and are available in HTML and PDF formats. You can submit your sources in a variety of languages.
Kattis is like UVa in many ways, but with a much more modern user-interface. Despite this, I have a preference for UVa because their problems are all in pdf format.