
(in no particular order)
- Sphere Online Judge
Supports more than 30 different programming languages and a growing problem-set of about 3000 tasks for practice.
- Project Euler.
A "series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve".
- UVa Online Judge
More than 200 contests and more than 2000 algorithmic programming problems.
- TopCoder
Not only algorithmical, but also architectural and design contests.
Happy coding!
If you still haven't got enough, check out the
Google Directory of Programming Contests.