Slashdot Mirror


Is Computer Science Dead?

warm sushi writes "An academic at the British Computing Society asks, Is computer science dead? Citing falling student enrollments and improved technology, British academic Neil McBride claims that off-the-shelf solutions are removing much of the demand for high-level development skills: 'As commercial software products have matured, it no longer makes sense for organizations to develop software from scratch. Accounting packages, enterprise resource packages, customer relationship management systems are the order of the day: stable, well-proven and easily available.' Is that quote laughable? Or has the software development industry stabilized to an off-the-self commodity?"

7 of 641 comments (clear)

  1. Wow! by OverlordQ · · Score: 5, Interesting

    Accounting packages, enterprise resource packages, customer relationship management systems are the order of the day: stable, well-proven and easily available.

    And who made those packages?

    Software don't write itself.

    --
    Your hair look like poop, Bob! - Wanker.
  2. Re:Graduates are in short supply by cyclop · · Score: 4, Interesting

    This doesn't mean CS is dead.

    Surely computing is much more accessible, and there is a hella lot more ready-to-go software and libraries compared to what was there 10 years ago, but this means nothing. New applications will always be needed/invented, and someone will need to code them. And even with the latest and easiest programming languages, doing things well needs some kind of education.

    I am a biophysics Ph.D. student. I have never had a formal CS education nor I am a code geek (although I like to code), and just building a relatively little data analysis application with plugin support in Python is making me smash my nose against things that would make my code much better, that probably are trivial for people with a CS education (what's currying? what is a closure? how do I implement design patterns? etc.) but that for me are new and quite hard (btw: a good book about all these concepts and much more?): so I understand why CS is of fundamental importance.

    --
    -- Patent no.123456: A way to personalize /. comments with a sig attached to the end.
  3. Re:dead no, dying? yes by Geoffreyerffoeg · · Score: 4, Interesting

    The normal course of action is to blame Java, since it has led to a simplistic approach to CS assignments.

    You should blame Java. And you should blame C++, Python, and any other similar medium-high level language, if that's the intro language and your sole teaching language.

    Here at MIT we have 4 intro courses. The first, the famous Structure and Interpretation of Computer Programs, is taught entirely in Scheme, a purer and more pedagogical dialect of Lisp. You learn how to do all the high-level algorithms (e.g., sorting) in a purely mathematical/logical fashion, since Scheme has automatic object creation / memory handling, no code-data distinction, etc. At the end of the class you work with a Scheme interpreter in Scheme (the metacircular evaluator), which, modulo lexing, teaches you how parsing and compiling programs works.

    The next two are EE courses. The fourth starts EE and quickly moves to CS. You use a SPICE-like simulator to build gates directly from transistors. (You've done so in real life in previous classes.) Then you use the gate simulator to build up more interesting circuits, culminating in an entire, usable CPU. From gates. Which you built from transistors. The end result is, not only are you intimately famliar with assembly, you know exactly why assembly works the way it does and what sort of electrical signals are occurring inside your processor.

    Once you know the highest of high-level languages and the math behind it, and the lowest of low-level languages and the electronics behind it, you're free to go ahead and use Java or whichever other language you like. (Indeed, the most time-consuming CS class is a regular OO Java software design project.) You're not going to get confused by either theory or implementation at this point.

    So yes, blame Java, if you're trying to teach memory allocation or algorithm design with it.

  4. Computer Science "is too hard" by Rik+Sweeney · · Score: 5, Interesting

    That's why people don't do it. When I was at University in the UK (Portsmouth if anyone cares), I did Maths and Computing.

    The first year consisted of learning how to format a floppy disk and write a Word document. Oh, and there was some Java thrown in there, but people found Java too hard and complained. Java then got removed from the curriculum and we did crap like theories in Artificial Intelligence instead.

    We had the option of doing C++ in our final year but this largely consisted of printing out to the console and writing some text to a file. No fancy shit like Pointers or anything like that. Most people didn't elect to do this option as programming is hard work and they just stuck to Matlab instead.

  5. Re:If you only want to do pure research, maybe by ZombieEngineer · · Score: 4, Interesting

    I don't know if this was meant to be a flame bait but I'll bite.

    I am an engineer by trade (making training simulators for chemical plant operators) and I have encountered more than my fair share of Computer Science graduates.

    A lot of these people are focused on "how do I meet this product spec?" and not necessarily a solution fit for purpose. I routinely encounter situations where enumeration comparisons are done using strings and searches are implemented using a linear search (I kid you not, I once reduced a program run from 90 mins to 4 mins by replacing a single linear search with a binary search). Just because every 6 months there is a more powerful CPU on the market doesn't justify ever increasingly sloppy coding.

    There are a few people who are focused on "how do I make this better?". For these people making a compiler that would recognise linear search and replace with a more appropriate technique automatically is there objective, before people jump up and down saying there is no way a compiler could determine this I will point out that there was a consulting company who 20 years ago had a FORTRAN compiler that would silently replace nested loops with equivalent BLAS matrix calculations (said consulting company was bought out by Intel several years ago). So what is the big deal? FORTRAN died several years ago... Well it is a bigger deal today with Dual Core processors where things like BLAS calculations are perfectly suited to parallel processor architecture.

    Moving on to address some of your other comments: "Everyone still needs an IT department"
    If your IT department is stacked with CS people then someone isn't doing their job properly. I found IT support (did it for a University department while working on my post-grad) is highly dependent on the level of planing and implementation. A well planned system with appropriate lock-downs (era of Win 3.1, we mirrored the HDD of the local machine from the network server when people logged in) resulted in no viruses or other on-going issues (you had a network drive for personal storage but the desktops were a shared resource, you could install software, use it but the moment you logged off and back on again - Poof!). Prior to having a planned strategy, IT support consisted of firefighting & band-aid patching.

    "There are a ton of companies who need very specialized internal applications, or their own "B2B" applications"
    Oh Please!!! Specalised applications are a pain in the neck to support, the real issue here is that who ever implemented them did not fully understand what the end user requirements were. There is a real art of extracting that sort of information out of people and it requires an inquiring mind, good communication and people skills. There are application houses that milk corporations of money due to scope changes because they couldn't get the original spec right (I am not going to enter into the argument of whose is to blame for a defective spec, there are valid arguments for both sides).

    ZombieEngineer

  6. Re:If you only want to do pure research, maybe by Sobrique · · Score: 4, Interesting

    I'm starting to agree. I look around my 'IT office' and most of it _isn't_ CS degree level. It's helpdesk, RFTM and 'rebuild my PC' level. Now, the infrastructure development and systems architecture is still very definitely a specialist IT role, which is my current focus, but most of the people on the 'coalface' need about as much IT literacy as the guy using MS word.

  7. Bingo by benhocking · · Score: 4, Interesting

    There is a lot of CS work out there. But it's science work, not programming or product development. That's not CS, that's engineering or just programming.

    Leaving aside the issue of whether there is plenty of programming or product development work still out there (I think there is), you're absolutely right. We might as well argue that physics is dead because there are so few jobs for physicists. The supply/demand ratio for physicists is quite high. However, that doesn't mean that there isn't plenty of good science left to do. (No talking about string theory here - too volatile a topic.)

    Examples of very interesting areas in computer science, besides software development, compilers, networking, programming languages, graphics, and architecture include: quantum computing, neural networks, genetic algorithms, and genetic algorithms with neural networks. (Perhaps I'm wee bit biased here.) I guess to be fair I should also mention the tremendous growth in bioinformatics.

    --
    Ben Hocking
    Need a professional organizer?