The Future of Computer Science, and Why Every Other Major Sucks By Comparison
scottaaronson.com
scottaaronson.com
One "failure" scenario (to use "failure" loosely, since it's subjective) is, I think, the math one: CS becomes a narrow discipline of theory-of-computation, systems, and PL type theory, sort of like pure math. To get money, it spends its time teaching intro classes to other majors that the professors don't care about: the way math teaches everyone Intro Calc, CS will teach everyone Intro Java. And all the cool applied stuff, in this scenario, happens in other departments, which in 10 years will all also have computers, and many will know how to program. Not that likely, I don't think, but something to think about.
YMMV
The thing is, in general, a "person" might be able to hack together a small program that works for a particular problem most of the time, but it takes a computer expert to create a program that works essentially all the time, with good performance and strong reliability. If someone in the biology department is capable of doing that, it's probably because they're a "double-major", for some value of the term. A normal biology education will leave them unprepared, and trying to hack together a strong understanding of OpenMPI or something is certainly _possible_ but also extremely likely to leave gaping holes in their education. (Even if one has the brains to become both a biology expert and a parallel computing expert, one must question if that's necessarily the best use of one's time.)
CS keeps making it easier to write programs, but the cutting edge will remain CS's domain for a long time, and academia for some crazy reason tends to like the cutting edge. As specialization continues its march onward it will continue to become more and more difficult to be an expert in both $FIELD and computer science.
The modern field of CS is too broad for a single department. Perhaps more universities will follow CMU, creating a school of computer science with specialized departments. Until then, expect to see CS undergrads and Master's students involved in informatics/ML joining non-CS Ph.D. programs.
(NB: Nearly everyone in bioinformatics has to accept some gaping holes in their education -- who has time to become an expert in each of biochemistry, medicine, computer science, and statistics?)
I had a conversation with a friend only yesterday where I proposed exactly this. Some of the things that are now CS but I don't think will be in the future: graphics (as you said), HCI, robotics, and maybe eventually AI. I wouldn't be surprised to see both theory and systems (OS, parallel, etc) remain under the CS banner, though.
I anticipate CS will become a more narrow discipline, just as math has (remember that almost all of theoretical computer science and much of theoretical physics and theoretical economics was once considered part of applied mathematics...). I would not consider that a failur though. Those who wish to focus on the theory will stay with CS and those who wish to focus on the application will drift into the field of its application, again much as math, and much as you described.
I would hardly call that either a failure nor would I think CS would be reduced to teaching intro classes. First, remember that in the parallel of mathematics, people in math heavy disciplines will continue taking math classes throughout their undergrad. Again, there is a real demand for people with math degrees both working in applied mathematics for the industry and because it makes a good basis to branch out to other fields (I am getting a masters in math and work as a DBA...) So, I would hardly call that a failure, just a narrowing of focus, which can be a good thing. Those who want that focus will stay with it with less baggage in the applied side, and those who want the applied focus can target that with less baggage on the theoretical side.
http://www.slideshare.net/gmaney/computer-science-is-the-pro...
...though reading that presentation made me feel like I was reading Time Cube quackery. What the heck is "Automation Science?" Google didn't bring up anything specific...
Also, a lot of excellent ideas (e.g. the Web) were of almost no interest to academic researchers in relevant fields at the time - they dismissed it as a toy. And perhaps from a purely academic viewpoint they were right - but that doesn't mean that it isn't of use to billions of people.
Slide 6 represents Facebook with an attractive woman. (why?) Slide 13 compares steak to salad. (why?) (and note that it's not as if women do not eat steak, but culturally steak is a more "manly" food than salad)
Why? Because political correctness says so?
I don't understand this obsession with "diversity" in the U.S., I really don't. Personally, I think that we should instead bring intelligent and motivated people into CS. If they're all white males, so be it. They could be black-asian mixed-blood muslim lesbians... who cares? Just as long as they're interested. People who choose a career based on the "coolness" factor dictated by the clueless masses are like people who choose jobs based on the title (I will kill the next person who claims to be hiring code ninjas)... they are sheep. We need wolves, not sheep.
You want diversity of opinion and diversity of talent. The question he's asking is: why do Americans care so much about diversity of skin color? Why does it matter if the engineers are all black or white or Malay or whatever?
"There were too much buttons on it - it had been only designed by a team of men, all engineer."
Yup. Because all men are incompetent at UI design, just like how girls can't do math. </sarcasm>
"You want diversity in the product conception because you want your product to appeal to a diverse (global) world."
What does that even mean? The vast, vast majority of products are only intended for First World use, because only First Worlders have the money to buy them.
I really don't like how people use the words "cultural diversity" as a feel-good buzzword without actually understanding what it means. Real cultural diversity doesn't consist of dark-skinned people with bright-colored clothes doing some sort of ritual dancing. Real cultural diversity is like http://www.youtube.com/watch?v=OFkeKKszXTw - things that seem horrifying, disgusting, and wrong to us. (Biblical culture is roughly as distant from ours as many African cultures are.)
Engineers are supposed to design systems given some specs. The specs are to be compiled by someone else. The designers are the ones who should worry about the buttons in the product. The engineers should worry about making the electronics and software work.
So, I say it again: we need wolves. Not just in electronics and software, but also in design, manufacture, etc. People who go along with the flow make good, loyal employees at some big corporation, but they will never create anything new... and the main reason is that they lack the motivation to create something new. If they had such motivation, they would be wolves.
While I agree with you that ideally the most motivated, competent, intelligent people should be in X field and those are the only criteria one should care about, the reality is all too often quite different.
What does that even mean? What you want is diversity of opinion (so that, if one person has a bad idea, everyone else will call them on it instead of nodding like sheep), and diversity of talent (so that everyone doesn't share the same weaknesses). I suppose those correlate with gender and ethnicity to some extent, but why not try to hire people with lots of different resumes (coders at big companies, startup founders, independent consultants, people who've lived abroad in different countries, etc.)? That would be way more efficient.
"Because if a field is dominated by say, white males, the few women or non-white males are going to feel (frequently with good reason) like they're not taken as seriously by, or seen as being as competent as, the other white males."
Proof? Some fields are obviously like this, but why all of them, or even most of them? If a field is dominated by people who are born in the winter (as many professional sports are), is someone born in June going to be assumed to be less competent?
Do they?
Note that if they actually do, the logical implication is actually less diversity within a given task area because different task areas benefit from different perspectives....
I don't pretend to know every reason for the gender imbalance in CS, but I can suggest a couple of factors that likely contribute. One is cultural stereotypes about the type of person who would get a CS degree. The stereotypical CS person in the US (and in the UK as well, if the BBC's TV shows are any guide) is an introverted, socially awkward, physically weak male. This stereotype is pervasive enough in our culture to harm many peoples' interest in computers from a young age; it likely keeps both men and women out of CS, but I suspect it has a disproportionate effect on young women due to the particular social pressures they face. Working to eliminate this stereotype would help everyone involved and bring more talent into CS.
The other factor is that CS can be a bit of a boy's club at times. I've seen some of my CS professors make comments that frankly shocked me about things like the role of women in the workplace. There's no excuse for this attitude; it can do nothing but push talented people out of our field, and anyone involved in academia should show no tolerance for this kind of behavior.
Frankly, I think this discussion of "wolves and sheep" is nothing but an excuse to sweep very real cultural problems, both in the general US population and in academic institutions, under the rug.
It's perfectly ok to value competence and interest-level over diversity. But why are there significantly fewer women in computer science? Because they are less competent or interested for some biological reason? Absurd.
Few women are in computer science for a host of reasons (and probably more we do not know about). Perhaps the slides I pointed out in the presentation are part of the reasons. It's hard to be sure but when we give presentations about joining CS, perhaps we can specifically try to avoid isolating women. (Of course, I have not solidly argued that those particular slides do isolate women.) And I mean specifically, intentionally avoid isolating women. That is, read over the presentation twice; the second reading is to find such issues.
Slide 13 compares CS at MIT to steak at a steakhouse, and salad to any other major. As far as I can tell, most women prefer steak to salad, given the choice and no strong social pressures either way.
I'd say this slide set is much more encouraging to women in CS than discouraging.
I also feel slide 6 is generally a negative view of CS, since it refers to "The Matrix", and the joke in the notes is about how people already upload their brains to the web and escape "real-life". Finally, "these are some of the LESS interesting things we talk about in computer science!"
This slide does not show that creating tech is for everyone, simply that, in this case women at least, make significant use of it (for better or worse...).