Developing Reasoning and Problem Solving Skills