It struck me for some reason that this is an area I have never looked into, but I am interested in giving it a go. I find it amazing how such complex behaviours can be produced this way, like robots which have learned to walk via trial and error. I can't really think of a simple problem to start out with however. Any suggestions? I'm from a games background so it'd be cool, but not essential, for the problem to be games related.
EDIT - Just thought I'd add that I don't mind whether the learning is supervised or unsupervised.
I would check out the Euler project. They have some great problems that can definitely be of interest given you are a Math person or a person who loves a challenge.
I also really enjoying data structures. I would recommend creating a sorting program using a self-balanced binary tree. This is actually one of my most favorite algorithms of all times and when I first learned it, I didn't know that much about pointers so this really helped me. This algorithm also has recursion and overall I really enjoyed learning it.