I’ve always been fond of economics. To me, economics has always felt like a logical extension of computer science. (Elaboration: the science of computers is actually done by mathematicians and computer scientists apply these ideas to become ‘computation experts’ ). Since modern economies are driven by technology, often involving computers, and technologies change the way people work together, I’ve always thought of economics as aggregate theories on how people accomplish ‘things.’
But something interesting is happening in the field of computer science:
Computer science has lost its mystique. There is no longer a need for a vast army of computer scientists. The applications, games and databases that students once built laboriously in final year projects are bought at bookshops and newsagents.
If the gap between public knowledge and academic curriculum isn’t large enough, the gap between academia and industry practice is a gaping hole. While academic departments concentrate on developing new computer systems in an ideal organisational environment, a lot of industry has moved away from in-house development to a focus on delivering a service.
The field that has helped create most the of technological change in the past 50 years is going through a demystification process, and the ability to ‘compute’ has become so ubiquitous that it is no longer reserved for the highly trained. So what should we expect? Well, at the other end of this spectrum, meaning economics, if we’re to believe my model, there should surge and there has been. Here is some evidence from Harvard registration:
Ec 10, the popular name for Social Analysis 10, “Principles of Economics,†packs Sanders Theatre this semester with 736 undergraduates, despite a drop-off of more than 200 students from first semester. The course still has more than two times the number of undergraduates registered for the next largest course, Historical Study B-49, “History of American Capitalism.â€
With 355 undergraduates, “History of American Capitalism,†previously History 1651, is a newcomer to the top of the list. When it was last offered in Fall 2003, only 77 undergraduates enrolled in the course, and before that, 30.
Now, I expect that the field of economics will probably go through it’s own demystification process, probably very soon, brought on by technology, where economics will become an automated model that philosophers and politicians can tweak to build their ideal societies (and for you pessimists out there, this doesn’t necessarily mean utopian societies).
So what does this mean for the surge in interest in economics? Well, I expect an over-saturation of economists in the coming years, of which few will be good at, and a purge, reminiscent of computer science. But that’s the cycle of things eh?
Regardless of what is happening with economics, I have to register my disagreement with the claim that Computer Science is being demystified. Maybe it is not taught very well anymore but I don’t see computer science going anywhere anytime soon. It is an inevitable consequence of the advancement of technology that many software stereotypes/components like efficient sorting/searching/memory management/databases can be had for free or little cost. The fact is that the only reasons these concepts were taught at all were not necessarily because of there fundamental importance, but rather because: (A) the computer hardware technology at the time necessitated that they be taught and (B) as educational exercises in programming style. For example, as hardware speeds progress, the difference between a bubble sort and, say, a quicksort requires larger and larger sample sets to be noticeable. If the business need does not scale enough with the technology, then the difference will become negliglible or overshadowed by other bottlenecks.
See, the issue is that the traditional problems that were taught in computer science classes as “important problems that everyone must understand because your career depends on it” have changed. Back in the day, when hardware was scarce, mastering memory management (probably with c or assembly language) was an essential skill. Avoiding memory leaks was the difference between your application’s success or demise with a fiery death. You see, part of what has happened is that, relative to the consequences of poor programming, most software on computers isn’t mission critical anymore. One reason that there was a type of “mystique” around computer science in the past is because twenty or thirty years ago, the only software that was being used was either in academia or in large business or government mission-critical applications because those were the only organizations that could afford computers and the people to service them. What was more, the whole open standards movement hadn’t begun or was in its infancy at this time. To be a CS major, you had to be able to reinvent the wheel because everybody else’s “wheels” were all different sizes (and some probably weren’t even round). Now, since most software exists on homeowners’ desktops, it is not so important that they work flawlessly, only that they work most of the time. In the few cases where rock solid software is required, it is better to use pre-packaged software suites like Oracle (to use the quotation author’s example of databases) instead of trying a build a RDMS from in-house.
Ultimately, I think the key issue is not so much that CS become “demystified” but rather that the “market” (to bring economics into this) for solutions to the traditional computer science problems is saturated. But this is a recent phenomena — RDMS are an old technology that only recently have found mass-adoption. What was once a science is understood well enough and become cheap enough to where we are now in the applications phase of their evolution.
I don’t think that computer science is dying as the author (i.e., Neil McBride — I read his whole article). Far, far from it! One might argue that we are running out of interesting new problems to work on so CS majors should focus on applying pre-packaged solutions. I can certainly see an important role for the vocational route to teaching computer science, but I don’t think this is due to the lack of activity in the cutting edge of computer science.
Now, maybe I am misunderstanding what McBride means by “demystified” but I would argue that the cutting-edge of computer science is extremely “mystical” simply because in order to understand the problems and the solutions that are being worked on, one must move beyond the traditional confines of computer science. The problems in the cutting edge of computer science these days are so difficult that it requires an interdiscinary approach. I’m talking about general artificial intelligence, natural language processing, distributed processing, computer vision systems, cryptography, quantum computing. In order to make progress toward these problems, you need extensive training in mathematics, neuroscience, physics and other areas that aren’t traditionally taught in computer science courses. In a sense, we’re in the situation that the easy problems in computer science have been solved already — in some cases, decades ago. The only reason those particular problems seem to be demystified is because society is now is a position to apply them broadly. Make no mistake about it, although hardware is cheap enough and commoditized enough that we don’t need to pay people money to build “accounting packages, enterprise resource packages” and “customer relationship management systems” in-house, the cutting-edge problems I described above are difficult enough that they still tax today’s computer hardware. Research in natural language processing and computer vision require precisely the type of appreciation for algorithm efficiency that computer science should teach students to exploit because these problems are unsolvable (or impractical to solve otherwise). Hell most of the problems in AI are of the most difficult complexity class (NP-Complete or worse). Doing it well will require precisely the skills that McBride says are going the way of the dodo. I remember someone from Google (maybe Larry Page) describing the company as primarily an AI company — that is what will make or break it.
This drive toward interdisciplinary training is not unique to computer science. I’m sure that people thought that chemistry was dying too when it became clear that in order to solve the hard problems in chemistry, you had to know physics. One also might argue that chemistry has become demystified because the basic concepts are simple enough to be taught in high school. Toward the end of his article, McBride does indeed admit that the future of computer science is interdisciplinary, but I disagree with him on the manner that this will occur. His conclusion seems to be that computer science will devolve into a vocational field, focused entirely on applications to other discliplines. The focus will be on other disciplines primarily as the beneficiaries of computing. My claim is somewhat of the opposite, that computer science must be interdisciplinary not because other areas benefit from it but because it can benefit from insights from other areas.
Wow, my response is longer than the original message! Maybe, it I have too much time on my hands.
PS, you should update your server for Daylight Savings Time, Eddie.