<p>Berkeley's CS education, if strictly confined to just the classes and the profs, is excellent. And obviously the Berkeley CS graduate education is world class.</p>
<p>The problems come with the flexibility of the undergraduate program. There are 2 ways to get a CS degree from Berkeley - either a BS EECS degree from the College of Engineering, or a BA CS degree from the College of L&S. I see a major problem with each. In the BS EECS program, you are admitted into that specific major in the college of engineering. Every single engineering major is impacted, meaning that there are more people who try to get into that major every year than there are available spots. What that means is that you can't really switch engineering majors. You have to choose what you want when you apply, with only constrained opportunities to switch. For example, if you are admitted as an EECS major, and then find out later that you like ME better, you can't just switch over just "like that". You have to apply to switch over and approval is far from automatic. It depends on your grades. </p>
<p>Even worse is what will happen when you try to switch to a non-engineering major. That means you are trying to switch to another college at Berkeley, probably L&S. Approval to switch colleges is also far from guaranteed - you need to have good grades to do so. </p>
<p>What that means is that, ironically, the EECS students who are doing poorly and are therefore the most in need of switching out of EECS are also the least likely to be allowed to switch out. Hence, the philosophy seems to be that if you are doing poorly in EECS, then you are forced to stay in EECS. What's wrong with this picture? If anything, Berkeley should be helping those students who are doing poorly to find another major in which they will do better. Trust me, there are a LOT of Berkeley EECS (as anywhere else) students who are doing poorly. </p>
<p>Now, take the BA CS program. You can't get into this major as a freshman. You have to do well in the CS prereqs and then APPLY to get into the major, and the competition is tough. The upshot is that a lot of people who want to be able to declare the BA CS major are not allowed and end up having to major in something they don't really want to do, not to mention coming to Berkeley and wasting time doing all of the CS prereqs only to find out that they didn't get into the major. </p>
<p>At Stanford and MIT, anybody and everybody is free to change majors whenever they want. If a Stanford CS student finds he would rather major in Film Studies, nobody is going to stop him. If a MIT EECS student finds he'd rather major in Literature, again, nobody is going to stop him.</p>