Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Programming IT Technology

Is Computer Science Dead? 641

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?"
This discussion has been archived. No new comments can be posted.

Is Computer Science Dead?

Comments Filter:
  • by Anonymous Brave Guy ( 457657 ) on Tuesday March 13, 2007 @06:00AM (#18329515)

    You shouldn't be intensely worried, but reading around your subject is pretty much always a smart move if you're a serious student. I learned this lesson very late in my academic career, and now wish I'd understood what the phrase really meant a couple of years earlier.

    In this business, knowing multiple programming languages (and in particular, knowing multiple programming styles -- OOP, procedural, functional, etc.) is a big asset. It helps you to think about problems in more varied ways, even if you will ultimately code the solution in whatever language is required by your particular professor or, in due course, employer.

    There are two suggestions I've heard in the past that I appreciate more as time goes by: try to learn a new programming language and to read a new book about programming every year. In the former case, if you're learning Java, that's OK, it's a pragmatic tool that's widely used in industry and it will teach you one way of thinking about a problem. I suggest the following as complementary languages, to be explored as and when you have the opportunity:

    • C, or even some version of assembler, to understand what's going on under the hood and what a low-level programming language really is;
    • Haskell or a dialect of ML, to understand that not all programming languages are block-structured procedural languages, and what a high-level programming language really is;
    • Python or Perl, to understand the costs and benefits of requiring less formal structure, and the use of dynamic type systems, and to learn a few neat ideas like regular expressions;
    • when you're ready, LISP, to understand what the old sayings "code is data" and "data is code" really mean, and what concepts like macros and metaprogramming are really all about.

    There are various other unique things you'll take away from each of the above, but if you spend perhaps a few months exploring each of them in some detail, it will make you a much more rounded programmer. I'd suggest either the above order, or swapping the first two around and going for a functional programming language and then something low-level. The requirements of your course or good advice from friends/teachers may guide you otherwise. Go with what works for you.

    To make your learning practical, pick some simple projects, perhaps to practise whatever algorithms you happen to be studying lately in other courses, and write a few small but real programs in each language. For example, if you're learning about operating system basics, try rewriting a couple of simple OS utilities or networking tools in C or assembler. If you're learning about databases, try writing a simple web front-end for a database, and power it with a few CGI scripts written in Perl or Python that use SQL to look up and modify the data in your database. If you're learning about graphics and image processing, write a simple ray tracer in Haskell or ML.

    Along the way, you'll develop potentially useful real world experience with things like OS APIs (and perhaps how they vary between platforms, and thus why standards are useful for these things), HTML/CSS and CGI for web development, SQL for database work, and so on.

    As you go through this, consider buying a good textbook on major subjects (programming languages, databases design and SQL, graphics algorithms, etc.) or make sure you've identified some good reference and tutorial material on the web. The latter is a big advantage for the modern compsci student, though you have to be careful to check your sources are well-regarded and not just a pretty web site with an authoritative tone of voice written by someone very enthusiastic but regrettably ill-informed. Things like FAQs and newsgroups can be valuable sources of information, but sometimes, there's just no substitute for a well-written, well-edited, authoritative textbook.

    Anyway, this post is now far too long, so I'll stop there. Please consider it "the approach I'd take if I could have my university days again" and take it for whatever it's worth to you. Good luck. :-)

  • Re:Wow! (Score:1, Informative)

    by Anonymous Coward on Tuesday March 13, 2007 @06:11AM (#18329609)
    Hmm. [slashdot.org]
  • Re:Wow! (Score:4, Informative)

    by StarvingSE ( 875139 ) on Tuesday March 13, 2007 @06:44AM (#18329791)
    Also, there will always be room for proprietary corporate development. Many corporations have very specific functions that can be automated using software, but no shrinkwrap solution exist.

    I wish I still had the textbook to grab the quote from, but it contained a case study on adapting a shrinkwrap HR system, and writing their own. It was found that writing the system from scratch would have been much more cost effective than trying to adapt a generic off the shelf solution.
  • Re:Wow! (Score:3, Informative)

    by Treffster ( 1037980 ) on Tuesday March 13, 2007 @07:36AM (#18330053)

    What my small company has been busy with the last years, is to move a lot of logic and data outside such systems. Because it's just to expensive to try and "upgrade" these huge behemoths. We develop external databases to store different data feeds, most likely received in XML-format which some of these systems is not capable of using. Actually, one of those systems are only capable of importing/exporting data with fixed length ASCII-files.
    I can attest to this. I'm a software developer for a small company working at developing value-add products in health-IT, and the big systems we piggy-back on for our data feeds are some of the scariest most atrocious beasts you will ever work with. Most are based off 10 year old code that has been built as one hacked-in-patch after another, and seem to work in-spite of themselves rather than because of it. Off-the-shelf solutions in large enterprise seem a very long way from being low-maintenance commodity items.
  • Changes (Score:4, Informative)

    by DaMattster ( 977781 ) on Tuesday March 13, 2007 @08:07AM (#18330243)
    I don't really think Computer Science is dead but its face and meaning are changing. Computer Science is now more than just software engineering. It encompasses network, infrastructure, and information management. The internet has fundamentally changed Computer Science and the curriculum of old has not adapted to the change. This quite possibly might explain the drop off in enrollment. Students see that commodity applications are being more widely used. However, there needs to be competent web application developers. Competent web application developers are not just good software engineers, they have a thorough understanding of infrastructure and information management.

    Another possible reason for dropping enrollments could be disillusionment with the field as good software engineer positions are being outsourced to save money. In many ways, lots of positions become victims of globalization. Many companies use software engineers for projects or as long term temporary employees to save on the bottom line. Software engineers may be better off seeking employment at companies that develop software versus, say, a bank.

  • Re:Wow! (Score:1, Informative)

    by Anonymous Coward on Tuesday March 13, 2007 @08:11AM (#18330269)
    How true! The Sydney Morning Herald (SMH.com.au) has written a similar article (with the exact same title). http://eisabainyo.net/weblog/2007/03/13/is-compute r-science-dead/ [eisabainyo.net]

All seems condemned in the long run to approximate a state akin to Gaussian noise. -- James Martin

Working...