computational problem solving in python