Learning mathematics is different from learning other subjects. Even, learning Mathematics at different levels is very much different. The broad filed of this subject ranges from very concrete ideas to very abstract contents. How can we make our students gain the skills of mathematical problem solving skills effectively?