Human and Machine Problem Solving