Two of my favorites are
Project Euler which contains a lot of math type problems that can be solved in any programming language, and
UVa Online Judge which has literally hundreds of programming contest problems. Neither are the same as completing a project, but some of the problems are pretty fun and require a good bit of thinking about the algorithms needed to solve them efficiently. UVa online judge in particular taught me that although micro-optimizations can speed up your code a bit, optimizations to the algorithm, including choosing the correct data structure, are what can give your code a real performance
boost.
If you begin to try any of the problems and get stuck, post a question here or in the Programming Diversions forum and we might be able to help out.