There's a lot of spread, as in all things. I did the Ivy League thing many (yikes, many!) years ago, and met plenty of genius types and a handful of dunces. And in programming, the divide between people who can learn the subject well enough to pass the course and those who can Get Things Done is very pronounced even at top schools.