If you're in California, definitely take a hard look at the UCs: in-state tuition is very reasonable, and the schools are among the best on the country for CS. Generally, the highest ranking UCs are: Berkeley, UCLA, UCSD, UCSB. All four of those schools tend to be in the top 30 for CS.
I went to a public university in my state (NC) and a top 20 public CS grad school - so I can recommend them. I have also worked with a lot of folks from all the other top CS grad programs across the country.
The thing I have found that is different with the folks who went to undergrad at some of best schools, like MIT, is that they spent more time focused on their studies than I did. And I'm saying this having been top of my class in both undergrad and grad school. So I'm not sure if that says something about public schools, liberal arts, or the kinds of people who target MIT. Probably all of these. In any case, I think you can get the same level of education at public schools if you're willing to put in a lot of your personal time. If it turns out that you don't want to be so hard-nosed about it, then I think you'll find a lot of cool things to do at a public school.
California! You have a TON of options. Stanford (free tuition!) and Berkeley are obviously two of the best in the world. UC San Diego and Caltech also have awesome programs, and I hear nice things about the sciences at UC Davis and UC Santa Barbara. Get yourself a college guide and check these places out!
As far as Berkeley "being an option", you realize you just named a school that most people rank tied for first in the world, right? The "B" in "BSD" stands for "Berkeley".
Good to hear that someone's trying to change that.