Undergrad is very hard to rank (if not almost impossible).
There is a reason why the USNews has an overall undergrad ranking over ‘undergrad major ranking’.
Personally for undergrad, go the best school you can get into without breaking your bank.
Your peers rather than the professors has more influence in your learning during the four years.
Anyways, the “top 10 computer science universities”. From my experience, no one really cares outside high schoolers or on forums (or parents/alumnis who love to brag).
Is the “top 10” ranked out of “which school is the most renown” or “which school offers the best overall education” or “which school forces you study the most in your field for undergrad” or “which school has the best overall job placement” or “which school has good grad placements” or “which school has most research opportunities” or “which school has a very difficult curving system” or “which school offers the most courses” or “which school offers the most depth”?
If we go by the top schools with overall “difficult” undergrad cs programs, I would personally claim:
University of Chicago - This school starts with a functional programming language for its introductory class. And its honors intro course with Haskell I hear is no joke. Most students in the US majoring in CS would have probably dropped out of CS if they went to UChicago.
CalTech - This school makes you study from morning to night. Pretty much over 99% of the high school students right out of school would probably fail within the first semester or two. That said, this school does not have the breadth (it has the depth if you are going to the purer side of computer science). It breeds future professors, not future workers.
Rice University / Brown University - I consistently hear good reviews of how their undergrad programs are some of the best overall in the US.
Harvey Mudd College - This school is a very STEM focused liberal art college. Students here overall breathe on sciences
And then there’s the usual suspects like MIT, Stanford, CMU, UIUC, etc.
Truth is for undergrad, rankings in a ‘major’ is extremely difficult. And it doesn’t help that quite a chunk of your courses in undergrad are OUTSIDE your major and thus your peers overall in the school probably have bigger influences on you than the grad rankings itself.
I mean look at Bill Gates and Mark Zuck. Both are from Harvard. Harvard ain’t rank 1 in CS but the fact that your peers are people like them has a bigger influence in the learning in undergrad.
Just go the best school you can get into (and afford without being financially crippled).
Overall though, college learning has more to do with the professor you get in the course.
You could attend the best CS school on the planet and your Intro Programming might only require you to study like 1~2 hours a week.
You could attend a no-one-really-knows CS school and your Intro Programming might require you to study 30~80 hours a week (though at this point, I really question if the “Intro” course is actually an “Intro” and whether you are actually learning a common starting language or Assembly + Functional Programming + CS Theory + etc).
No one really knows. Plus in college, some students “avoid” all the difficult professors and have an easy time getting high GPA in their majors. Some students study so much more in the same courses but have lower GPA. Too much variables in play. Anyways, if you are really stubborn about rankings, just use your brains and figure out after looking at the overall undergrad USNews ranking and the grad ranking. That said, any school in the top 50 in the USNews undergrad should open plenty of opportunities for one anyways to worry about rankings in undergrad.
Anyways, Rice, Brown, Princeton, Columbia, Cornell, Harvard, Duke, USC, UMich, UWiisconsinMadison, UWashington, CMU, UIUC, etc. are all good schools for CS too. Just know for UWashington, you have to directly apply to the major (like UIUC). Take that into note before applying to colleges! Goodluck