Teaching Critical Thinking & Logical Reasoning in Undergraduate STEM Courses