Would you like to take your programming and problem-solving skills to the next level? These days I've been spending some time daily at a website called Project Euler. Project Euler is a series of programming challenges containing at present more than 300 problems(and it is growing!!).
From what I've experienced up till now, most of the problems at Project Euler require both mathematics and programming. Many problems require learning about various mathematical and programming concepts and thus, is very suitable for getting introduced to new and useful topics. Also, as "problems range in difficulty and for many the experience is inductive chain learning" so you will be able to learn new things from solving a simple problem and then move on to relatively more difficult problems.
As, most of the problems are numeric in nature, using Python is quite an advantage. Once you understand what the question is asking, you may find the answer right away by using a naive brute-force, however, most of the times this approach won't be efficient enough and you'll be out again searching for improving your program. And, that is what makes it a wholesome educational experience. This can become frustrating at times, but don't just give up; most of the times the solution is just right under your nose waiting to be found out.
Check out Project Euler here- http://projecteuler.net/