I was reading the Coding Horror blog and as usual, I checked out the comments. The first comment mentioned a site called Project Euler '... riddles to learn a new programming language...'
This sounded cool so I checked out the site and so far, I've solved 10 of the 200+ riddles. Each one took me around 15 minutes to solve. I'm sure the harder ones will take much longer.
As far as I can tell, all the riddles deal with math - prime numbers, Pythagorean triplets, Fibonacci sequence, etc... I never took anything past Algebra II / College Algebra. And while I probably could solve some the problems faster if I had taken more math, I have been able to solve the problems with out too much problem.
Some of these problems have let me use some really cool objects in java, like BigInteger. I even got to use the StringUtils.reverse method - I never needed to check for a palendrome before.
These problems might be a great way for someone to learn a new programming language and I really have enjoyed solving them.