@Sunny66 Can you explain why you would be choosing between dartmouth and Columbia in this situation? From a curriculum standpoint I find that the ivies (Dartmouth and Columbia included) place a huge emphasis on CS theory ie abstract machines, NFA/DFAs, finite automata, grammar trees, etc. since these are the subfields of CS that the school is good for.
In contrast, I can see the core curriculum at Berk and UIUC place a massive emphasis on application (although UIUC seems particularly focused on Systems, especially operating systems and compilers).
While an understanding of theory is important, the ability to understand topics like data structures, software design, concurrent programming, parallelization, etc are ultimately what help you succeed on the job. While I can see that Dartmouth teaches all those things I don’t get the impression that they really push these topics as hard as the high ranking CS schools.
In addition companies know what schools are top for CS and what aren’t … they certainly wouldn’t recruit against dartmouth but they wouldn’t be throwing themselves at them like a UIUC/Waterloo/Berkeley/UT etc equivalent.
I agree with the idea that “being a math major at Dartmouth would do you just fine”, assuming they want to go to grad school. If OP wanted to get a job right after this would be a horrible idea.