Some like UCB and UMich could arguably be considered both…and UCB’s CS program is at the very tippy-top of CS/engineering programs alongside MIT/Caltech/CMU/Stanford.
Among hardcore aspiring and bonafide CS/engineering majors I’ve known, it wouldn’t be considered unusual or shocking for those even accepted to strong Ivy engineering/CS programs at Princeton, Cornell, and Columbia SEAS to turn them down for public institutions such as UW, GT, UIUC, UMich which are considered comparable/slightly stronger.
It’d be even less unusual/shocking to such a crowd if one turned down Princeton, Cornell, or Columbia SEAS for UCB as some friends and relatives did…especially in-staters.
Speaking from experience, Cornell University has a great CS program that allows you to focus your major on certain ‘vectors’ (i.e. basically specializations in a particular subfield within CS). These include Computer Security, Artificial Intelligence, Information Systems, Programming Languages etc. Cornell also has a multitude of CS classes that deals with the theory behind CS and the real life application of programs.
I have heard that Carnegie Mellon has a top notch CS program (I’ve even heard it is #1 among all universities, or that it’s atleast getting into it is as difficult as getting into an Ivy or MIT). I have friends who go to RPI studying CS that are impressed with the CS program as well.
Look at the scientific publications. What authors are publishing articles in artificial intelligence? Where are they located? Is it possible to ask them for an internship (UNPAID!)?
Probably not if “Ivy League levels” are out. Some of the Ivies and peer schools will offer n-b aid despite incomes even a bit higher than $200K. Depends on assets, number of kids, etc.
I ran the College Board NPC for a hypothetical family making $220K, with 2 kids (one the applicant, the other aged 14), no home equity, $40K in cash assets. Estimated need-based grant aid:
$16,410 … MIT
$15,150 … Amherst
$11,024 … Pomona
(YMMV)