Introduction to Computing and Problem Solving