Computational Thinking and Problem Solving