I did math and physics in undergrad and math in grad school, and IMO they do more for critical thinking than CS.
I too mainly care about how someone thinks, since the wrong implementation can be very costly, and strong thought processes can help pre-empt that greatly.
Interesting point. The most capable junior programmer (in experience) I know has a math degree. Algorithms are basically obvious to him and he has no trouble solving tough problems quickly.
The thing that gets in his way though is that his soft-skills are the absolute worst and he still can't get through an interview to get hired anywhere.
Undergrad is peanuts - nothing like the intensity you see in grad school, it is on another level. FWIW, I spent 4 years at UIUC for grad school (top 15 math, top 5 CS), and found that the CS PhD students in my math classes were quite challenged by the pace and coursework.
I too mainly care about how someone thinks, since the wrong implementation can be very costly, and strong thought processes can help pre-empt that greatly.