The funny thing is most of those kids probably just want to learn how to make iphone apps and pretty websites but before they realize it they're stuck figuring out sorting algorithms and regex theory.
Sorting algorithms are high school material, I think they'll handle it. Especially if the professor is kind enough to say "...And never use these out of the classroom without a good reason to (and there is no good reason to use BubbleSort). Just use the built-in sort()."
Actually using regexes seems a lot more common in the working world than in academia; as for the theory the basics of finite state machines are about as hard as sorting algorithms. (Or do most CS programs these days cover even more ways to implement a regex parser? http://news.ycombinator.com/item?id=4194707 I have no idea what most CS programs do other than produce BigCo BigLang employees, Stanford's sounds better than that from all I've read and heard.) So no, instead of sorting algorithms, maybe they'll give up at suffix tries or Haskell Monads or Lisp macros or relational databases or garbage collectors or JITs or Bayesian networks or operating systems or... And while I don't know much about iPhone apps, I think Android apps are at least as hard as InsertionSort() and probably more frustrating. You even have a consulting business around them--does anyone have a business around sorting algorithms?
Who knows what their motivations are? Someone at Stanford should do a poll. I'd bet the same amount on "want to make something easy-sounding and specific like phone apps", "want to make lots of money doing who knows what" (maybe even as concrete as working for BigCo or doing a startup), and "because it sounds interesting/friends are doing it/other social reasons". If we're going to imagine them as fairly dim, it's easier to imagine they have no concrete goal in mind. (Edit: and according to my sibling comment, since majors aren't declared until later we probably shouldn't be imagining these students as dim.)
I wasn't trying to imply they are dim, I'm sure at Stanford they're brighter than the average students. My comment was more about CS degrees in general. I have talked to quite a few CS grads that were expecting more of a software engineering degree and were disappointed with what they thought was too much useless theory. I probably could have picked better examples to make my point.
Ah, thanks for clarifying. I've heard and read similar complaints, though they usually take the form that the CS programs just do a bad job with both the theory and the applications. I've read some and asked some to break down "a bad job" in theory, it leads to complaints like "outdated", "seems useless", "is useless", "needlessly complicated when we have X", "bad teacher", "presented slowly", "nothing bleeding-edge/it's all from the 60s", and so on. Breaking down a bad job in applications is mostly "didn't teach me X."
At Stanford, you don't declare your major until your 2nd or 3rd year, and can change it after declaring. Students declaring CS will have already taken a number of CS courses, including the fundamentals of CS.