Tools for practicing problem solving and expression of algorithms
Problem solving is best done (in my opinion) on pencil and paper. However, some other useful tools for helping solving problems is Wolfram|Alpha. If you need to, Python is a fairly good scripting language for solving problems. Of course, this all depends on what kind of problem you are working on (for example, a geometry problem would be very difficult to solve using Python).