Problem solving and critical thinking