A long long time ago I discovered Project Euler, a competition of sorts where the goal is to solve numerous mathematical puzzles with the aid of a computer. I originally thought it to be too difficult, but recently I revisited the site and discovered that I could actually solve the problems with what I’ve learned over the past few years.
Those of you with a programming inclination would probably be interested: it requires the use of some very clever techniques (so you can calculate such beastly numbers as 4000 factorial relatively quickly), and best of all, you can use any programming language you’d like.
So far I’ve solved 21 of the problems. I’ve mostly been brute-forcing the solutions (“guess and check”), but as I work my way into more complex problems which would take hours to brute-force, I’m being forced into cleverer and cleverer programs. It’s very intellectually stimulating.
If you’re up for it, try it out with your programming language of choice. It’ll help both your math skills and your programming skills — there’s nothing like trying to find the best way of calculating 4000 factorial in Lisp to make you learn about the language.