Problem Solving and Critical Thinking for Designers