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?"

641 comments

  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.
    1. Re:Wow! by daranz · · Score: 5, Funny

      They arrived from lands far away thanks to the magic we call outsourcing?

      --
      This is a sig. It is appended to the end of comments I post.
    2. Re:Wow! by sunami · · Score: 3, Funny

      Software don't write itself. All in good time... all in good time.
    3. Re:Wow! by cablepokerface · · Score: 1

      Trying out Vista there, are ye?

    4. Re:Wow! by jevring · · Score: 3, Insightful

      Exactly. Even if there is an overflow of good developers at some point, they all retire (and eventually die), so then someone else is going to have to pick up the torch.

      --
      Move sig!
    5. Re:Wow! by codonaill · · Score: 5, Insightful

      There are 3 other jobs I can see that require CS skills, but are not product development/design jobs.

      1. Who buys it? What skills do Computer Scientists need to differentiate between Brand X and Brand Y billing system? Basically, proper product selection is as tough a job as product design - because you have to beat down sales jargon and work out what a system actually does - generally without unfettered access to the system itself.

      2. Who builds the Middleware/Integration layer? This is so specific to individual companies that you'll never get a solution that fits all the heterogenous parts of your network.

      3. Who builds large networks of products - i.e. works out that Portal solution 1 goes well with reporting solution 2 and alarm system 3. Who breaks down the business flows between these and who keeps track of strategic direction in each area?

      Dunno, still think there's plenty of non-dev jobs out there for CS graduates...

      C.

    6. Re:Wow! by -noefordeg- · · Score: 5, Insightful

      No only that...

      "stable, well-proven ... "
      I've yet to see, say, a well written and stable ERP system.
      In Norway some of the more popular ERP/logistic and sale-systems are CS (Client System), Movex, Visma Unique and IBX. Systems which are just "ok". Terribly modules, inane logic, most likely a lot of bad code all over, but since it's closed source it's impossible to tell. From all the errors (some, really strange), lack up updated documentation and integration specifications, system resources used, and just from looking at the system documentation, you can easily tell that the systems are not "state of the art".

      What most of these complex systems really are, are a collection of small modules of which many are most likely writtin at different times, by different people, for different projects and just barely working together. The companies developing the systems probably have thousand and tens of thousand bugs and points for optimizations which will never be fixed. Any work done on these systems which is not directly connected to a new deployment and paid for by one or many customers are simply a loss for the company.
      Much of the "valuable" experience people get from using such a system, is actually how to use it without breaking it/how to use it despite all bugs, errors and strange quirks and twists.

      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 recieved 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 lenght ASCII-files.

      I don't see any less work needing to be done on these systems in the coming future. Rather, the need for more developers working both inhouse and independent, to patch them up, make small adjustments here and there, and/or write "connectors" for logic/data processing will probably increase.

    7. Re:Wow! by Anonymous Coward · · Score: 0

      I guess the spirit of the quote is that once you make a stable product, everyone else can use it without having to re-invent it. However, my experience with various companies during recent weeks of job-hunting reveals quite the opposite: most companies, big corporations and startups alike, have internal development on all kinds of areas that may not even seem related to their primary business focus. For instance Amazon uses a home-grown RPC mechanism for its hugely distributed system, companies like vmware who focus on virtualization have groups working on databases, while companies like Sun are also working on virtualization. Those like Apple are involved not just in OSs and computer hardware, but also networking hardware like access points and the like. Even start-ups dealing with web-apps often "re-invent" feedback-rating and review mechanisms for their web-products, and go as far as incorporating mechanisms inspired from spam-filtering techniques to detect when buyers and sellers attempt to circumvent the middleman process.

      From an insider's perspective it seems that there is too much re-inventing going on.

    8. Re:Wow! by Anonymous Coward · · Score: 1, Informative
    9. Re:Wow! by Anonymous Coward · · Score: 0

      The point is that today the only software that sells is the one the average geek would hate to write.

    10. Re:Wow! by Scarblac · · Score: 5, Insightful

      How about imaging research (stuff like using image processing to learn about the state of food stuffs with infrared cameras), or the hard problems that need to be solved to get to the Semantic Web?

      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.

      --
      I believe posters are recognized by their sig. So I made one.
    11. Re:Wow! by StarvingSE · · Score: 3, Informative

      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.

      --
      I got nothin'
    12. Re:Wow! by Pseudonym · · Score: 1

      Who wrote them? These people.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    13. Re:Wow! by speculatrix · · Score: 0, Troll

      As well as off-the-shelf solutions, most SDKs, whether java, C# or even perl have such a rich API that in general the amount of "real" programming is relatively minimal. For example, I can't remember how long ago it was I had to write a linked-list (such as in C), as java makes it too easy to know almost nothing about how the computer represents data internally.

      There are still "real" programmers around in commercial companies, they're writing device drivers, working with embedded micros, working alongside hardware designers doing custom chips in e.g. telecommunications and digital TV, and sometimes in compiler development.

    14. Re:Wow! by ThJ · · Score: 1

      You'd never use C in the same situation as Ruby on Rails. And who writes the systems that the accountant makes *his* system in. The author doesn't know what he's talking about. NEXT!

    15. Re:Wow! by Jedi+Alec · · Score: 1

      What most of these complex systems really are, are a collection of small modules of which many are most likely writtin at different times, by different people, for different projects and just barely working together.

      You mean, like, libraries containing reusable code? Wasn't that supposed to be a good thing?

      --

      People replying to my sig annoy me. That's why I change it all the time.
    16. Re:Wow! by Treffster · · Score: 3, Informative

      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.
    17. Re:Wow! by mmkkbb · · Score: 2, Insightful

      Real programmers and real computer scientists are not always the same thing, and I fail to see why coding up your own linked list is real programming. It's not. It's busy work.

      --
      -mkb
    18. Re:Wow! by Shados · · Score: 1

      Totally correct, but with a small issue: A lot of universities (including some prestigious ones in the top 5-10 of american CS schools) teach, well, CS (duh).

      Knowing how to handle data structures, how low level network layers work, and a whole lot of theoritical math, doesnt help in any of these things. More "applied" skills are required, and at first glance, its not the norm, and well, doesn't even match the base definition of CS.

      So I guess, CS is far from dead: we (and schools) just need to redefine it, or better yet, stop using that term (unless its -really- what they wanna teach... ATI and Intel still need to hire people for their low level stuff after all!)

    19. Re:Wow! by speculatrix · · Score: 1

      calm down, it was just an example of a standard problem.

    20. Re:Wow! by Anonymous Coward · · Score: 1, Informative

      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/

    21. Re:Wow! by Giometrix · · Score: 0, Troll

      Why was this guy modded a troll? He's absolutely right. When is the last time someone coded a data structure or algorithm they learned in a CS class? Stacks, linked lists, searching, sorting....its all in our favorite frameworks. The only guys actually coding this kind of stuff are the ones not using these types of frameworks - presumably people that do things like write device drivers.

      And to be honest, I'm perfectly happy using someone else's implementation of a linked list, or of a sort. I still think its important to know how these things work; but there's no reason to go out and implement all of this stuff when some guy that specializes in the field already wrote it for me.

      --
      Download free e-books, lectures, and tutorials at bookgoldmine.com
    22. Re:Wow! by rucs_hack · · Score: 1

      sometimes it's useful to write your own. Such as when you need to find a speed increase from somewhere and you have to get elbow deep into the code to find it.

      If the LL code (for example) is someone else's that can be harder. I write most of my own stuff of that nature, because in my work even a few clock cycles shaved off an operation is important.

      If you're creating a product where you need to concern yourself with other issues, like high level customer requirements, then a well tested third party implementation that works right away is beneficial. It all comes down to the context.

      So long, I would say, as you know how to code your own, so you can at least understand the workings of the code your including.

    23. Re:Wow! by Anonymous Coward · · Score: 0

      "1. Who buys it? What skills do Computer Scientists need to differentiate between Brand X and Brand Y billing system? Basically, proper product selection is as tough a job as product design"

      CS is dead. And was killed by Microsoft. IS experts don't buy software anymore. The MS marketing team goes straight to the accounting and finance executives (who control the budget) and makes an eye-candy presentation to them. Then the IS team has to live with the resulting carnage -- and a critisized as obstructionists for raising what are really valid concerns

    24. Re:Wow! by Anonymous Coward · · Score: 0

      There's lots less jobs writing systems for people to write systems in, than for people to write systems, just numbers though.

    25. Re:Wow! by Anonymous Coward · · Score: 0

      I'm a CS grad (1987), have worked for large and small companies and institutions (including MIT and a couple of dotcoms), and also can't remember the last time I CODED a particular data structure implementation. However, I've seen a lot of development by people with associate degrees (or less) who don't even know how to choose WHICH data structures to use to solve their problems.

      IMNSHO, that's one of the benefits of having a CS - an *understanding* of the problems we face, and their solutions. It's not as simple as "anyone can use all the pre-built, robust, tested implementations that come with the language APIs". In my current position I've seen code written by developers with 15-20 years of experience who still don't realize when to use one structure or data model over another.

      And that doesn't even begin to touch how many developers can't write remotely useful SQL, and can't do data or object modeling....

    26. Re:Wow! by __aavonx8281 · · Score: 3, Interesting

      I've heard people use this argument before, and I think it is one that students make while they're in school or shortly after they graduate. What this train of thought fails to realize is that "applied" skills can be self taught, and what separates the CS grads from the other employees who have just picked up computers on their own is their fundamental understanding of the logic and layers that actually make up the basis of the "applied" skills. The self taught hacker will only know 'how' to make stuff work, not necessarily the 'why' behind the application. Don't knock the theory and abstract math until you get out in the field and you're designing a complex, distributed system. Then all that stuff that "doesn't help" will come in very handy and will allow you the understanding to actually solve problems rather than just hacking at them until you come up with something that works.

    27. Re:Wow! by umghhh · · Score: 0, Troll

      nobody makes money on actual work anymore - what are the volumes on stock exchanges of the world and what these volumes have to do with the actual real wares and work - not much. This applies to iron smelters as well as bit smelters. The profits get virtualized while our jobs get globalized. Doing things is not really profitable anymore and brings our planet to its end anyway (as it causes different types of waste all over) so we should welcome this trend. The only problem is that this leads us from (kind of) democratic society with citizens having some and same rights to the society where few plutocrats own almost all and control all. But besides that it is a trend to be welcomed.

      Side question: why are these applications written by none experts so crapy. COuld this be that they miss skills or brains or possible both?

    28. Re:Wow! by Toba82 · · Score: 2, Interesting

      That's basically my job. I take business processes that my employer needs and turn them into applications to save other employees time. This will never be replaced by off the shelf software.

      --
      I pretend to know more than I really do by mooching off google and wikipedia.
    29. Re:Wow! by 26199 · · Score: 1

      How about... doing computer science?

      I'm pretty sure there is still research going on somewhere in the world...

    30. Re:Wow! by grahamdrew · · Score: 1

      You're right, but I would expect a "real computer scientist" to understand the concepts behind a linked list and it's limitations instead of just using it blindly. One of the best ways to understand it is to build it yourself.

      --
      // Dumps core here
    31. Re:Wow! by morgan_greywolf · · Score: 4, Insightful

      Right. The term 'computer science' has become so muddled because people confuse applied computer science (computer information systems) with actual computer science. Computer science is pure science -- solving the hard problems to advance computing technology. People who have programming or computer engineering jobs are NOT computer scientists any more than mechanical engineers are physicists or pharmacists are chemists. Not that CS majors don't get jobs in the computer information systems arena, just as many physics majors go off and do engineering jobs. But the work of a software engineer just ain't science.

    32. Re:Wow! by NDPTAL85 · · Score: 1

      Then why are so many non-CS grads employed by tech companies as programmers? What happens to all the chock full of theory CS guys? Where do they end up?

      --
      Mac OS X and Windows XP working side by side to fight back the night.
    33. Re:Wow! by grahamdrew · · Score: 1

      I end up implementing some of those (or at least adapting old implementations) fairly often. I work almost exclusively on embedded systems where we have no framework or APIs. Embedded development is probably closer to the exception rather than the rule, though.

      I agree with you about using someone elses' implementation. I still think the easiest way to understand how they work is to build it yourself at some point, though. That's one of the things low-level CS classes are for. Yes, you may never do it again, but that's OK. It doesn't mean you were wasting time if you learn something, even if you don't do that same exact thing ever again.

      --
      // Dumps core here
    34. Re:Wow! by khakipuce · · Score: 3, Insightful

      But there are still plenty of development jobs.

      A lot of companies cannot stay ahead by buying off the shelf products - they NEED to be ahead of the game, and they recognise that a so called "off the shelf" product at the level of ERP, CRM, etc. is really just a bag of components that the vendor will integrate into a product for you - they will charge you to do the analysis for your industry sector, and then they will take the knowledge they have gained and sell it on to others in the same sector - you paid them to shape the product for your sector ... and they sold it to your competitors.

      On the legacy side, it's fine to buy a big integrated suite if you are a new start-up, but I have never worked anywhere that could contemplate stripping out all their apps and starting from scratch, it's an endless round of upgrade payroll, replace ERP, bring in CRM. And someone has to makle all these work together.

      There are also those systems that no one writes - Engineering, Financial (as in city trading - I'm sure someone does do these as packages but in my experince there is a lot of in house software development going on in this area), process monitoring and control ...

      --
      Art is the mathematics of emotion
    35. Re:Wow! by ClosedSource · · Score: 0

      First of all, this hard distinction between CS and programming is mostly a fiction believed in primarily by academics and recent CS graduates. There has always been a research component in programming work.

      As far as problems like the Semantic Web are concerned, it's not enough to understand the problem, you have to implement the solution as well and that will most certainly require programming. If past history tells us anything, the implementation won't be performed by WC3 celebrities, but by rank-and-file programmers.

    36. Re:Wow! by Dragonslicer · · Score: 2, Insightful

      What happens to all the chock full of theory CS guys? Where do they end up?
      In the same companies, telling the programmers what to do.
    37. Re:Wow! by Anonymous Coward · · Score: 0

      Teaching? Doing research? Managing those programmers? Becoming programmers themselves? Consulting? Starting software companies? Go back under your bridge.

    38. Re:Wow! by StarvingSE · · Score: 1

      Where I work, nearly every programmer has at least an undergrad CS degree, and most have a masters in CS as well. It can be argued that CS is basically a specialized math degree. A great deal of math is about problem solving, therefore a CS degree can potentially make someone a better problem solver than someone without the education.

      I wouldn't mind having a self-taught programmer code based on a specification given to them, but i wouldn't want these people designing the architecture of my system.

      --
      I got nothin'
    39. Re:Wow! by mmkkbb · · Score: 1

      Yeah, and the place for that is school, not production code, unless the library linked list is a bottleneck.

      --
      -mkb
    40. Re:Wow! by asills · · Score: 1

      I've seen just as many CS grads with no clue of the fundamentals as self-taught hackers who picked up the theory through an intense desire to learn what they were doing. I can't even begin to tell you the number of CS grads I've worked with who seriously make me wonder if they ever went to a CS class (not to mention all the students in my classes who were in it "for the money" and had no clue what they were doing and would spend days on an hour long class assignment).

      I agree, however, that those who understand the fundamentals and know what's going on behind the covers is usually what separates the bad or mediocre programmers from the great ones.

      --
      -- What did Spock find in Kirk's toilet? The captain's log.
    41. Re:Wow! by CastrTroy · · Score: 1

      I've also read somewhere that 95% of software was written for internal use, and that it will never see anything outside the company. I tend to believe that. Many times it's easier and less expensive to get 2 or 3 people to work on something for a couple months then it is to buy the commercial solution. And often the commercial solution requires just as much work, because it's so generic, you have to spend just as much time getting it to work with your system. Just look at database solutions. They have to be the be all and end all of data storage, because you never know what people will need to do with them. Most people, even the big guys, probably only use 5% of the features available. And there's probably quite a few features they wish they had, but that aren't implemented. If you do enough work with databases, you could develop your own, save on the licensing costs, and get a product that does exactly what you need it to do. I'm not saying this is the best solution for everyone, but sometimes it's better to build your own product than to buy an off the shelf solution.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    42. Re:Wow! by Anonymous Coward · · Score: 0

      Posting AC from work.

      As to 'who does it' ? IT Consultancies. I work for one. We focus on business needs and picking solutions for our clients that work. I would *love* more CS people to work with, since most undergrads, even 'IS' undergrads, lack the skills and though process of a 'real' CS student. That said, if you are a bona-fide Computer Scientist, you'll have to learn the art of compromise and communication. Business users will make decisions you will find contrary, even stupid, until you try doing their jobs. On the other hand, in most ERP packages, there is a lot of customization possible where your skills will come in very handy. Be prepared, though - optimizing database queries and writing apps to let the clients' old AS400 talk to the new Oracle installation may not be exactly your idea of sexy work.

    43. Re:Wow! by Dan+Ost · · Score: 4, Insightful

      Knowing how to handle data structures, how low level network layers work, and a whole lot of theoritical math, doesn't help in any of these things.

      This statement makes me weep inside.

      The number one issue that governs how how well a team can work together is how well they communicate with each other. If everyone on the team has a basic understanding of the theory, then they share a common vernacular which is their most valuable asset when it comes to actually getting work done. Without a common vernacular, they will be required to invent their own which is a time consuming and error-prone endeavor which inevitably results in a late and bug-ridden product.

      You don't need to have a CS degree, but if I have to go to the white board to explain stuff that could have been quickly and clearly communicated verbally to anyone who had studied the basics, I'm probably better off not giving you development assignments in the first place.

      --

      *sigh* back to work...
    44. Re:Wow! by odourpreventer · · Score: 0

      trying to adapt a generic off the shelf solution.

      You should never try to adapt a generic solution. You should always adapt existing procedures to the solution. If that is not possible then yes, writing your own solution is usually better.

    45. Re:Wow! by StarvingSE · · Score: 1

      This is true, but if you have gone through any decent data structures course, you know that certain data structures are better than others in various different situations. If performance is an issue, correct data structure usage is critical.

      --
      I got nothin'
    46. Re:Wow! by EastCoastSurfer · · Score: 1

      I agree. Even products that come close still need more development to actually work in each business environment. From what I can tell the big thing now is to have a product, claim it will solve a particular business problem and sell it as COTS. Once a company buys said product come in as consultants and make the product actually work.

      I've sat in on numerous meetings with vendors saying they can come in and replace me and my team with a COTS. After I ask a few questions it always becomes clear that once you buy their product it won't work w/o them coming in and spending 3-6-9 months to make it work. And, that doesn't include the continual customizations after the fact that occur as a product of the business changing.

    47. Re:Wow! by jank1887 · · Score: 0, Offtopic
      "Software don't write itself."

      but dupes do? :)

    48. Re:Wow! by NDPTAL85 · · Score: 2, Funny

      So in other words, promoted beyond their competency?

      --
      Mac OS X and Windows XP working side by side to fight back the night.
    49. Re:Wow! by CastrTroy · · Score: 1

      I took software engineering. At the time I started there was only 3 or 4 schools in my province that even had this as an option. I started in 1999. I think it's becoming more popular now. While I think CompSci is still important, I think that what a lot of people are actually looking for when they go into comp sci is something a little closer to software engineering. The world needs more people who know about how to develop quality software. There's too many people out there with 1 year career college diplomas programming systems that they don't even understand. I really think that the world of software is being greatly underserved by having unqualified people work on projects that they can't handle. I'm not even sure if there should be people with 1 year diplomas (and no other credentials) working on software projects.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    50. Re:Wow! by walt-sjc · · Score: 1

      What you said is so true. When "programmers" do research in order to find new and better ways of doing things, or solving problems that have not been solved, it's "science." It may not by physics or chemistry, but it's still science. I would bet that most programmers are doing a little bit of science every day. Sometimes, it's a lot.

      All in all, the FA is silly. All the problems in the world have not been solved, and may of the tools currently in use - suck.

      While modern applications and operating systems are better in many ways than they were 10 - 20 years ago, they have a HUGE opportunity for improvement. That's not going to go away, and as the electronics behind the applications get better and more capable, we can solve problems in different ways. In other words, it is HIGHLY doubtful that computer science as a profession will go away anytime soon.

      Maybe one of the reasons that there is a drop in students is because the basic curriculum out there in most universities today is BORING and outdated. Give the students REAL WORLD problems to solve for a change - make the core classes more interesting. It's hard to hire CS grads today because they are not being taught what businesses need, meaning YEARS of additional on the job training is required (which translates to crappy starting wages.)

    51. Re:Wow! by CastrTroy · · Score: 1

      There's no reason for those of use who are capable of programming a linked list to bother programming one either. We aren't going to make a better implementation anyway. It's a solved problem. There's already a big enough shortage of people who are actually qualified. We shouldn't be spending time programming things like linked lists, or even more complex things like b-trees. We need the people who are qualified to be solving the problems that are actually hard. Not doing highschool or first year university assignments.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    52. Re:Wow! by andreyw · · Score: 0, Troll

      The real distinction is between CS and IS. If anything goes the way of the mammoths, it would be IS - and all for the better.

    53. Re:Wow! by Bill_the_Engineer · · Score: 5, Insightful

      But the work of a software engineer just ain't science.

      My collegues and I, being software engineers in X-Ray astronomy, disagree with you

      Sure some CS majors go on to make a new computer language or new technique for image analysis, but that doesn't make the software engineer less scientific. The systems we develop are used by X-Ray astronomers and would not exist without the Electronic Technician, Electrical Engineers, Mechanical Engineers, Computer Engineers, and Software Engineers.

      It has been my observation that most of the science is done by physicists (and other scientists) who understand enough about computers to code their own small routine to illustrate their point, and hand it off to us software engineers to clean up, make reliable, and integrate in to a complete hardware system that is capable of performing the science work they need.

      When spending millions of dollars on one-of-a-kind hardware, you not only depend on the computer algorithm being correct but also reliable, thoroughly tested, and an integral part of a well engineered system. All of our science is done in unmanned flights, so we can't simply reboot when something goes wrong.

      Before you correct me and say that we are not capable of computational science, my collegue developed a tracking system that calculates vehicle orientation based on images of stars captured by a telescope mounted on the vehicle...

      Anyway my point is that science is more engineering than algorithm these days. I'm not saying pure computer science is not important. I'm saying that we must introduce engineering practices into computer science to tackle the hard problems. This is why I believe that Computer Science is evolving into Software Engineering.

      As for the non-scientific information systems, thats a job for a MIS graduate.. :P

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    54. Re:Wow! by Greyfox · · Score: 1
      I find that a fundamental failure to understand the implementation details of such simple structures indicates that the programmer will have difficulty understanding the far more complex details of the application we're currently working on. Inevitably this is true no matter which application we're currently working on. I often hear the excuse -- and it IS an excuse, "Why should I have to know that? Modern languages provide it." Well you still need to know how memory allocation works and you still need to be able to visualize how your data fits together in memory. You will also likely be required to work on a project that does not use a language that provides such structures for you.

      When I hear this complaint the only thing it tells me about the programmer is that he's good at making excuses. And that usually means he's not so good at making programs.

      --

      I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    55. Re:Wow! by pnewhook · · Score: 1

      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.

      This is the attitude that as a project lead drives me crazy. I can't stand it when I start a project that is supposed to be based on exisitng *working* *tested* code, and the software developer says 'this is crap I need three guys and 6 more months of schedule to rewrite it'. The reason is invariably because the new developer doesn't like the style or the architecture of the old software, despite it working properly and being tested to meet requirements.

      Thats the 'I can do it better with my eyes closed' primadonna attitude that drives software projects over cost, over schedule and into a never-ending development project.

      If there is one thing that CS schools need to teach their students is to NOT TOUCH EXISTING TESTED WORKING CODE. Doesn't matter if it's ugly, to big, in the 'wrong' language, or even completely uncommented. If it meets requirements, DONT TOUCH IT!!! I had one developer who spent close to a week going through all the existing code and converting the tabs into three character spaces because he said it was ugly. This was on code he had no business modifying. I threw him off the program as fast as I could.

      --
      Tesla was a genius. Edison however was a overrated hack who liked to torture puppies.
    56. Re:Wow! by mmkkbb · · Score: 1

      You're absolutely right. This is orthogonal to wasting time coding a specific linked list instead of using the STL version, for example.

      --
      -mkb
    57. Re:Wow! by Hoi+Polloi · · Score: 1

      "Software don't write itself."

      What do you mean? I write scripts that generate other scripts all the time. ;)

      --
      It is by the juice of the coffee bean that thoughts acquire speed, the teeth acquire stains. The stains become a warning
    58. Re:Wow! by Anonymous Coward · · Score: 5, Insightful

      1. computational science is not the same as pure computer science; if anything, pure CS resembles discrete mathematics.
      2. computer science might be spinning off "engineering" disciplines, but only after certain hard problems are solved; I seriously doubt that in your effort to create your positional system you discovered anything new about graph theory, cryptography, or algorithm analysis.

      I work with people like you everyday who think that because they write highly technical programs to convert their specialized knowledged into something that runs is doing "computer science." That is "applied" CS, and if you wanted to get into it you are really doing an engineering task.

      I have an undergrad in mechanical engineer, a MS in CS, and am working on my PhD in CS right now. I know the difference between real CS and applied CS/software engineering - and it is vast. I'd also argue that MIS people are vastly more useful than people who call themselves computer scientists because they have a formal education in some technical discipline yet work mostly with computers.

    59. Re:Wow! by jmodule · · Score: 1

      What most of these complex systems really are, are a collection of small modules of which many are most likely writtin at different times, by different people, for different projects and just barely working together.
      You mean, like, libraries containing reusable code? Wasn't that supposed to be a good thing?

      Uh, no. As a Sys Admin for such an integrated ERP system, I can say the libraries work just fine (database API, encryption, libc, etc). The problem is with the "modules" higher up that handle Payroll, Document Management, etc., that were written by programmers who barely understood the language, much less the system they were supposed to be integrating their project with.

      On top of that, the integration of such systems often overwhelms the modularity of the design (at least it does for us) as each module ends up affecting the operation of other modules just as it would in a monolithic system.

      --
      The jModule
    60. Re:Wow! by Hatta · · Score: 1

      And who made those packages?

      Software don't write itself.


      Isn't that the point? Computer science is no longer science, it's design and engineering.

      --
      Give me Classic Slashdot or give me death!
    61. Re:Wow! by speculatrix · · Score: 1

      Why was this guy modded a troll? He's absolutely right.
      blushes. thanks... I didn't expect to get modded up to max, but being marked down as a troll seemed very harsh to me.

    62. Re:Wow! by The_Wilschon · · Score: 1

      For the last dadgum time, Computer Science is distinct from Programming. CS is to Programming as Math is to Engineering. Computer Science is about things like computability theory, Turing machines, complexity theory, languages, lambda calculus, etc. Programming is about getting something out the door that doesn't break too often. Worlds apart!

      None of the jobs you describe require actual CS skills. Heck, programming doesn't really require much at all in the way of CS skills, just as engineering doesn't really require much at all in the way of math skills. (Put an engineering graduate, heck put an engineering ph.d. in a real analysis (simple stuff!) class, and watch them squirm...) Epistemology requires more real CS skills than programming does.

      Yes, most universities have a programming curriculum which has been given the name "Computer Science" either because earlier in history it was a real CS department (for older programs) or because the name CS lends a false gravitas to it (for younger programs). This does not mean that programming and CS are actually the same thing. </rant>

      --
      SIGSEGV caught, terminating

      wait... not that kind of sig.
    63. Re:Wow! by speculatrix · · Score: 2, Insightful

      ever hear of a garbage collector? maybe it's important to understand what goes on behind the scenes.. especially if writing deterministic applications. how about problems introduced by semaphores/locks, multi-threading? a programmer who graduated from a *programming* school and not a computer science school is more likely to use complex APIs blindly.
      my example of a linked list was the simplest algorithm I could suggest where a crap programmer could do the wrong thing.

    64. Re:Wow! by Yvanhoe · · Score: 1

      Software don't write itself.
      Yet

      --
      The Wise adapts himself to the world. The Fool adapts the world to himself. Therefore, all progress depends on the Fool.
    65. Re:Wow! by AlecC · · Score: 1

      A lot of us buy off-the-shelf cars. That doesn't mean that there are not a lot of "real" engineers developing those cars. There are also lots of small specialist marques, customizing shops and so on, using real engineers. And - Shock! Horror! - people sometimes work on their own cars without employing a professional. Software is the same

      The number of people who make their living by making computers do thing is expanding fast. Not all of these are Computer Scientists. The number of Computer Scientists is probably still rising, or at least staying the same. But they are getting hidden in a huge cloud of configurers, web designers and so on. And so it should be - computers are becoming standardized and reliable. But it is only relatively, not absolutely, the CS is disappearing.

      --
      Consciousness is an illusion caused by an excess of self consciousness.
    66. Re:Wow! by mikael · · Score: 1

      How about imaging research (stuff like using image processing to learn about the state of food stuffs with infrared cameras), or the hard problems that need to be solved to get to the Semantic Web?

      Our research group is moving towards using off-the-shelf mathematical packages such as Java Imaging, Matlab, Mathematica (both with the image processing libraries) to develop new algorithms. No large-scale programming here.

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
    67. Re:Wow! by Anonymous Coward · · Score: 0

      The whole problem is big business. I am a recent CompSci graduate & in my job hunting experience I have seen more jobs that should be performed by a CompSci grad, but the companies were only looking for engineering majors, or business majors. Now if I wanted to graduate early I could have switched to the business IT major offered at my school (much easier), but I wouldn't have ALL of the knowledge needed to prepair me to perform in a real development job. Engineers do have some programming experiance, however they don't spend countless hours studying and implementing the computational theories that SHOULD be a big part in developing large/critical software.... but Computer Science majors do have to sit through these tormenting classes and learn these theories/paradigms & techniques.... but big business still doesn't see the need for employing people who were schooled specificly for the job which they have an opening for.

    68. Re:Wow! by Locklin · · Score: 1

      Your confusing acedemic work with science. What you are refering to is better described as mathematics (algorithms) or theoretical research (just as destinct and valuble).
      Science involves empirical observation and testable working theories/hypotheses. Most computer science involves neither.

      ps. my apologies to the few people actually doing scientific research in the CS field.

      --
      "Knowledge is the only instrument of production that is not subject to diminishing returns" -Journal of Political Econom
    69. Re:Wow! by Dell+Brandstone · · Score: 1

      Mmmm.. Business Objects.

      --
      [ a directive occured while processing this error ]
    70. Re:Wow! by hobo+sapiens · · Score: 1

      I can't stand it when I start a project that is supposed to be based on exisitng *working* *tested* code, and the software developer says 'this is crap I need three guys and 6 more months of schedule to rewrite it'.
      Depends on the reason the programmers want to alter or re-write the code. Often, so called "turnkey" solutions are riddled with bad, inefficient, unmaintainable code. A bad UI often indicates a bad code base, and vice versa. If a programmer wants to fix a bad UI or fix a performance problem, then you should probably listen to him. If he wants to reformat the code so that it's to his liking, then tell him to take a hike.

      'I can do it better with my eyes closed' primadonna attitude that drives software projects over cost
      Programming is like driving. Everyone thinks everyone else can't. Everyone thinks they can.
      --
      blah blah blah
    71. Re:Wow! by Maxo-Texas · · Score: 0

      No that's "problem solving".

      Science would involve actually testing multiple proposed methods and perhaps figuring out general principles (a 'theory') of what would work generally.

      What you are saying is more equivalent to Edison.

      Both edison and einsteen were brilliant but one was a scientist and the other was an inventor.

      ---
      Why do joggers fear einsteen? Because like all evil genius's, he hunts them for meat.

      --
      She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
    72. Re:Wow! by Giometrix · · Score: 1

      "Why was this guy modded a troll? He's absolutely right.
      blushes. thanks... I didn't expect to get modded up to max, but being marked down as a troll seemed very harsh to me."

      Don't feel bad, my reply to your post got modded troll as well. Even though I said people *should* know how the underlying algorithms and data structures work; but in real life we use the structures and algorithms provided to us in the libraries and frameworks we use.

      --
      Download free e-books, lectures, and tutorials at bookgoldmine.com
    73. Re:Wow! by Anonymous Coward · · Score: 0

      In the civil engineering world, buildings, paintwork etc decay. In the software world, software doesn't decay, but fortunately things keep changing.

      You should be thankful that most people don't know exactly what they want and keep changing their minds :).

      Heck, sometimes you tell people what should be done, they disagree with you and insist on things being done another way, and two years later they think it's now a great idea (it could even be their idea by then ;) ). By then it's a mess to do things the new way due to "legacy stuff".

      Then after a while the cruft builds up and maybe someone gets a job to rewrite things from scratch...

    74. Re:Wow! by quintesse · · Score: 1

      Just out of curiosity, could you give some examples of what "real" CS is?

    75. Re:Wow! by adonoman · · Score: 2, Insightful
      He gave three examples:

      discover[ing] anything new about graph theory, cryptography, or algorithm analysis
    76. Re:Wow! by Thundercleets · · Score: 0

      Before the plague that is Outsourcing/Globalization was released upon us I've always thought that the problem with IT work was that there was no standards body or license control. An example I like is that if a auto mechanic wanted to expand into computer repair, networking and local development all he needed to do was put out a shingle advertising his new IT services. If the situation was reversed and a IT guy put out a shingle to advertise auto repairs at least in my state that IT guy would find himself in jail because it is a licensed trade. I have allot of sympathy for those in academia in the US that are losing their livelihood to lower enrollment. I also think that at least these school administrators thought that they were not going to be affected by the decimation going on in the it industry and so kept quiet about it. They felt that they would make up the numbers by importing students not knowing that education is not that important to the outsourcer as long as they can sell visa and offshore workers.

    77. Re:Wow! by rbanffy · · Score: 1

      "Never" is a little too far.

      My first real paying job was doing low-level programming for educational games (on the Apple II). While it's true nothing off-the-shelf allows the kind of flexibility and performance hand-coded assembly, compilers got so good and processors so fast and complex, few people do it (for desktop computers, that is).

      Those days, you could make a pile of money by building something huge in C. These days, the same thing is implemented in few lines of a more specializad language. It runs orders of magnitude slower on hardware orders of magnitude faster but - surprise - nobody cares. If it takes less time than the piece of plastic takes to put "Enter" back into it's position, it is fast enough.

      It's already easy to imagine business-process languages that will help even someone with very little skills to compete with far more experienced people.

      Heck. Visual Basic did that. While it allowed for an explosion on the diversity of software available on Windows, it also created a generation of icon-dragging morons that could call themselves programmers.

    78. Re:Wow! by Anonymous Coward · · Score: 0

      With friends like these...

    79. Re:Wow! by dubbreak · · Score: 1

      Exactly. This is being dealt with by a Gov agency I work for (CSc Grad playing the role of a Bus Analyst). Most systems here do not have some "shrinkwrapped" solution available. A generic asset management tool, would not suffice for any of the asset management. A RAD tool is as good if not better than some other codebase. One of the newer projects is implementing a system from another juridiction (state/province) for our own needs. It is a huge codebase and cost a lot to dev initially, but I question how much good we will get from it even if it cost nothing (it wasn't free of course). The outside system was developed to deal with their already in place systems, and as we all know what we learned in school about making software reuseable and easily adaptable rarely happens under a tight budget with deadlines. In this case I don't think it would have been cheaper to go from scratch, but it would have been easier.

      Of course on the otherside there are cases where OTS software works amazingly well and is much more cost effective. The trick is having smart people in place who can spot these situations.

      --
      "If you are going through hell, keep going." - Winston Churchill
    80. Re:Wow! by Kelbear · · Score: 3, Funny

      Deagle headshots from across the map.

    81. Re:Wow! by Bill_the_Engineer · · Score: 4, Insightful

      computer science might be spinning off "engineering" disciplines, but only after certain hard problems are solved; I seriously doubt that in your effort to create your positional system you discovered anything new about graph theory, cryptography, or algorithm analysis.

      Have you? I admit its been a couple of years since I studied cryptography (S-Boxes, Fiestel Networks, Self synchronizing stream ciphers, oh my!). However I do perform algorithm analysis, and I use and try to improve the current working state of graph theory. You assumed that since I use engineering practices that somehow I am incapable of performing science. I admit my last internal paper was over 2 years ago, but in lieu of publishing I have been working within a couple of science missions.

      I work with people like you everyday who think that because they write highly technical programs to convert their specialized knowledged into something that runs is doing "computer science." That is "applied" CS, and if you wanted to get into it you are really doing an engineering task.

      I'm sorry I thought science required using specialized knowledge to prove a hypothesis (or create a program that does). I'm glad you corrected me... I have worked with people who think that because they are pursuing a PhD, that somehow they know better than the rest of us on how things are done.

      I do work with people who have actual PhDs in CS (and physics), and they never once considered me a code jockey or strictly "applying" computer science. We have mutual respect in our field of work. Just because I have a degree in Software Engineering, does not mean that I just code. I am not a manager of a large software project, I am a member of a 3 person software team (within a larger program) tasked with doing cutting edge work. If current technology can't do what we need, we must invent it. Admittingly, I do need to publish more.

      My point in my previous message was not that all software engineers are scientists, but rather some computer scientists are software engineers. Well, I'll let you get back to pumping lemmas...

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    82. Re:Wow! by LunaticTippy · · Score: 1

      Hm, a car analogy.

      US autoworkers have been getting laid off for decades and the whole industry is in crisis.

      --
      Man, you really need that seminar!
    83. Re:Wow! by Jonner · · Score: 1

      How about glock headshots from across the map?

    84. Re:Wow! by AlecC · · Score: 1

      Detroit autoworkers have been getting laid off for decades, and Detroit and the traditional US Big 3 are in crisis. I don't see the crisis at non-Big 3 US plants, not at overseas plants. CS jobs are, to some extent, being offshored - but that is not what the original article was about - it was about CS as a concept. And I think the offshoring, while real, is overstated.

      No particular company has a right to live for ever - see Borland, Netscape etc. But because CS jobs move from the old companies to the new ones, it doesn't mean they are disappearing. Google employs a lot more CS people today than it did five years ago.

      --
      Consciousness is an illusion caused by an excess of self consciousness.
    85. Re:Wow! by torako · · Score: 1

      While I agree that your work sounds quite impressive and is definitely not easy, working *for* a scientist doesn't automatically make your work scientific. Experimental physicists needs lots of complicated, delicate equipment which is built by mechanical engineers or other highly trained specialists, but the equipment is just tools that the scientists need to do their real scientific work in the end.

    86. Re:Wow! by wertarbyte · · Score: 1

      Then why are so many non-CS grads employed by tech companies as programmers?

      Because programmers are the construction workers of IT, not the architects.

      --
      Life is just nature's way of keeping meat fresh.
    87. Re:Wow! by koreaman · · Score: 1

      Just because your work is important to science doesn't make you a scientist. It makes you an engineer who builds things that scientists use. I'm not saying that that's any less important, just don't call it by a different name than what it is.

    88. Re:Wow! by LunaticTippy · · Score: 1

      I think CS will continue to grow and be important, even in the US, for the indefinite future. I just didn't like the car analogy. :)

      Although, if Toyota sold software I bet it'd be reliable and hold its resale value.

      To be fair, if I count all the people who work on maintaining cars things aren't so bad in the US. I do remember hearing about the problems that newly reliable cars have had on the mechanic industry, though.

      I guess as long as cars and programs keep crashing there'll be work for all of us!

      --
      Man, you really need that seminar!
    89. Re:Wow! by socalmtb · · Score: 1

      Yes, programmers wrote those programs. But that it takes relatively few to write commercial applications. I think the article was describing the comparative armies of programmers that were required to write less-featured versions, from scratch, for every company that used them.

      Gone are the days when most large companies are largely dependent on internal programs that are developed in house or by a consultant solely for that company. This required more people. Now that companies are using "off-the-shelf" software, it takes comparatively few programmers to write the code, even if the installations are customized.

    90. Re:Wow! by hazem · · Score: 1

      One of my favorite professors to work with was a CS professor. He's doing a lot of work (research & publishing) in quantum computing and hangs out a lot with a priest-mathematician (it's a Catholic school).

      While he certainly teaches classes that involve learning how to program, that's certainly not the focus of his classes. He also does a lot to encourage students to get involved with research projects and get published themselves.

      When I think of the science part of computer science, he's who I think of. Someone who's researching and discovering new things.

    91. Re:Wow! by artgeeq · · Score: 1

      I tend to agree that it is not programming, at least not as an end product. Despite the article's claim about "mature" software, when implementing systems that have hooks in other systems, like networks, e-mail systems, and public key infrastructures, I have found that it really pays to know how things work. What do you think -- is that computer science? What about knowing how buggy software works, or finding out how it does not work through deduction. Yes, it can be grungy work, but I have found that a knowledge of computer science can help.

      I see programming, both low-level and scripts, as one path to finding out how things work. I can't tell you how many computer science students I ran into who could not program a lick, and had trouble grasping such things as how SMTP and DNS worked. Maybe in a sense, computer science is withering.

    92. Re:Wow! by xero314 · · Score: 1

      and what separates the CS grads from the other employees who have just picked up computers on their own is their fundamental understanding of the logic and layers that actually make up the basis of the "applied" skills You are absolutely correct here, though you have it backward. Having to have wasted my time with many top CS grads in my life I can tell you that most of them don't know what a register is let alone how to use them, or how to design a binary look ahead carry adder. I'll take a continually learning self taught programmer over a CS grad any day. Even the detail knowledge CS grads do have is out of date years before the graduate, I mean after all a quick browse around a site like wikipedia can give you all you need to know about the most current algorithms and security measures, which in the past was about all CS grads were worth.

      If you are the kind of person that needs and instructor and to waste thousands of dollars to learn something freely available on the internet then I don't want you on my team. If you just happen to have CS degree I wouldn't hold it against you but the most benefit you are going to get out of it is it shows you can put up with a fair amount of bullshit and pressure.

      On the flip side, I don't want a team full of low level thinkers if I'm building Business Applications so maybe all this talk about "understanding... the... layers that... make up the basis" is a mote point.
    93. Re:Wow! by superpulpsicle · · Score: 0

      Real CS is so hardcore and abstract it is not applicable to 90% of the jobs in the market. That is why I disagree with the statement. CS should encompass everything from development at the lowest level to the highest level.

    94. Re:Wow! by Anonymous Coward · · Score: 0

      Nice elitism.

      I've seen horrid programmers both from CS backgrounds and self-taught.

      I've never seen a self-taught programmer that just can't do the job. Period. At all. Doesn't understand what a pointer is, doesn't get the basic concepts behind looping. This level of incompetence lies exclusively in the range of "Schooled" engineers.

      With one or two exceptions, I've yet to see a "Schooled" engineer as talented as either my brother or I (My brother is CTO of a company, never finished his high school diploma or got a GED, I've got some college but no degree--and am generally project lead over a bunch of useless CS grads)

      In my experience, we're the exception, not the rule, but--as I said--I've yet to find a self-trained engineer that wasn't willing to learn to improve and couldn't at least do the job with guidance--but all it takes to get the degree is persistence, not ability.

    95. Re:Wow! by nine-times · · Score: 1

      I've yet to see, say, a well written and stable ERP system.

      I have yet to see even a well-written and stable PHP-based weblog system.

      Ok, so that's a bit of an exaggeration, but not by much. If there's any sort of implication that, "We don't need programmers anymore because our current programs are good enough," that's just silly. I can't think of any kind of program that doesn't need some serious improvement. What shocks me these days is how slowly things are improving. Office suites, e-mail, operating systems, etc. It all works sort of OK these days, but most of the frustrations I had 6 years ago haven't really improved. Every company I've worked for has some small-time or home-grown programs (like ERP programs) that simply stink.

      Maybe there's a problem, that CS people *think* their work is done, or else that funding to fix these things has dried up, and that's why they aren't doing much. But these things could all use some real improvements.

    96. Re:Wow! by Seumas · · Score: 1

      I heard a statistic on CNN the other day citing that American female high school students first desire is to be famous. More than 50% of female American students were found to have an ambition to be a personal assistant to a celebrity.

      So, apparently, computer science is failing to the desire to kiss celebrity ass.

      America. What a country!

      I'd presume it's the same in the UK, huh?

    97. Re:Wow! by jamsessionjay · · Score: 1

      C++ is not the only language which exists. Also, embedded systems sometimes do not have the resources available to use the full STL linked list, or a specific embedded language may not be compatible with the STL C++ library, requiring a new implementation of existing, 'time wasting' fundamentals. It may also be useful to re-implement such code in these memory or computing constrained areas to overcome such hindrances or give on certain aspects of the implementations to overcome bottle-necks existing within the framework of the hardware. But yes, it is a waste of time to rewrite such things in a modern language. Doing so is an example of a wasteful programmer.

    98. Re:Wow! by Bill_the_Engineer · · Score: 1, Insightful

      You are absolutely correct. Working for a physicist doesn't make me a physicist. However, for the physicists to do their science I must perform mine. Sure, they garner headlines with their achievements. But that doesn't make my (or my co-workers) work less of a science. I don't want (or can) divulge much info, but what I (and others) do is not off the shelf and do require some computational theory.

      We have hypothesis, we have established theories, we create new theories, we perform proofs, and we publish (when allowed). Sometimes, we prove ourselves wrong.... Anyway scientific method is being used. If it walks a duck and quacks like a duck, there is a good chance that it is a duck.

      Maybe you accidently made a good point - That Computer Science only appears to be dying because the actual work doesn't always take center stage. Instead, it (mostly) works behind the scenes to accomplish some other task, and only seeing the light of day in some obscure paper in the IEEE or ACM repository.

      Not to mention, people assume that all the fundamental rules of computing have been defined and all that is left is to hire a programmer to connect all the pieces together.

      Funny the engineering community is skeptical that computer science can be made into engineering discipline, and the slashdot community is skeptical that it is actually science... Just can't seem to get a break ;)

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    99. Re:Wow! by Bill_the_Engineer · · Score: 1

      You are right I am an engineer who moonlights as a "scientist" when the need arises. Sometimes it takes science to build the things that scientists use. I put scientist in quotes because to become a scientist I must posess a PhD in my field of study, instead I am a Research Associate. BTW, that was my actual job title before my promotion to engineer.

      Anyway, I am happy being an engineer and prefer to be thought as such (especially since I make more money being an engineer than I did as a research associate). My point was never that I am a scientist, my point was that I do perform science as an engineer. I made this statement as a counterpoint to a comment that stated that "software engineers don't do science." A statement that I felt was playing to some stereotype that seperates "Software Engineers" from "Computer Scientists". Incidently the other stereotype is that "Computer Scientists" code and "Software Engineers" are their bosses. Actually, that one may be true... ;)

      Please read the other comment I made in reference to someone else who brought up the same excellent point you made.

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    100. Re:Wow! by tbo · · Score: 1

      My collegues and I, being software engineers in X-Ray astronomy, disagree with you ... It has been my observation that most of the science is done by physicists (and other scientists) who understand enough about computers to code their own small routine to illustrate their point, and hand it off to us software engineers to clean up, make reliable, and integrate in to a complete hardware system that is capable of performing the science work they need.

      That's certainly true in many areas, but it doesn't make the software engineers scientists any more than machine shop technicians are scientists. Experimental physicists often draw up diagrams (with varying degrees of precision) of metal parts or circuits they need and take them to the machine shop or the electronics shop. The shop guys make the parts, often adding a fair amount of their own know-how. The shop guys are highly skilled and are essential to timely progress in many areas of experimental physics, but that doesn't make them scientists. This isn't an insult or a put-down, but simply a statement of the different roles people play.

      Being a scientist typically involves some combination of hypothesizing, designing experiments, collecting data, analyzing data, comparing to theory, and drawing conclusions (theorists of course don't collect data from live experiments, although we do sometimes do simulations which produce "data").

      With applied computer science, the line between technician and scientist is a bit blurry, but it's still there. Unless you're either working on theory*, or are collecting some sort of data with general implications**, you're probably not really doing computer science.

      * For instance, complexity theory, theory of computation, and basic algorithm design are all types of theoretical computer science. AI, compiler design, operating system design, etc, can be applied computer science.

      ** For instance, studying human-computer interaction, observing real-world network behavior, etc.

    101. Re:Wow! by Maxo-Texas · · Score: 1

      Overrated... the new chicken shit moderating system.

      --
      She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
    102. Re:Wow! by Maxo-Texas · · Score: 0, Offtopic

      OTH, it's the first time I've been down-modded before even being up-modded.

      Looks like I made a cowardly enemy out there somewhere.

      --
      She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
    103. Re:Wow! by abreauj · · Score: 1

      That's kind of like saying if an auto mechanic repairs a car that's used to deliver pizzas, then the auto mechanic's job is to deliver pizzas.

    104. Re:Wow! by kalaf · · Score: 3, Insightful

      He is correct, in so much as you basically described software engineering.

      Engineering, in my mind, is finding solutions to problems. Science, on the other hand, is more like identifying new problems.

      Just because your systems are designed to solve science problems doesn't make you a scientist. That said, it's not like there isn't any cross between the disciplines. Software engineering grads probably learn about P vs. NP and CS grads recieved minimal instruction in software engineering (I say minimal since 95% of the class probably got coding jobs...) Then you land in the real world and learn what you need to know for your job. That may involve expanding on CS theory or doing cutting edge stuff using components from the established body of knowledge in new and interesting ways.

      I, of course, do absolutely no CS in my job. It's all software all the time. I don't think what I do is at all uncool (and it's not even close to as cool as what you do). I get the impression that a lot of software engineers want to be called scientists, and according to my 2nd year stats teacher, that's the wrong approach. He always said "call yourself a software engineer, they get paid much better."

      Anyway, I wasn't trying to say you were wrong. Just that you bit in a little hard, since your job description sounded pretty much like pure engineering.

    105. Re:Wow! by Anonymous Coward · · Score: 0

      > I know the difference between real CS and applied CS/software engineering - and it is vast.

      Yes, it is only vast in your self-absorbed arrogant head. Pun intended. Thank God that not all Ph.D. CS majors are as self absorbed as you are. I've seen Ph.D.'s in CS who couldn't tell their asshole from a hole in the ground. Most also lack the most basic sense of economics and rationality.

      Keep on believing that there is "vast difference" between applied CS and "real" CS/software engineering... It will be the quickest way to your demise, professionally and otherwise.

    106. Re:Wow! by triffid_98 · · Score: 1
      Wait, I'm confused now. Are you saying that all our undocumented programmers should be standing in front of the Home Depot looking for unscrupulous general contractors?

       

      Because programmers are the construction workers of IT, not the architects.
    107. Re:Wow! by Bill_the_Engineer · · Score: 1

      I need to clarify something. When I said I performed "science" it is in the vien of "computer science"(IE. the original context of the article "Is Computer Science Dead?"), and not the science of observing and explaining natural phenomenon.

      My job in the field X-Ray astronomy (IE. what people assiociate with the term scientists) and my job as software engineering (IE. computer science using process) has caused some confusion.

      In my original post, I tried to counter the parent's position that "But the work of a software engineer just ain't science." I tried to articulate (rather poorly) that in fact some software engineers perform (computer) science. The fact that I perform computer science in a scientific setting is coincidental.

      I tried (tongue in cheek) to not only state that not only do we (at work) perform computer science, but our computer science performs science... Yea, a train wreck.

      As for debating the merits of computer science as a science... that is a whole different can of worms. At the risk of opening it (just a little) by saying that I think of computer science as a branch of mathematics. As for theoritical versus applied computer science, my opinnion is that six of one is worth half a dozen of the other. In otherwords, they both are still computer science and I believe that the difference between the two is imagined. (ha)

      So back to my original comment. Do I think *Computer Science* is Dead? No, because even though I am a software engineer there are times that I resort to computer science (as in computation theory and math) to achieve the desired result. Occasionally the approach is novel enough to survive peer review on the project, and sometimes it is peer reviewed outside my center. I strive to make the approach novel enough and robust enough to survive peer review prior to being published in a trade publication (IE. ACM or IEEE). It is by this measure, that I consider myself a practitioner of computer science (that and the inevitable pursuit of a PhD so that I can finally get an office with a window ;) ). Is there a scientific method involved? Sure we observe (in the physical) what we want to emulate (in the virtual), hyptothesis on the emulation, proof of concept, elimination of alternative methods, and peer review. But it is still *computer* science.

      While we are splitting hairs - When I manage a project using a process that uses metrics for quality assurance, I am practicing software engineering. When I develop an algorithm to perform some advance function, I am practicing computer science.

      After saying all that - I have to agree that:

      That's certainly true in many areas, but it doesn't make the software engineers scientists any more than machine shop technicians are scientists.

      But it is definitely possible for a software engineer to be a practitioner of computer science or even a computer scientist (PhD).

      A better analogy would be -- While a scientist can offload work to a research associate, this doesn't make the research associate a scientist. However both the scientist and the research associate are practitioners of science. See both are related in the field of work.

      So this would translate to -- While a software engineer can offload work to a computer scientist, this doesn't make the computer scientist a software engineer.... (ha ha)

      Anyway, I hope I made things a little clearer than mud. Sorry for the confusion and the wasted bandwidth.

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    108. Re:Wow! by Hognoxious · · Score: 1

      computational science is not the same as pure computer science if anything, pure CS resembles discrete mathematics.
      Er, which of the two CSs you mentioned resembles discrete mathematics? Please keep away from programming (I'm sure you will, it's beneath you) because I'd hate to debug a program written by you. Indeed reading anything written by you is a chore.
      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    109. Re:Wow! by techamed · · Score: 1

      No but English is a must! Nice grammar!!!

    110. Re:Wow! by Anonymous Coward · · Score: 0

      Software don't write itself.
      Sure it do.
    111. Re:Wow! by a4r6 · · Score: 1

      No, see, all the code has been written already! All we need to do is cut and paste!

    112. Re:Wow! by Anonymous Coward · · Score: 0

      Analysis and modern algebra are required classes in the undergraduate engineering program at my university. I pwned real analysis, thank you very much.

    113. Re:Wow! by BluedemonX · · Score: 1

      Science is discovering how the world works.

      Engineering is answering the following-on question, "so what".

      --

      --- Jump!! Fire!! Bullet time!! - Lego version of the Matrix
    114. Re:Wow! by angel'o'sphere · · Score: 1

      I know the difference between real CS and applied CS/software engineering - and it is vast.

      No it's not. It's exactly the same, its just a point of view. Suppose you finish your PhD, what distinguishes you from hobby programmer X?
      When hobby programmer X has a problem, he has neither a CS Diploma, nor likely any solid CS background. When he meets a graph theory problem, he solves it without any educationally background. He is doing science. When you solve the exact same problem you are only engineering, because you already know the scientific background.

      Sure, the hobby programmer could get more insight if he would step back and instead of solving his problem he could google for a solution. But: what are the exact search terms to google for? Without already having a engineering/scientist education he does not know any of the common terms: like compiler construction or graph theory. So he can't google for those.

      I seriously doubt that in your effort to create your positional system you discovered anything new about graph theory, cryptography, or algorithm analysis.

      Who knows? If they have they surely don't know because they just solved a problem at hand, and have no clue if there is a name or school for those problems in the established scientific world. So they don't realize: a! stop, thats a known problem, lets check for ways how to solve it. But they discover or invent their own solution. Thats science!

      Why the heck is CS or programming still not understood? Why can't you estimate how much time, money etc. a unknown piece of software will cost? Because every piece of software is a unicum. Just as you building the next scram jet is just engineering, as much it is just science you organize your daily work according to engineering best practices. And you solve all problems according to scientific best practices.

      angel'o'sphere

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    115. Re:Wow! by PrinceOfStorms · · Score: 1

      And I've worked with people who assume that because they work with scientists, they are also scientists. If I was a Software Engineer with a law firm, would that make me a lawyer? No. I'd expect them to respect me and treat me as an equal and not as a technician, but that wouldn't make me a lawyer. If you're doing actual science, you're not doing Software Engineering; and if you're doing actual Software Engineering, you're not doing science. Maybe you do both, but that doesn't mean that they are the same thing.

    116. Re:Wow! by Tragek · · Score: 1

      I just wonder if by encompassing everything as you advocate we create a degree so muddled that no one really wants it. I mean, if I cover software development, discreet mathematics, algorithmics, software quality, networking and electronics over the course of my degree I now have a degree in which I can do the basics of everything but am specialist in none. Aside from that, most of the things people want to bring INTO CS degrees are already covered in other programs: Software development (in software engineering degrees), software quality in it's program, etc.

    117. Re:Wow! by Tragek · · Score: 1

      So, I take it you're telling me to go to class :P.

    118. Re:Wow! by Fulcrum+of+Evil · · Score: 1

      Don't kid yourself - Glocks are reliable under almost any level of abuse, but they aren't that accurate. Get a SOCOM .45 when you're ready to play :)

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    119. Re:Wow! by Anonymous Coward · · Score: 0

      I've seen just as many CS grads with no clue of the fundamentals as self-taught hackers who picked up the theory through an intense desire to learn what they were doing.

      Speaking as a self-taught hacker: they might get algorithmic complexity, sure. They probably won't get the typed lambda calculus, and most of them probably won't be coming up with support vector machine kernel functions.

    120. Re:Wow! by pnewhook · · Score: 1

      A bad UI often indicates a bad code base, and vice versa. If a programmer wants to fix a bad UI or fix a performance problem, then you should probably listen to him.

      Depends.. If the existing code meets the needs and requirements of the users, then I don't care how bad the UI is or what the performance problem is. He shouldn't touch it. If the bad UI is causing problems or the performance problems are causing the users to complain, then sure, thats justification for fixing it. But if you can't show there is a need to fix it then don't.

      --
      Tesla was a genius. Edison however was a overrated hack who liked to torture puppies.
    121. Re:Wow! by ar1 · · Score: 1

      Thank you, I'm sick and tired of all these lousy people claiming to be "Computer Scientists" because their job is to "write software." Some useless, accounting software.

      Real computer scientists write SOFTWARE that writes accounting software. Read AI.

      --
      -aR
    122. Re:Wow! by tbo · · Score: 1

      Anyway, I hope I made things a little clearer than mud. Sorry for the confusion and the wasted bandwidth.

      That does really clear things up, and I agree with just about everything you said. In particular, I also see computer science as a branch of mathematics.

    123. Re:Wow! by Mr.+Slippery · · Score: 1

      Science is discovering how the world works.

      That is true when we speak of "the scientific method".

      "Computer science", however, means only the organized body of knowledge about computers; it's "science" in the sense of "the motion picture arts and sciences", or even "mathematical sciences", not in the sense of the natural or experimental sciences.

      One can, occasionally, approach topics relevant to computer science using the experimental scientific method; experiments on computer interfaces, for example. But most computer science has little of the scientific method about it.

      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
    124. Re:Wow! by DuranDuran · · Score: 1

      They're talking about CounterStrike - much easier to make a headshot kill across a map with a Desert Eagle than a Glock. :)

      --
      "You can justify anything by putting it in quotes, adding a famous name and making it a sig" - Albert Einstein
    125. Re:Wow! by Fulcrum+of+Evil · · Score: 1

      Sorry, talking about real life :) - Check this out

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    126. Re:Wow! by FrostedChaos · · Score: 1

      Whenever the word "computer science" appears in the description or the article, there's always a tedious pedant who shows up to inform everyone that "X isn't REAL computer science."

      I take the position that "real computer science" is anything that the university puts in the computer science department. I went to Carnegie Mellon University and we had theory (algorithm analysis, graph theory, turing machines), discrete math (cryptography, compression), systems (software engineering, web caches, operating systems), artificial intelligence (bayesian networks, computer vision, machine learning), programming languages (proving soundness and compactness of various languages, etc), and human-computer interaction (psychology, quantifying human reaction times, etc.) There's a bunch of other sort of interdisciplinary stuff I left out like computational bio.

      Just because you like one of these things more than the others doesn't mean that you are the only "real" computer scientist. There are tenured professors in all of these sub-disciplines of computer science. If you're good at what you do, I feel good for you. If not, I'm sorry for you. But don't fling poo at people who have different interests than yourself. It just makes you look like a monkey.

      --
      "Any connection between your reality and mine is purely coincidental." -Slashdot
    127. Re:Wow! by FrostedChaos · · Score: 1

      I wouldn't worry too much about stupid comments in a web forum.
      What you are doing sounds very much in the good old tradition of advancing science and human understanding through computation.

      --
      "Any connection between your reality and mine is purely coincidental." -Slashdot
    128. Re:Wow! by Anonymous Coward · · Score: 0
      I did a "hard CS" degree, and haven't spent a single day at work using it.

      I learned graph theory, algorithms, how to do correctness proofs, how the chips work, and so on, and... ...I've never used a bit of it!

      Since college, everything has been C++, STL, bash, python, perl, HTML, XML, ...

      So while you are clearly an exception, I think what the article says is dead on: In terms of what's needed out there in the field, the CS degree is near useless.

      I think I also agree with his proposed solution: Turn the CS degree into a sort of "Liberal Arts CS" degree. When I read the article, I imagined a curriculum with classes that teach things like:

      • How to make a material user interface, and connect it with conventional computers.
      • Writing data visualization and concept visualization with computers.
      • GUI development.
      • Hypertext efforts and promises.
      • IT within the organization.
      • Computer art & special effects.
      • Networking, Sensors, and Components


      I imagine a curriculum that, as he said, is "outward facing," tying computers in with every other field, and showing how to make them work together.

      I know that computers can do amazing visualizations; Perhaps this should be a part of a CS program -- not how to make computers clip polygons to rectangles, but how to make the computers make beautiful and neatly arranged visualizations of data. Make Tufte a part of the curriculum.

      I know that Augmented Reality and Ubiquitous Computing is a vision that's about to play out -- why not focus networking on physical world implementations, and show how to work with antennas and positions in the real world?

      Robotics can similarly be fundamental.

      Hypertext can be the Computer Scientists' "Literature." Review Alan Kay, Douglas Engelbart, and read some of the original Ted Nelsons. Work on bold hypertext systems.

      There's far more to CS than what is traditionally taught in CS, and I think those traditional subjects are not so important anymore. Give them 1/3 the coverage, save for those students who want a more classical CS program, and then branch out and diverge for the rest of the curriculum. I think it could be really amazing.
    129. Re:Wow! by Shados · · Score: 1

      Thats the thing: there`s no common vernicular when you're not -working with these things-. My days, and I'm sure the days of quite a few software engineers in the business fields (which tend to be more common lately than R&D and low level software engineering) has a lot more to do with software architecture, design patterns and practices, specific technologies, data mining, business analysis.

      Many of these things are theory. Some even share stuff with math. Doesn't change that they are only rarely taught in CS schools. Had this conversation with one of our -data analysts-, last time he had to bring up big O notation for the performance of one of his algorythms: it was the first time in a decade that it had been needed, and trust me, we would use it if it was needed, and many of us are almost begging to find uses for what we were taught in school, so its not like its going over our heads.

      Common vernacular is useful? Yes: but software isn't all about math as it was, hell, just 10 years ago. The IT field is fragmenting in smaller, very different pieces, and someone with your average CS degree (some schools teach this stuff, its just uncommon) will not understand ANYTHING we talk about in a lot of companies, and it causes all the issues you talk about. Its the PROBLEM, not the solution.

      Again: we don't all work for Intel, ATI, Nvidia, IBM, etc. I work for a fortune 500, yes, but its a freagin oil company. Functional analysis is as close to math as my job is gonna get, and the insane mess caused by those who only know the math and low level stuff are creating is just horrible. I've worked on both sides of the fence, and trust me, you have to see it to beleive it. People without a CS degree trying to work in places that need it causes, well, the situation you talked about. CS graduates who think the "basics" are actually the "base" of everything, causes the opposite problems in the business field.

    130. Re:Wow! by Shados · · Score: 1

      The applied skills can't always be self taught. What the current CS schooling system fails to teach, is that CS is just one of many "theoritical" parts of the IT field.

      Learning how to do a good, scalable, solid, integrated architecture, by yourself, is quite a bit more difficult than learning all the math and "basics" they'll teach you in school. Even more so I'd say, since to learn it well, you need human input a lot more than a "strict" science (like math) requires it. I'd have quite a bit an easier time learning functional analysis, data structures, algorythms, low level gates, and network layers from a book, than I would learning how to apply design patterns (not to be confused with learning design patterns themselves, thats easy), or how to design a software development process.

      Don't confused a full fledged software development engineer with a "self taught hacker". Your average run of the mill CS major can't do that job any more than a self taught hacker can design a state machine.

      So far, everywhere I worked (and thats quite a few places, I work on contracts), the flaws in most of the software development were always lack of understanding of software engineering paradigms. So obviously, its not that easy to be self taught there. But the whole "CS is the basics of everything!" is drilled so deep in people's heads, that they'll fail to see the other side of the coin: its quite harmful in the long run.

      Software development foundations are just as part of the basics as, let say, knowing all of the network layers is, and those basics get used in totally different places. In a successful project, you need both skills, and people who are senior in both are extremely rare: taking an expert in one to do the other is almost always a recipy for disaster.

    131. Re:Wow! by walt-sjc · · Score: 1

      According to several dictionaries, you are wrong. Sorry.

    132. Re:Wow! by doom · · Score: 1

      Right. The term 'computer science' has become so muddled because people confuse applied computer science (computer information systems) with actual computer science. Computer science is pure science -- solving the hard problems to advance computing technology.

      And the complaint that I would make is that 'computer science' is punting on working on the really hard problems, because it's populated by mathematicians who all want to be Donald knuth.

      My personal peeve is that no one seems to be doing studies of how computer language design interelates with the social dynamics of groups of software developers.

      The author of the article has some other complaint: it's a call to found a New Interdiciplinary Discipline, to focus on popular buzzwords like "complexity", "biological sciences", and "computers".

    133. Re:Wow! by n00854180t · · Score: 1

      This is assuming that self-taught hackers can't self-teach themselves proper computer science, which is wholly untrue (referring not to your whole post Madirish, but rather the last sentence). Indeed, rare is the auto-didact that can read or write a (computer) scientific paper and apply its methods to their own work. I speak entirely from experience here, as someone that taught himself all knowledge of "how" to make things work, then realized something was missing, and went to the "why" with a fervor. Learning how to read and understand algorithms in their formal definitions is possibly the most useful skill I've ever taught myself.

    134. Re:Wow! by quintesse · · Score: 1

      Well, but to me at least graph theory and cryptograpy are purely mathematical that happen to be very useful for CS. Algorithm analysis is mostly mathmatical as well but at least it is completely focused on CS. Somebody else mentioned quantum computing, but that seems to be more about physics than CS.

      When I think about CS I think about things like microkernels or clockless processor architectures (although the latter is partly electronics of course). So I was wondering what examples others could come up with.

    135. Re:Wow! by drolli · · Score: 1

      > What you said is so true. When "programmers" do research in order to find new and better ways of doing things, or solving problems
      > that have not been solved, it's "science." It may not by physics or chemistry, but it's still science. I would bet that most

      No, it's not. Science defines itselft no by 'solving a problem' but by 'increasing everyones knowlegde'. This happens by the means of writing an article about wgat you did. Just writing a program is not enough.

      > programmers are doing a little bit of science every day. Sometimes, it's a lot.

      Sometimes, yes

    136. Re:Wow! by The_Wilschon · · Score: 1

      I'm impressed. You have managed to find an engineering program that actually cares whether or not you understand at a deep level what you are doing, rather than only caring that you can get something done. Also, you are (in my experience) nearly unique among engineering students in that you have some grasp of real Math.

      --
      SIGSEGV caught, terminating

      wait... not that kind of sig.
    137. Re:Wow! by demi · · Score: 1

      Hey, who'd a thunk that computer science was about the telescopes?!

      --
      demi
    138. Re:Wow! by namco · · Score: 1

      You're slightly wrong there. Outsourcing is contracting the work to another company within the same country, whereas offshoring is contracting the work to another company who are not from the same country.

    139. Re:Wow! by j-pimp · · Score: 1

      Well, but to me at least graph theory and cryptograpy are purely mathematical that happen to be very useful for CS. Algorithm analysis is mostly mathmatical as well but at least it is completely focused on CS. Somebody else mentioned quantum computing, but that seems to be more about physics than CS.

      When I think about CS I think about things like microkernels or clockless processor architectures (although the latter is partly electronics of course). So I was wondering what examples others could come up with.

      A real computer scientist would never write in anything less portable than a number 2 pencil. I'm sure you've heard that before. The saying implies that computer scientists are just mathematicians that use computers to model there data.

      --
      --- Justin Dearing http://www.justaprogrammer.net/ We're just programmers.
    140. Re:Wow! by quintesse · · Score: 1

      "I'm sure you've heard that before."

      Well actually, no :-)

      But it seems I haven't been around too many "real" computer scientists. But somehow I can't see A. Tanenbaum (the only really well-known, still living, computer scientist I can think of right now that lives here in The Netherlands) doing much mathematics. I'm pretty sure his work involves mathematics, it just doesn't seem to appear much in his work.

  2. Slashdot rule #1: by Anonymous Coward · · Score: 0

    Never trust a McBride.... ;-)

  3. A question of "R" vs "D" by ZombieEngineer · · Score: 4, Insightful

    Computer Science graduates can go one of two directions:

    Academic Research - Which has grown at a steady rate

    Corportate Development - Which collapsed at the end of the dot-com boom.

    There is still a need for "pure" computer science research for the next big improvement in the field of computing (where is the next "Google" going to appear?)

    ZombieEngineer

    1. Re:A question of "R" vs "D" by Professor_UNIX · · Score: 1

      Computer Science graduates can go one of two directions: Academic Research - Which has grown at a steady rate Corportate Development - Which collapsed at the end of the dot-com boom.
      I don't understand why people seem to discount the other useful employment opportunities that computer science students can pursue like systems engineering, network engineering, network/IT security, and even system administration. To me there's a hell of a lot more to computer science than being a code monkey programming in whatever popular language of the day is out there. Personally I *hate* programming, but I love networking and security. I'll write a program (usually in Perl) to assist me in my daily duties, but I have absolutely zero interest in going to work for some software company and becoming a code drone developing some commercial software package. Why do Slashdot readers always equate Computer Science with programming?
    2. Re:A question of "R" vs "D" by bibel · · Score: 0

      where is the next "Google" going to appear? Nowhere, never. Giant companies like Google and Microsoft are slowly (but surely) monopolising the industry. It is the small businesses that will probably die, and we'll all work for Microsoft as testers, and life will be good.

      --
      this one time... at computer camp... I shoved a linux cd in my windows computer
    3. Re:A question of "R" vs "D" by Anonymous Coward · · Score: 0

      Because networking/sysadmin jobs do not usually require certifications, with the CS degree being somwhat optional?

    4. Re:A question of "R" vs "D" by qwijibo · · Score: 1

      It's just a question of scale. Some programming is a natural extension of system administration. It's just a question of where you draw the line. Do you automate tasks to make the sysadmin work easier? If people keep asking you the same inane questions, do you set up Apache and some scripts to generate reports so they can look it up online and stop asking you the same question about the systems over and over? Do you store historical information information on the systems? This is all a natural extension of sysadmin tasks that I would normally do. It's also all the background you need to be able to develop other web based database applications.

      While there are many different disciplines one can get into from an interest in CS, software and programming are a big part of that. The off the shelf hardware gives you capabilities. The useful functionality comes from how the hardware is configured to meet the need. At the end of the day, people who do CS professionally have to serve some business goal to justify their ongoing expense to the company. While being a nose to the grindstone code monkey writing code for commercial applications is a narrow part of that, a lot of programming is done for the sake of some other purpose. The usefulness of a programming background in whatever CS/IT related field you're interested in is what makes a lot of people equate CS with programming.

    5. Re:A question of "R" vs "D" by jshriverWVU · · Score: 1

      I agree completely, the hard part is who can afford to live on a research income with $50-60k+ in debt from college loans?

    6. Re:A question of "R" vs "D" by Duncan3 · · Score: 1

      There are 3 completely different things here, and they have almost nothing to do with each other.

      1. Computer Science. This is what academic CS is faculty and Ph.D's, theory, applied math, R&D.
      2. Software Engineering - designing software, Apple, MS, Google "try" to hire these people.
      3. Programming - writing code, already 90% offshored to the lowest bidder and not worth talking about.

      When you got a B.S. degree in CS, you wanted #2 but probably just went into CS for the money and ended up with #3 if you can even code a FOR loop at all. In fact, you can't really learn #2 in school since the faculty are #1, you have to do it since you're 8-10 years old, screw up a lot, and learn from it.

      Jobs in #3 are gone, forget about it. #2 are still in very high demand if you're good at it, but very few people are. #1 is where all the cutting edge stuff and new companies come from, and is also alive and doing very well, but is not for most people.

      People often lump all 3 together and any statement you make about that is going to be wrong.

      --
      - Adam L. Beberg - The Cosm Project - http://www.mithral.com/
    7. Re:A question of "R" vs "D" by koreaman · · Score: 1

      With the help of your parents, scholarships, going in-state, etc., your undergraduate education shouldn't end up in $50-60k in debt. And PhD programs generally fund their students.

    8. Re:A question of "R" vs "D" by jshriverWVU · · Score: 1

      What if your parents are poor, can't get scholarships, and in-state tuition triples in 3 years, and they force you to live in the dorms freshman year which adds another 8k a semester ;)

  4. Horology anyone? by Tracer_Bullet82 · · Score: 2, Interesting

    I remember a few years ago, 2 the minimum if my memory serves me, that watchmaking is a dead business. Even the us education dept. considered it dead and buried with less than 100 students per year taking it.

    today though, with watchmaking (back) on the rise, the supply of workers is much less than the demand.

    everything, well most thing at least, is cyclical. we'd expect so called researchers to have much longer timelines in their research than the immeduate ones.

    --


    Timang tinggi tinggi
    parang sudah asah
    alang alang mandi
    biar sampai basah
    1. Re:Horology anyone? by Surt · · Score: 1

      I read not a month ago about how numerous watchmakers were considering bankruptcy due to ubiquitous cell phones. Do you have any support for your claim that watchmaking is on the rise?

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
  5. Well by OverlordQ · · Score: 1

    Dont tell that to my professor.

    --
    Your hair look like poop, Bob! - Wanker.
  6. Graduates are in short supply by MichaelSmith · · Score: 1

    Where I work we are outsourcing work to India, China and Russia becaue it is impossible to deliver on our projects with people hired locally.

    When I was young you had to be a bit of a geek to tinker with computers at all. You had your 8 meg basic in rom, and a bit later, CP/M. Now people who want to tinker are building machines for gaming or some such and because what they are doing is much more mainstream, they don't think of it as being anything special so when they decide what to do for a living they don't think of computing as the way to go.

    Sorry about the car analogy because I know we are all sick of that, but its a bit like I used to muck around with engines when I was 18 but never wanted to be a mechanic.

    1. Re:Graduates are in short supply by Alioth · · Score: 1

      8 *meg* BASIC, before CP/M? 8K maybe...

    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:Graduates are in short supply by MichaelSmith · · Score: 1

      I am a biophysics Ph.D. student.

      Just curious: what drove your choice of career? For me it was hacking with electronics as a 5-15 year old in the 1970's.

    4. Re:Graduates are in short supply by Anonymous Coward · · Score: 2, Insightful

      (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?)

      Modern CS doesn't teach these concepts either, try wikipedia. I'm being serious.

    5. Re:Graduates are in short supply by ReidMaynard · · Score: 0

      Where I am working they are outsourcing work to India, China and Russia because "wall street" has dictated that successfull IT orginizations outsource a particular percentage of their business. This is common knowledge.

      --
      -- www.globaltics.net

      Political discussion for a new world

    6. Re:Graduates are in short supply by dbIII · · Score: 1

      And in India the projects are worked on by students or recent graduates doing cut price work until they have enough experience for a job with better money and greater responsibility - they can't even deliver there at the prices with experienced staff. It's funny seeing this outsourcing thing from the USA to the inexperienced in India happen when wages are not even a significant proportion of expenses - don't blame India blame clueless managent gambling the existance of the company on short term gains.

    7. Re:Graduates are in short supply by beelsebob · · Score: 2, Insightful

      Just of note - I doubt very much you'll find many CS students who know what Currying or a Closure is. Most of them learn Java and think that it's the best thing since sliced bread. They don't even realise that Functional Programming exists, let alone what it is, what it's benefits are etc.

    8. Re:Graduates are in short supply by MichaelSmith · · Score: 1

      8 *meg* BASIC

      Oh damn. That was a long time ago.

    9. Re:Graduates are in short supply by jibjibjib · · Score: 1

      They don't even realise that Functional Programming exists, let alone what it is, what it's benefits are etc.
      --
      I have a lazy evaluated sig... I'm too lazy to evaluate it
      sig :: String
      sig = 'a' : sig
      DysFunctional Programming has practical benefits? I thought it was only useful for lazy-evaluated sigs.
    10. Re:Graduates are in short supply by IUnknownMinusOne · · Score: 1

      Valid point. With all new and popular languages getting close what was just theory some 15 years ago, it makes more sense to have a CS degree. Without CS, it is hard for developers to understand and use currying, design patters etc., effectively. I come across developers who come with a very diluted CS degree and struggle with templates (generics).

    11. Re:Graduates are in short supply by Corporate+Troll · · Score: 2, Insightful

      So you are telling me that Universities that teach Computer Science don't teach about the programming paradigms anymore? No computational theory? No proofs of correctness? They don't even give you projects in Haskell or Prolog? (I suck totally at Prolog, but I loved Haskell) Wow, they dropped all that since I graduated 10 years ago?

      If you haven't heard of anything I just wrote, you have proof that you didn't have a computer science curriculum, but a programming class. *sigh* Kids these days....

    12. Re:Graduates are in short supply by cyclop · · Score: 1

      Well, I wanted to be a scientist since I was 5 years old. I once wanted to be a physicist or an astronomer (like many science-geek children). I also loved programming in BASIC on my dad's Vic-20. What killed my interest in computers was Microsoft. Under MS-DOS and then Windows I had no idea on how to code (except QuickBasic) and no relative/parent/neighbour/friend knew anything about C or the like. My dad knew a bit of assembler, but not x86 assembler, so I lost interest in computing. I also had no internet until 1998.

      In the meantime in the high school I felt math was quite too hard for me. In truth I just had a really bad teacher, but I was unsure, so I choose Biotechnology as a university degree. It was just gaining momentum here in Italy and it looked like something worthwile. Then I found Linux and free software on one side (getting back fun in computing), and bioinformatics on the other. A professor asked me if I wanted to join his biophysics lab (protein structure and AFM, basically) as an undergraduate, and that's it. If I come back, I'd probably do physics now, I feel more confident in myself. But oh well, that's life.

      Thanks for the interest in my biography. :)

      --
      -- Patent no.123456: A way to personalize /. comments with a sig attached to the end.
    13. Re:Graduates are in short supply by cyclop · · Score: 1

      I tried wikipedia but I found their presentation of concepts a bit too abstract and examples too concise for me. I could probably figure out them if I look at them with patience, but I hoped for a nice CS book that covered these kind of subjects well explained.

      --
      -- Patent no.123456: A way to personalize /. comments with a sig attached to the end.
    14. Re:Graduates are in short supply by orkomedix · · Score: 1

      I think you are right by saying "This doesn't mean CS is dead.", but I think for a lot more reasons than those that have been mentioned here. First of all that fact, that these "packadges" are available to anyone the problems that companies are confronted with are a lot more complicated then they where 10 years ago. To solve those problems you need a good education in all different kinds of CS - simple programming was never and will never be the only part of CS ! We have accomplished to solve some more or less trivial problems and provide anybody with this solution BUT now we can try to solve much more complex things with computers. Not only Newton said: "We are standing on the shoulder of giants!" Another reason why education is importand is, that all these systems need to be maintained, updated, expanded... You need to know one or two things about CS to do that aswell. I have seen how much CS and physics you need to create a "simple" component control in an assembly line in the car industrie - without CS (computer vision in particular) you wouldn't be able to ! So the more available Software solutions will be, the more specialized you need to be to solve new problems. I think this conclusion "CS is dead!" is simply shortsighted and poorly read up on.

    15. Re:Graduates are in short supply by Aceticon · · Score: 1

      During the 20 years i've been doing Software Development (first as hobby, then as a job), this discipline (and me) passed through all the generations of programming languages and frameworks (in my case Assembly, C, C+, Java and J2EE stages).

      During that time, programming languages became easier to use and more powerful, while more and more advanced functionality was distributed in the standard libraries or standard frameworks.

      At the same time as Software Developers got empowered to do more, bigger and faster, users and companies kept requiring even more and bigger and faster Software.

      The truth is, componentization and pre-packaged domain-specific software are just another step in the same ladder. The typical big company nowadays has hundreds of different systems, thousands of software components, all directly or indirectly connected to each other, the vast majority of which either depends on information provided by other system and/or provides information to other systems. Consider the software which has been developed to integrate all these systems and communicate with external 3rd party systems and add to this in-house custom systems developed for specific purposes (for which no appropriate off the shelf system is available) and there're still loads of things to do in traditional Software Development, not counting related disciplines such as Software Design, Technical Analysis and Technical Architecture.

    16. Re:Graduates are in short supply by Anonymous Coward · · Score: 0

      Head First Design Patterns is a great introduction to design patterns. I keep the GoF book for reference, but that is a much more academic, rigid text.

    17. Re:Graduates are in short supply by ghoul · · Score: 1

      What CS department are you talking about? Ours made even Graduate students take a functional programming course if they hadnt taken it as an undergrad and of course it was compulsory for undergrads. Even though at first functional programming can seem counter intuitive to people raised on OOP it is kind of neat once you understand it ( Of course it has no application for 90 % of real world software). BTW there is a JSR for introducing closures into Java so you might have to backoff on the Java bashing

      --
      **Life is too short to be serious**
    18. Re:Graduates are in short supply by Rycross · · Score: 1

      I graduated in 2004, and I learned about programming paradigms, algorithms, computational theory, and all that. We did have software engineering related courses, but mostly theory. I didn't use Haskell or Prolog, but we kinda went over Prolog in my AI class, and we used OCaml in our Programming Languages and Compilers class, which heavily focused on functional languages.

      I'd say it depends on where you go to scool.

    19. Re:Graduates are in short supply by generationxyu · · Score: 1

      that probably are trivial for people with a CS education (what's currying? what is a closure? how do I implement design patterns? etc.)

      If this is the level of problems you're having problems with, you're a few steps ahead of most CS graduates already.

      --
      I mod down pyramid schemes in sigs.
    20. Re:Graduates are in short supply by Locklin · · Score: 1

      CS is far from dead. There are still so many fundimental design issues with current software models. CS will always be healthy as long as the 90% of the worlds computers have to wait for "patch tuesday."

      --
      "Knowledge is the only instrument of production that is not subject to diminishing returns" -Journal of Political Econom
    21. Re:Graduates are in short supply by Corporate+Troll · · Score: 1

      I'd say it depends on where you go to scool.

      They didn't teach you spelling there, though ;-) Indeed, that was the point I was trying to make. A school selling "programming" as "computer science" is just not the kind of school you want to attend. (Unless you only want to know how to program)

      Alas, today, pretty much anything to do with computers is "sold" as "computer science". Now, while not at a University, I have been a teacher at a high school. I didn't expect to teach them computational complexity because that has no place in high school. I did however hope to teach programming. I ended up teaching Word and Excel in courses that were called "Informatique" (which is the French for Computer Science). It sucked to no end and the kids couldn't care less... I quit. That's not what I wanted to do. I only regret that I have is that I now earn 1000€ less per month, but that's a particularity of my country... :-(

      The odd thing was: the exam I had to take to become a teacher was 100% pure computer science. To this day, I do not understand why they need computer scientists to teach Office products.

    22. Re:Graduates are in short supply by Rycross · · Score: 1

      They didn't teach me how to use a spell-checker either. ;)

      The sad thing is that computer science curriculum are apparently being dumbed down, at least the university I graduated from. They did a big reorganizing of the curriculum there. Part of the reorganization was dropping the highest level algorithms and computational complexity course as a required course because it was too hard. I believe they intended to focus more on practical programming courses too.

      My experience with high school computer courses matches yours unfortunately. I had to take distance education courses just to get C++ programming in high school. Even then I blew through a whole years of material in a month or two, because the material was just too damn easy.

    23. Re:Graduates are in short supply by koreaman · · Score: 1

      C'est la France... votre système scolaire est nul. (T'inquiète pas, c'est nul chez moi aussi)

    24. Re:Graduates are in short supply by Corporate+Troll · · Score: 1

      Avec le petit problème que je n'habite pas la France et que je n'ai jamais enseigné en France. De plus: en France les enseignants sont mal payés, ici on gagne beaucoup plus quand on travaille pour l'état que dans le privé. (Du jamais vu dans quasiment toute l'Europe)

      Mais, en effet, après mon excursion dans l'éducation nationale de mon pays, je suis complètement d'accord avec toi: le système scolaire de mon pays est nul!

    25. Re:Graduates are in short supply by Procyon101 · · Score: 1

      The best one by far is "The Wizard Book"... Structure and interpretation of Computer Programs, or affectionately abbreviated most anywhere as SICP. It's the textbook for MIT's intro to CS class and is available for free on the web; just google for it. If you find it a bit tough to follow, then go to ocw.mit.edu, and you can get all the accompanying lectures and lecture notes from the class to go along with the book... with those it's a breeze to pick up.

      The book covers all of the major programming concepts in a very straightforward manner (although I do wish they spent some more time on type theory) and is not too difficult a read at all.

    26. Re:Graduates are in short supply by frank_adrian314159 · · Score: 1
      I had to take distance education courses just to get C++ programming in high school. Even then I blew through a whole years of material in a month or two, because the material was just too damn easy.

      If you really think that C++ is that easy, you're either a genius or you're not doing anything too difficult or interesting in it...

      --
      That is all.
    27. Re:Graduates are in short supply by Rycross · · Score: 1

      We're talking introductory courses. if-then, loops, arrays, functions, basic pointer stuff, class/objects, and basic templates isn't terribly hard stuff. C++ only really starts getting really complex when you start doing stuff like large inheritance trees, multiple inheritance, advanced template usage, template meta programming, etc. A high school level course shouldn't take a month to teach people how to use functions.

      My final project for that course was a very very simple rpg with ascii graphics. So yes, nothing too complex.

    28. Re:Graduates are in short supply by 5pp000 · · Score: 1

      Seconding this. Definitely check out SICP.

      --
      Your god may be dead, but mine aren't!
    29. Re:Graduates are in short supply by et764 · · Score: 1

      DysFunctional Programming has practical benefits? I thought it was only useful for lazy-evaluated sigs.

      Functional programming does have practical benefits. If your code doesn't have any side effects (pure-functional code doesn't) then everything is trivially parallelizable. Google took advantage of this to make MapReduce. I think this kind of thing is going to become more and more important as we move into a world where we have hundreds of CPU cores instead of just one.

    30. Re:Graduates are in short supply by Anonymous+Brave+Guy · · Score: 1

      Even though at first functional programming can seem counter intuitive to people raised on OOP it is kind of neat once you understand it ( Of course it has no application for 90 % of real world software).

      That's a pretty bold statement. In what major areas do you think functional programming has no application?

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    31. Re:Graduates are in short supply by cyclop · · Score: 1

      Thanks for advice. Just downloaded it, looks very promising.

      --
      -- Patent no.123456: A way to personalize /. comments with a sig attached to the end.
    32. Re:Graduates are in short supply by koreaman · · Score: 1

      Il paraît que tu es luxembourgeois: désolé d'avoir fait cette erreur!

      Mais justement, je pense qu'il y a des problèmes avec tous les systèmes scolaires de tous les pays. Si seulement chaque gouvernement pouvait observer les autres pour voir ce qui marche et ce qui ne marche pas (non seulement au niveau de l'éducation). Comme ça, chaque gouvernement pourrait prendre les meilleurs aspects de chaque système et en faire un pays parfait.

      Bah j'ai le droit de rêver!

    33. Re:Graduates are in short supply by Corporate+Troll · · Score: 1

      Ouais, c'est pas trop dur de trouver qui je suis. Surtout pas à partir de mon (mes) nom de plume slashdot.

      Selon les études que j'ai entendu quand j'était stagiare-prof (car j'étais en formation pour devenir un prof encore mieux payé) il parait que le systeme Norvegien, Finlandais ou Suédois étais le top. (Un de ce trois pays, je ne me rapelle plus lequel) Le gros problème ici, c'est les langues: en maternelle les enfants doivent parler le Luxembourgeois, en primaire la plupart de leur cours sont en Allemand et en secondaire la plupart de leur cours sont en Français. Si tu n'est pas top en langues, tu n'a aucune chance dans le système Luxembourgeois. Puisque je n'étais pas issu du système Luxembourgeois je ne savais pas du tout que c'était le cas. En étant stagiare prof, j'ai toujours eu des remarques parce que j'écrivais des fautes d'ortographe/grammaire sur le tableau.... dans un cours d'informatique... :-/ Je ne serais jamais passé par l'examen final, juste à cause de cet handicap.

      Les pays Nordiques n'ont pas ce problème de langue donc ils peuvent simplifier leur systeme. (Personellement, je crois justement que le système Luxembourgeois doit tout simplement adopter une langue principale...)

      Oui, je suis nul en langues écrites, mais je bats n'importe quel Luxembourgeois dans l'oral... (Je suis Luxembourgeois naturalisé) Je suis persuadé que si j'aurais été dans le système Luxembourgeois en étant étudiant, je serais en train de nettoyer les chiottes à la place d'être informaticien.

    34. Re:Graduates are in short supply by koreaman · · Score: 1

      Moi, je ne connais que les systèmes américain et français, donc je ne peux pas juger les autres. Ca me paraît quand même bizarre que les élèves luxembourgeois soient obligés de changer de langue tellement souvent pendant leur scolarité!

      J'ai lu que les systèmes nordiques sont les meilleurs, mais je ne peux pas être sur.

      Le système français est meilleur que le système américain principalement à cause du baccalauréat: les élèves sont obligés de bien travailler pendant les deux dernières années pour l'avoir. Aux Etats-Unis, il y a soit un test très facile, soit rien à la fin de la scolarité pour avoir le diplôme (ça dépend des états). C'est ridicule parce qu'il y a des cancres qui ne travaillent pas et puis qui sortent de l'école diplomés. Je trouve aussi que le niveau et moins élevé qu'en France.

      Mais le système français n'est pas parfait non plus: parfois j'ai l'impression qu'il valorise trop la forme des choses: la belle écriture, les notes très correctes et lisibles, avec des couleurs de souligneurs différentes, etc.

      Mais bon, on n'y peut rien, sauf si l'on est ministre de l'éducation ou un truc dans le genre. Et les écoles supérieures américaines et françaises sont très bonnes (quelques-unes, au moins), donc les jeunes ont quand même une chance de ne pas être cons à la fin!

  7. *yawn* by teknopurge · · Score: 0

    every 3141 days or so this question is asked. It wasn't true 30 years ago and it isn't true now. it's the same as gang warfare - we get kevlar, they get hollowpoints. we get semi-automatics, they get automatics....

    what advantage does a single company have if they all their competitors use the same software? What, are the people going to set the company apart?!?(ha!)

    Custom software within company's IS people - the knowledge of people are disected, analysed and automated in the form of proprietary systems. I'm currently working on a ~25 million USD project(actually there are a handfull of apps) whose goal is to automate various financing tasks. WIthout a doubt, we are doing it better now then we did 5 years ago, but there is no end in sight.

    1. Re:*yawn* by TapeCutter · · Score: 1

      Exactly, if my CS degree is dead I can only assume it must have died laughing on the way to the bank.

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
  8. Don't think so by VincenzoRomano · · Score: 2, Interesting

    Just like building construction science was not dead with Egyptians, Greeks, Romans, Chinese, Aztech ... and so on, the IT won't.
    New technologies, new languages, new paradigms as well as new hardware will push forward the IT.
    I fear the sentence has come from some "old school" mind, still tied to old technologies. Which could really die sometime in the future.

    --
    Maybe Computers will never be as intelligent as Humans.
    For sure they won't ever become so stupid. [VR-1988]
  9. We get asked this every few years by Tim+Ward · · Score: 1

    It is true of course that most users of computers these days do not write their own accounting systems; do not write their own payroll systems; do not write their own word processors; and do not even keep a team of operating system tweakers in house ("system programmers" from the IBM mainframe days, needed just to keep the thing running).

    But ... someone has to write all this stuff!

    1. Re:We get asked this every few years by MichaelSmith · · Score: 3, Insightful

      It is true of course that most users of computers these days do not write their own accounting systems

      Isn't that what spreadsheets are for?

    2. Re:We get asked this every few years by donaldm · · Score: 1

      Many corporations buy business software but instead of modeling their business practice on the software methodology they insist on making the software conform to their business practices. Actually this is great for the consultant who can say "please open cheque book and I will tell you when to close it" (SAP is a great example here). If the business did their homework properly and was willing to change their practices to conform to the software they would save a fortune but this rarely happens since many business have people with too much invested interest or shear bloodymindedness and the consultant walks away with a fortune and the business is usually a few million dollars lighter.

      It is rare that the consultant gets outsourced since they normally deal face to face with the business, but unfortunately it is all to easy to outsource the programmer. For those interested it is nothing unusual for an SAP consultant to ask and get US$100 to US$300+ per hour and the greater the changes wanted (not necessarily required) the better for the consultant or consulting firm.

      --
      There ain't no such thing as proprietary standards only proprietary formats. Standards are by definition open.
    3. Re:We get asked this every few years by darth_fishy · · Score: 1

      Mod parent insightful (or funny depending).

      It's actually quite scary to see the amount of large financial systems that are coded entirely in excel. Though I suspect the parent was being facetious it's an example of how shrinkwrap (in this case MS Excel e.g.) can be a stand in for multi-million dollar financial software.

    4. Re:We get asked this every few years by Sobrique · · Score: 1
      But by the same token, I've seen Lotus notes _trying_ to stand in for a real database. And being an utterly disasterous bodge, that didn't really work, but 'no one' knew how to get it right

      Mostly because they didn't really grasp what a 'relational database' means, and why a bloated email client is never going to be able to do what they want it to.

      I wish they'd had CS degrees.

    5. Re:We get asked this every few years by kestasjk · · Score: 1

      Not unless you can have the spreadsheet set up as a server that can employees can send hourly bills to, and the bills from each employee are registered as coming from that employee and can be checked out by that employee's specific supervisor, and the spreadsheet can account for all the tax issues that each employee might face, etc, etc, etc.

      Companies don't buy accounting software because no-one knows how to use Excel.

      --
      // MD_Update(&m,buf,j);
    6. Re:We get asked this every few years by Bloke+down+the+pub · · Score: 1

      If the business did their homework properly and was willing to change their practices to conform to the software they would save a fortune
      Indeed. Faced with the classic "make or buy" decision, they end up doing both. Many people blame SAP but I don't think that's justified. If anyone's guilty it's partly the consultants (independent ones do it, but the big companies are ten times worse) for always saying yes.

      Then again, if the end customer will boot anybody out who says no, they deserve what they get.
      --
      It's true I tell you, feller at work's next door neighbour read it in the paper.
  10. dead no, dying? yes by rucs_hack · · Score: 5, Insightful

    Over the last six years I've been increasingly worried by the falling level of ability in CS students.

    I've encountered CS students recently who in their third year are unable to do such basic things as understand memory allocation. As for algorithm design? Well that's simply unknown by the majority. That scares the shit out of me.

    The Mantra is 'don't re-invent the wheel'. This is used as an excuse for students taking off the shelf components for assignments (sorting classes for java being used for sorting assignments for example), or being given virtually complete assignments by lecturers and being walked slowly through the assignment to the point where little or no original thinking is required.

    Now it is true that re-inventing the wheel is a bad move at times. However whilst studying for their qualification, they should learn how to build the wheel in the first place.

    Back to the memory allocation point. I currently know of no final year students with a decent understanding of this topic, and yet it is the main cause of security problems in code. They should at least have a working knowledge.

    The ephasis is more and more on using languages designed to try and remove the main problems in code, but who writes these languages? It sure isn't the people who are only taught to use them, not create them.

    The normal course of action is to blame Java, since it has led to a simplistic approach to CS assignments. I'd love to blame it, I ferkin hate the language, but that isn't the root cause.

    Computer science is a hard topic that they are trying to make simpler to encourage more students. This has the result that CS students are graduating with ever reducing levels of ability, so people no longer see it as a worthwhile topic. Nowadays a CS student who wants to do really well has to work on independent study entirely apart from the course they are attending, and has also to face the unpleasant reality that their education as provided by the university is so poor that they may face years of further study to gain a useful level of ability.

    Post graduate study can reduce this problem, but there are fewer post grads too, and often it is funding, not interest in a topic, that guides the selection of a course.

    1. Re:dead no, dying? yes by Andrew+Kismet · · Score: 1

      I am a first-year computer science undergrad in the UK, studying Java.
      Should I be intensely worried, or should I just do a LOT of self-study in my spare time over the next two/three years?

    2. Re:dead no, dying? yes by Rakishi · · Score: 1

      Don't claim it's everyone when all you have is likely some small selection of students or schools. Some schools are crap and some students are lazy/idiots. If all someone takes are the "easy A" courses that a monkey could do then why do you expect them to be more than a monkey?

    3. Re:dead no, dying? yes by blankinthefill · · Score: 1

      I agree with a lot of what you said, but I also believe that many of your statements are very dependent on the school in question. At my school, CS grads are basically guaranteed a job immediately upon graduation with any number of big name companies, because the school I attend is very well known for providing a well rounded, in-depth, and difficult curriculum. I do believe, however, that my school is not the norm. Most colleges that I see around today don't teach CS, they teach coding, and as (I hope) most of us know, there is a very large difference. The real problem is that finding code monkeys is simple, but finding someone with a (good) education in project design/program development is much much harder... IMHO, real CS majors will always be in demand, but programs that simply pump out coders are doomed to fail.

    4. Re:dead no, dying? yes by rucs_hack · · Score: 4, Insightful

      Self study.

      Of the people I knew who did well, those who self studied alongside their normal course did things like website design, search algorithms, micro kernel design, robotics and advanced study in certain languages (lisp, c++, C, Object Pascal, assembler), everyone I knew did the last thing, but the languages varied.

      You can pass and get a 2.1 or 2.2 easily just by following the course guidelines. I got my phd offer not by doing this, but by cramming every day (almost every day, have a blowout night at the weekend, you've got to have some fun time) with additional study. I exceeded the requirements of every assignment (I wasn't alone in doing this), and studied around every topic taught. The result was a lot of very interesting phd offers when I graduated, it rocked. I was tired a lot, I will admit, but the benefit was vast, I was so far ahead of the students who just followed the course that I actually tutored some.

      Don't assume I'm that clever though, I sweated blood sometimes trying to get assignments done early, and the extra learning was oft times very difficult. Every evening spent on it was one well spent however.

      Most of the people I know personally who did this are now in great jobs, one heading towards millionaire status at 25. In his case he worked like a dog, even more than I did. You wouldn't beleive what he was capable of on graduation.

      So work hard, and study around the subjects.

    5. Re:dead no, dying? yes by MichaelSmith · · Score: 1

      At my school, CS grads are basically guaranteed a job immediately upon graduation with any number of big name companies

      My advice: follow your nose. Work on what you enjoy. Big companies are okay but don't get stuck working on a production line.

      Mass production is how small companies become big.

    6. Re:dead no, dying? yes by Anonymous Coward · · Score: 0

      Which colleges do these "final year" students who can't malloc() don from?

    7. 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.

    8. Re:dead no, dying? yes by Eivind · · Score: 1
      You've been talking to the wrong students then, seriously. Language is completely beside the point.

      You can't even pass *first* year in CS at the University of Bergen without programming, yourself, from scratch, atleast a dozen or 2 of the archetypical basic algorithms and datastructures; linked-list, double-linked-list, stack, circular-buffer, Heap, BubbleSort, QuickSort, Binary Trees, Red-Black Trees, Shortest-path that sort of stuff.

      And they *do* use Java in the first year. Later they don't care what language you use, as that tends to be completely beside the point in more advanced courses. I did most of my crypto-assignments in 3rd year using Python, others stuck with Java, some made a point of using a different language for just about every assignment to get a bit of experience in diverse languages, I saw Diffie-Hellman implemented in C, C++, Java, Python, Ruby, Lisp (various), Modula-2 and Perl, a friend of mine threathened to do it in intercal, but I don't think that actually happened. Shouldn't really matter, the point is to understand Diffie-Hellman, not the language used.

    9. Re:dead no, dying? yes by Hazelnut · · Score: 1

      "The normal course of action is to blame Java, since it has led to a simplistic approach to CS assignments. I'd love to blame it, I ferkin hate the language, but that isn't the root cause."

      It's nice to see you're not blinded by your hate for Java, this is /. after all, but I'm curious as to why you hate it? There are a few languages that I dislike, but I don't think there are any that have inspired actual hate. Java is actually one of my favorite languages that I've used.

    10. Re:dead no, dying? yes by rucs_hack · · Score: 1

      Like I said, I'd love to blame Java. I try not to because I don't really believe that a single language can be so harmful.

      Sounds like your course is fun. It sounds like the kind of place that skilled computer scientists will emerge from.

      My personal ideal language teaching curve would be

      assembler
      Haskall
      C
      Lisp
      C++/Java

      With complex algorithm design emerging in the Lisp Module. Knuth spends a long time just describing the For Loop in his book, and a detailed understanding of the mechanics underlying it and other 'basic' operations would be good for students

    11. Re:dead no, dying? yes by rucs_hack · · Score: 1

      I do agree with you, but language is important. You need a decent working knowledge of some mainstream ones in order to be employable, I was trying to take account of this need.

      I can't stand sitting down and coding as a sole means of working. I prefer to go for long walks to work on the problems I solve, then spend some whiteboard time refining it. Only at that point do I instantiate in code.

      You remind me of something a lecturer said in my second year 'You can use any language you like except for Visual Basic'. He'd been told to restrict students to the one language, and he threw that out of the window. We also had a wide spread of languages used for that assignment.

      My course required all the things you list as well, many of which had to be done in Miranda, a nice little language.

    12. Re:dead no, dying? yes by Anonymous Coward · · Score: 0

      Spare me the MIT holier-than-thou bit. Maybe when more than half your undergrads can explain the difference between a spinlock and a semaphore we'll listen.

    13. Re:dead no, dying? yes by aanantha · · Score: 1

      While I agree that there is less understanding now of some of the basic things like memory allocation, at the same time there have been important gains in other aspects.

      Back in the days when everyone was writing in C, understanding memory allocation was a given. But students spent so much time struggling with getting it right that they often never got to understand how to properly design code. The C programmers of the day were often the Fortran and assembly language programmers of the past. They would have very good low level understanding, but were still in the procedural programming mindset. They were used to worrying about the overhead of calling functions. It was very common to see multiple pages of code for a single function and thousands of lines of code per C file. Very few people knew how to write reusable code. They had enough trouble trying to reimplement and debug the same data structures every time.

      Once upon a time we could afford to do that. When the software industry was young, the software was simpler and the relative time to market was less. We no longer have the luxury of letting everyone write their own lists, queues, and hash tables. And when multiprocessor CPUs are the norm, we can't afford to let everyone struggle with race conditions when they don't add synchronization around their hand written data structures. Java isn't perfect. It can't completely replace C++ or C. But when you can use it, it gives you an amazing amount of prewritten code. If you need a hash table that is thread safe and automatically uses multiple locks to allow multiple simultaneous writers, all you have to do is create a ConcurrentHashMap. That's something that took good C programmers a significant amount of time to write and test. And then waste more time debugging and fixing it when there's a customer found bug in it.

      But certainly the flipside of having a language so easy to use is that it's very easy for programmers to do incredibly efficient things without the software technically breaking. Back when I was taking intro data structures in C++, you passed the assignment if your code worked. The teachesr didn't have time to dock you for writing slow code. And they didn't have time to read the code to grade on design. Essentially you only had enough time to debug and fix all your memory corruptions. (And this was at a top college). But you were well aware of where you were allocating and deallocating so discipline was required. What's the bar today? Will they actually look to see if students are allocating in a tight loop and killing the GC? I suspect not.

    14. Re:dead no, dying? yes by bob8766 · · Score: 1

      It's because the industry doesn't want computer scientists for the most part; they want Software Engineers. CS and software engineering are as different as physics and mechanical engineering. A physicist has enough technical knowledge to build a bridge, but would you want them to?

      Universities have failed to understand the difference between software science and engineering. The result is that they cave to industry pressure to educate people in CS programs to produce software needed for business.

      If our professors would pull their collective heads from their butts and split these disciplines into separate programs, then Computer Science could focus on research and Software Engineering could focus on building software solutions.

      You do, however, make some good points. Some of the content which has been omitted is important to engineering as well and should be reevaluated.

    15. Re:dead no, dying? yes by IamTheRealMike · · Score: 1

      Java isn't the problem, lazy academics who don't like coding, aren't any good at it themselves and would much rather be teaching their pet research area are the problem. My school had a good reputation, it was in the tier below Oxford and Cambridge - where all the Oxbridge rejects went, basically. This course did not teach memory allocation, not even in the C++ "course" (I use the term loosely). They'd much rather set assignments in Java because it means they can teach as little programming as possible, and instead can focus entirely on teaching whatever small part of CS it is that turns them on.

      Because they hire people just like them, this leads to:

      • Students that don't understand programming. Not even basic stuff like memory allocation. Knowledge of even Java is weak and flaky

      • Repeating the same material over and over (I believe predicate logic was repeated 3 times in my course), because they don't talk to each other about what is being taught.

      • Being given assignments that are way over the students heads, like creating advanced 3D graphics demos when they don't understand basic stuff like recursion or build systems. This regularly led to something like 25-30% of all assignment submissions being impossible to compile. Of those that did compile, many didn't run correctly. The academics couldn't afford to fail 30%+ of the class for every programming assignment, people would start to ask questions, so instead they'd simply send the work back and delay marking everybody elses until enough people had figured out how to write code that worked outside of their own environment. Hence, these people got longer deadlines and more time to improve things than the people who did it right in the first place.

      • Because so many people couldn't code worth a damn (not their fault!), the "programming" assignments tended to become writing assignments. For instance, one assignment I got was something like implement 3 pathfinding algorithms through a graph (I don't remember the exact task) and make sure you describe your algorithms. So I submitted some code with tons of comments describing the 3 algorithms as I went along, in full English. I got 10% for that assignment. Other people who submitted only 1 working algorithm and a Word document that described the 3 they would have implemented got more like 70%. When I went to the lecturer (who also ran the department) and quizzed him about this, he said "Why did you put your descriptions in the code? I don't have time to read students code".

      • At the end they decided they wanted more money, so refused to mark our exams until they got a 20% pay rise.

      At the time I assumed I'd somehow landed in this swamp of incompetence through sheer bad luck, but afterwards my friends from other universities and I would all compare notes - and we all had similarly bad experiences. It seems that - at least in the UK where there are no equivalents to MIT or Stanford - university education is largely worthless. The net result was a lot of students who not only couldn't code but didn't really understand computer science either because they'd never applied it to anything. And of course most jobs in the industry are for software engineers and not computer scientists, valuable though those last set are.

    16. Re:dead no, dying? yes by Anonymous Coward · · Score: 0

      Wow I'm surprised, CS students are supposed to be University right? Then why did we in a Network Support Class learn how to program in C using malloc and calloc?

      Obviously its not the students that are the problem or the teachers directly, its most likely the curriculum

    17. Re:dead no, dying? yes by Aladrin · · Score: 1

      "Self study" is wrong. Don't study, do. Put what you've learned, and some that you haven't, to use. Create things that have some use to you. Get a good handle on the language and its practical application at the same time.

      The first projects you make will be crap. It's pretty much guaranteed. Make them anyhow. You'll be amazed at what you learn and how well you learn it when you step outside the comfortable little setting the classroom has created.

      As a bonus, you'll have at least 1 project to put on your resume to show you were actually interested in programming, rather than just taking classes.

      --
      "If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
    18. Re:dead no, dying? yes by Jellybob · · Score: 1

      Can anyone else comment on this - I'm currently considering doing a CS type degree (probably at the University of Surrey) after a couple of years working as a web developer. I'm getting bored of building brochureware sites, and would really like to diversify my skills into client side development and the other interesting parts of computing.

      If the parent's comments are accurate though, I will probably do some technical qualifications instead, since my objective would be to learn more about how to develop software, and getting a degree would be a bonus.

    19. Re:dead no, dying? yes by julesh · · Score: 1

      I'm not convinced that scheme is a better language for teaching algorithm design than Java is. Yes, it has some nice aspects, particularly in that it can be used in a pure functional style, but I honestly don't see any particular benefit it has over Java for teaching undergraduate level data structure & algorithm courses.

      Like one of the other posters, I went to a nearly-top-tier UK university (in my case, Warwick), but I'm a little too old to have caught the university Java trend (Java itself had its first public release during my first year; the university switched to Java for its programming courses the year after I graduated), but we did "intro to data structures & algorithms" in Pascal, which worked out OK. I think Java's a better language than Pascal for this because students feel like they're working with a useful language (we all universally hated Pascal; we were forced to program in ISO-standard Pascal, which is the most horrible programming environment I've ever worked with).

      We also had separate courses on functional programming (in my year we used Miranda, but subsequent years used ML I believe) and declarative programming (SWI Prolog). We didn't build a CPU (although I believe students on the slight alternative course Computer Systems Engineering may have), but we did work on low-level projects (programming a small robot with light sensors to follow a line in 68000 assembly, and there was a project in NS32000, although I don't recall what it did).

      I think choice of language is much less important than the choice of what the lecturers emphasize in the course. And especially, choice of projects. Want the students to learn about memory allocation? Have them implement a memory allocater. Once you've done that, you'll always appreciate what malloc() and free() do for you.

      I do think that the one area many current curricula seem to fall down in is that students must have early exposure (IMO) to a high-level language without automatic memory management. In our case, it was Pascal which we learned as our first language and C++ which we learned for later software engineering courses. I believe many courses have replaced both of these entirely with Java, which I don't think is acceptable.

    20. Re:dead no, dying? yes by MrAsm · · Score: 1

      Where does this 25-years old millionaire work?
      Is he doing programming or management?

    21. Re:dead no, dying? yes by julesh · · Score: 1

      Spare me the MIT holier-than-thou bit. Maybe when more than half your undergrads can explain the difference between a spinlock and a semaphore we'll listen.

      Why would an average CS undergrad even need to know what a spinlock is? Seriously: spinlocks are specialist tools that are used by system implementors to produce higher level constructs like semaphores, mutexes and monitors. You only need to know about them if you specialise in concurrency.

    22. Re:dead no, dying? yes by julesh · · Score: 1

      Where does this 25-years old millionaire work?
      Is he doing programming or management?


      Based on the people I've seen achieve this sort of thing, he's almost certainly doing both, probably management about 4 hours per day and actual development work 8-12 hours. You don't make millions by being just a manager. You have to start out on your own, or in a small team, and you have to pull your weight in terms of doing the real work, alongside the management issues of keeping your business running smoothly as it expands.

    23. Re:dead no, dying? yes by rucs_hack · · Score: 1

      programming, specifically in the telecoms field.

      His skill lies in an amazing ability to derive algorithms to solve problems in a very short time. That these usually outperform alternate methods that took longer to develop is what gets him the big money. Large contracts worth many millions have been gained based solely on his database search work. I don't pretend to understand it all, we work in different areas.

      My take on how he is so good is that he spent years studying the issue of algorithm development at uni. Each assignment he did usually was accompanied by in depth diagnostics on algorithm performance, far beyond the course requirements. He cost me an A++ once when working on EAs because his work was so much better than mine I was reduced to A+.

      I think he'll be in management soon, since he plans to start his own company.

    24. Re:dead no, dying? yes by Anonymous Coward · · Score: 0

      It's not only that the basic skills are not longer taught. A lot of courses involve also material that's not of any consequence to someone who'd like to work in IT.
      At one of the universities here, a course is offered that's supposed to prepare someone for engineering solutions that involve both software and electronics.

      Guess what the main programming language is that's being taught... JAVA!

      No one even mentions assembly or C programming in the course and to make matters worse 'marketing' is a mandatory course as well...

      They must be bloody kidding me!

      There's one plus though; if new students don't learn the real skills anymore, hourly rates of people who do will go up...

    25. Re:dead no, dying? yes by gordo3000 · · Score: 1

      its funny you begin to blame java. I've seen java taught poorly. People taught like this are inferior to me in the language(I've never written code in the language or had any formal training in coding). Why? because at some different points in my life, I learned the logic behind writing code and spend a lot of time asking questions of people who are really damn good at it.

      but then the java class at my school was top notch. a buddy of mine was in it and I routinely watched him work on problems. there wasn't any hand holding in the assignments. It was simply "write code to...",and you were graded not on the code being able to do X, but the efficiency and simplicity of the code you put out as well. his hw assignments took even really bright kids several hours to complete and all his tests were in class, you had to write your code by pen and paper.

      anyone who passed thsi guys class learned how to write some really fun stuff.

      I think Java is the most abused language but I would argue how someone codes in java is directly proportional to how good they are at programming. Since shit code also runs, you know someone can see big picture ideas of coding by the structure of their code. I Find simple problems do that best.

      ex. in an interview, we asked someone to write code to find out of a number is prime. he ran through and basically wrote
      dim x, r as int
      dim y as boolean
      ' get the x value from user
      y = FALSE
      for i = 2 to x -1
      r = x/i
      if r = int(r) then
      y = true
      end if
      next
      if y then

      print "r is not a prime number"

      else
      print "r is a prime number"
      end if

      now, I know I committed slashdot crimes by doing the above in a weak resemblance to vba, but its the only syntax I remember well enough to write anything in right now.

      this was a comp sci major. I said we shouldn't hire him. when asked, I said he foolishly had his loop go through all numbers rather than just the odd numbers and made it go past the sqrt of x. both are really bad mistakes. further, he didn't break out of the loop as soon as his condition for prime-ness failed. yeah it runs, but it proves after 4 years of comp sci, he hasn't learned even basic math skills that should go with such a simple problem(and one I thought was pretty canonical).

    26. Re:dead no, dying? yes by moeinvt · · Score: 1

      "Of the people I knew who did well, those who self studied alongside their normal course did things like website design, search algorithms, micro kernel design, robotics and advanced study in certain languages (lisp, c++, C, Object Pascal, assembler)"

      Do you mean "did well" financially? If they have the energy and ambition to study robotics and learn C++ in their "spare time" while taking a full CS or engineering course load, it's a small wonder they became successful! Did they have to eat, sleep, and maintain their health as well?

    27. Re:dead no, dying? yes by Anonymous Coward · · Score: 0

      Is it not possible to use AMD-V/intel-VT x86 instructions to implement a spinlock? Besides which, wikipedia told me all I needed to know.

    28. Re:dead no, dying? yes by rucs_hack · · Score: 1

      actually, he must be doing some management, come to think of it, although I replied to say programming (below, somewhere). Mainly programming yes, but he could hardly be considering his own start-up unless he was involved in running the company he's at in some way. I don't know this for sure mind.

    29. Re:dead no, dying? yes by Anonymous Coward · · Score: 0

      The same as the ones where they don't know the difference between 'don' and 'come'?

    30. Re:dead no, dying? yes by bockelboy · · Score: 1

      Repeat after me:

      COMPUTER SCIENCE IS NOT PROGRAMMING. COMPUTER SCIENCE IS NOT ELECTRICAL ENGINEERING.

      I fully believe you can have a PhD in computer science and not understand a damn thing about how to program. Think of math; you can't get a PhD in math if you're *just* really good at trig., even if that's the most applicable part of the subject.

      You can be a great programmer, and a failure at computer science. A computer scientist also makes for a really lousy programmer in most cases.

      So yes, I can run circles around most folks algorithmically in my department without being able to tell you a damn thing about transistors. That's simply not part of my program of studies.

      I know tenured professors who probably haven't written a program outside pseudocode in 10 years, and they are happy for that. Why? Because there are huge, wide swaths of the subject that has nothing to do with programming.

      CS = Science, with a strong applied component.

    31. Re:dead no, dying? yes by DrFalkyn · · Score: 1

      I agreee that different languages should be introduced to undergrads early, and that they should get the basics of algorithms down before they do a big project. Java, C++ and other OOP languages are more suited towards high-level software engineering type things, which is really something that should be done in the 3rd/4th year. With a language like Scheme/LISP, the student can just focus on the algorithms and not have to worry about object creation, data typing, garbage colleciton (C++), etc. Then, coming from the other end you should probably also teach some sort of machine-like language. Maybe not real assembly language, but soemthing close to it - perhaps something like this old 'RAM'(Random Access Machine) pure theoretical language, to get a feel for what things like are at that level, and/or standard C for systems programming (i.e. primarily OS's). Then you should move on to languages like Java. As for the transistor/gate level, I think the rudiments should be taught but I don't think anything beyond a semester should be required, as not everyone is going to want to go that route and most people are doing high-level stuff nowadays.

    32. Re:dead no, dying? yes by jrjarrett · · Score: 1

      ex. in an interview, we asked someone to write code to find out of a number is prime. he ran through and basically wrote


      Oh, now this really irks me, because I've been in this same situation.
      Here you take someone who is in a high-pressure situation - a job interview - and ask them to hand-write code for an algorithm they may not have familiarity with. Their first try at it, and you say to not hire them because they missed some of the nuances of the algorithm (only check odd factors, don't need to check factors larger than sqrt(x))? So you'd hire some math geek who'd figure that out right away over someone who might take a couple of tries at refinement? Would that math geek be able to talk to a less-technically savvy business analyst to understand how to implement a sales forecasting practice?

      I don't do that in real-world development- I have domain experts that I can query for information on whether I am implementing correctly, I can refine, and I DON'T HAVE TO HAND-WRITE MY CODE. Not to mention that I am not worrying about whether I will be able to pay for food tomorrow if I can't do this RIGHT NOW.

      I'm admittedly triggered by this example because I had a couple of interviews for jobs where I was asked to do just that - hand write code to solve math problems. I can't hand write code anymore well. I can hand-write design (pseudocode or UML), and I had over a decade's experience - that should prove that I can write code. And frankly, that is what the computer is for - to catch my misplaced semicolons or missed brackets, or to do some quick prototyping/unit testing. But I can also have experience planning out projects that meet deadlines, or presenting project proposals to upper management for funding approval. You're not going to get that out of whether I can hand write code to figure out whether a number is prime.

      I understand that for someone with little or no experience, this is a way to get to an applicant's knowledge. But it's not a real world example; the pressures are different and the problem scope is wrong.
    33. Re:dead no, dying? yes by julesh · · Score: 1

      Yes, I'm aware of that. I wrote a significant proportion of that article. However, I still contend that most CS undergrads don't need to know what a spinlock is; they're too low level to be useful in most situations.

    34. Re:dead no, dying? yes by Eli+Gottlieb · · Score: 1

      (lisp, c++, C, Object Pascal, assembler)

      micro kernel design Dear Lord. You guessed everything I've done/doing!

      And let me tell you, when your design for threads in a micro-kernel written in Object Pascal starts getting closer and closer to continuations, it pays to know the ideas of Scheme.

      Now if I can just get into college...
    35. Re:dead no, dying? yes by rucs_hack · · Score: 1

      heh :-)

      A micro kernel written in object Pascal? Are you crazy!

      Joke, I'd never have thought of using that. I'm afraid to say I rarely stray from C these days. I am extremely fond of Object Pascal however. I've used it for robotics and found it very nice for implementing a subsumption architecture.

      R. A. Brooks (1986) "A Robust Layered Control System For A Mobile Robot", IEEE Journal Of Robotics And Automation, RA-2, April. pp. 14-23.

    36. Re:dead no, dying? yes by gordo3000 · · Score: 1

      actually, I guess I didn't explain it correctly. we gave him 24 hours of his choosing to answer 1 basic coding question, 1 basic dif eq question, and 2 logic problems. then,, 24 hours later during the interview, we reviewed his answers during a part of the interview. We then asked him in the interview if he could think of any improvements to make the code run faster. now that he couldn't wasn't a bad thing. we have all been in interview. but with 24 hours to submit a working piece of code to do something simple(this was an intro problem in the java class I spoke about, i.e. 2nd week you had to write exactly this and this was the first programming class for most people) I expected better.

      if you aren't a comp sci major with a math concentration, then don't say that is your major skill set. the job called for someone with good programming and math skills. now, if you still feel it was unfair, I'd like to know why.

    37. Re:dead no, dying? yes by Torvaun · · Score: 1

      I've got a degree in Computer Electronics, on my way to one in Computer Networking, taken most of the classes for the Programming program as well. Electronics is the one that cared about memory allocation. Maybe this is just because of the different teachers involved, but CE took us down to the levels where this sort of thing was important. We got to write programs in assembly language with Debug.

      We got to analyze FATs, and how they differed from NTFS. Now I'm probably one of two guys in my program who understands why things work the way they do, and the other one went through the CE program same time I did.

      My advice for CS graduates is to go through the Computer Electronics program at the local tech college.

      --
      I see your informative link, and raise you a pithy comment.
    38. Re:dead no, dying? yes by Anonymous Coward · · Score: 0

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

      That's like saying "Blame the paint you can buy at Home Depot if you're trying to teach a person to paint a painting"

      You can teach algorithm design with Java, what prevents you from doing so? Yes low level memory allocation is a hard to do with Java, but you can make an emulator of your processor in Java. I dare say that requires quite a bit of work too.

    39. Re:dead no, dying? yes by FishWithAHammer · · Score: 1

      From my experience? Spot-on.

      I'm a first-year student and I know more and can do more than most of the seniors I've met, and my abilities to design a program to tackle a problem and implement that design seem to rival grad students.

      I taught myself pretty much everything I know.

      (And yes, I can malloc() properly.)

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    40. Re:dead no, dying? yes by ghqman · · Score: 1

      I studied software engineering at Birmingham about 20 years ago, which was definitely a worthwhile experience. There appear to be a few different levels of computer learning, and you would need to find out what you want to do, and if a particular course matches. The pure computer science is about understanding how the computer works, the algorithms, and knowing what a computer can and can't do. The other end are the people who understand what users want, and the way they reach that goal may or may not be efficient, secure, or meet other criteria as they don't have that understanding. There is still plenty of room in the middle for the person who understands enough CS to use the right tool, but maybe not create the tools themselves.

    41. Re:dead no, dying? yes by rucs_hack · · Score: 1

      I met a kid in his first year (ok, 18 year old) whilst in my second year. He sat down in a supposedly advanced tutorial on robotics for my class and wrote, in less then 20 minutes, a python program that retrieved an image from a robots camera 'eye' and post processed it in the required fashion (to isolate an object in the image by light level analysis).

      The lecturer concerned was somewhat amazed, and yes, his approach was superior to that of everyone in the class, my own included.

      Turns out he'd been coding on his own for many years, and had just started the degree to get himself a qualification. The last I knew of him he was pretty much the best at everything in his year.

      Self teaching is simply unbeatable as a means to learn programming. The primary reason is that you want to do it.

    42. Re:dead no, dying? yes by ljc86 · · Score: 1

      I don't think it's the fault of Java - I think the fault lies with universities teaching a "Java" course. It seems far more appropriate to instead teach "Object Orientated Programming" in a way which is applicable to any OOP language. The important bit is *how* you use these programming paradigms - the rest is just syntax, which you can certainly find out for yourself.

      All of our courses are designed round this style of thinking - so we have "Functional Programming", "Procedural Programming" and "Object Orientated Programming". This make you a far more rounded programmer - and give you a chance to see how common algorithms and patterns are implemented in each paradigm, rather than having syntactical issues of a particular language described to you.

    43. Re:dead no, dying? yes by FishWithAHammer · · Score: 1

      Agreed entirely. I program because I want to, and I'm there to get the degree. As it stands now, if my professors would allow it, I could test out of most of my classes up through 300-level (Java I, Java II, C, and Network Programming--couldn't test out of compiler design, but that's an elective anyway). It's a 4-year push to learn what I already know.

      It's also why I constantly put in work on my own stuff as well--because I'll rot if I do just the toy problems they ask for.

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    44. Re:dead no, dying? yes by mikael · · Score: 1

      lazy academics who don't like coding, aren't any good at it themselves and would much rather be teaching their pet research area are the problem.

      They have no choice - supervisors I know, have to frequently travelling up and down by plane to London (more carbon emissions!) to apply for research funding (no funding == no research lab or job), organising research conferences in order to keep up to date with the bleeding edge (if your not organising a research conference, your not keeping up to date). Then again, half the final year students only seem to be there for the cheap beer, and couldn't be bothered attending tutorials or handing in coursework assignments - they see going to university as a 'right of passage' to 'where the money's at', not because they have any enthusiasm for the technology they are working with.

      Being given assignments that are way over the students heads, like creating advanced 3D graphics demos when they don't understand basic stuff like recursion or build systems. This regularly led to something like 25-30% of all assignment submissions being impossible to compile.

      Is that a surprise? From the original article...

      We look to games programming for our salvation, designing games programming courses and reducing a wide-ranging industrial discipline to a set of geeks programming computers to zap spacecraft and dismember aliens.

      And the knock on effect is that the first generation programmers find themselves pushed away from the work they enjoy doing simply because there is someone else willing to do the same work at a cheaper price, and so they leave to set up their own
      companies - leading to the fragmentation of the industry into lots of small companies.

      the "programming" assignments tended to become writing assignments.

      That happened 10 years ago as well - one undergraduate group project team (the only one out of eight), spent the first three months of a six month project doing the specification and consultation, figuring they could the coding in two months, and the write up in the last month. In the they end, they only submitted the specification and write-up.

      It seems that - at least in the UK where there are no equivalents to MIT or Stanford - university education is largely worthless.

      The universities had a massive expansion because of the dot com boom. Where a department used to have a single class of 30 students (Computer Science) 10 years ago, teaching the basic of ADT and OO progamming, they will now have 5 or 6 different targeted courses with 60 students each (E-Business Computing, Multimedia Internet Science, Business Information Systems, Computer Animation for the Internet). Common courses such as C++ programming will be taught in a large lecture hall with 300+ students. The only way to bring in more funds is to take on more students...

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
    45. Re:dead no, dying? yes by ggKimmieGal · · Score: 1

      I do blame Java. C is a dirty language and students aren't encouraged to do dangerous things with it. By doing dangerous things and learning from mistakes, that's the only way to learn how to program.

    46. Re:dead no, dying? yes by Chatterton · · Score: 1

      I think it say well in a study sense and grades. Because all the money you need during your studies is the one to have a roof on your head and some spaghetti in your dish every day.
      You can do a lot of things if you don't (lose/loose) your time going to party with "friends", drinking beer with "friends" and running behind girls/boys whatever is your preference. All this time can be used to learn, learn what the teacher try to make you learn, learn much than the expectation of your teacher, learn new things that your teacher have no time to teach you or not the knowledge to do it. And all this time is a lot of time !
      The only energy needed to make it is the energy to say NO to the people who try to divert you from studying and learning.

    47. Re:dead no, dying? yes by shess · · Score: 1

      I've encountered CS students recently who in their third year are unable to do such basic things as understand memory allocation.

      Right on. But I wouldn't qualify it with "recently". When I was in school, we didn't have this new-fangled Internet stuff - when I was in high school, getting access to a computer _period_ was rough. Which is why my early CS memories are about doing things like writing a Forth kernel in 6502 assembly and simulating execution longhand (ie, on sheets of paper), and spending a long afternoon working around trig tables to implement a 3D rotation library using entirely fixed-point arithmetic.

      There is really nothing more frustrating than doing an interview of someone with a masters degree or years of experience, and realize that they don't understand hashtables. I mean, _hashtables_, man! Sigh. Then again, I thought data structures and algorithms was super fun in school, there were these different ways to accomplish things, and knowing the characteristics of each made your programs smaller and faster. I'm just glad that knowing this stuff has turned out to be so rewarding in the real world.

      -scott

    48. Re:dead no, dying? yes by RyoShin · · Score: 1

      At Kettering U, my college, we do kind of the reverse.

      All CSes start off with a basic programming course; it's currently in Java, but I heard it was going to change to C++.

      Within the next two terms or so, you take a class on Discrete Mathematics and another programming class that builds off the first one.

      As time goes by, students are taken into system programming, operating system programming, and program engineering (which focuses on the process of creating a program as a team and with a client, instead of any actual language). A Programming Theory class takes you all the way back to Turing machines and discusses things like P and NP problems. There's also a required class on compiler design (which I haven't taken yet), and optional classes for CS electives like cryptography, graphic design, and web design.

      On the EE/CE side of the CS curriculum, we deal with MIPS and (IIRC) Assembly code. We start off learning to program completely in hexadecimal, moving on to a low-level language later on. We learn about microprocessors, gates, flip-flops, basic processors, and so forth. Most take these classes at the end of the Sophomore year or beginning of the Junior year.

      So, while we don't start with lower-level languages, we do spend a lot of time with them. I'm sure there's a reason for this, but I can't think of one off the top of my head. It works, though; as a senior, I don't know any CS students at the junior level or higher that don't understand the material they're taught (many of them outpace myself, but I'm a slacker).

    49. Re:dead no, dying? yes by Procyon101 · · Score: 1

      In my opinion, learn Haskell, and use if for your own projects. By learning Haskell you will be covering 90% of the stuff that they may neglect to teach you at school. Ideally you should learn Haskell, Scheme, Prolog, Erlang, Java | Smalltalk, and C, but if you can learn only one, learn Haskell.

      Java isn't a bad toy teaching language ;) It does do a decent job of showing you how to utilize OO, which is an important paradigm to know how to use these days. It doesn't go much further though.
      C is an obscure little language that compilers output to as bytecode before it goes to the final architecture dependant compilation stage. It's important to know how your high level constructs get implemented on the von-neuman architecture, so I recommend you do a little C too, as Java covers this up a little too much.
      Scheme will teach you mutable code structure (and is just too fun to pass up), Prolog teaches some nasty cool logics, Erlang teaches concurrency. Haskell will teach you how to think like a programmer should.

    50. Re:dead no, dying? yes by nine-times · · Score: 1

      Now it is true that re-inventing the wheel is a bad move at times. However whilst studying for their qualification, they should learn how to build the wheel in the first place.

      You're right. In fact, I would say that "you shouldn't re-invent the wheel," just doesn't apply in education. Education is all about re-inventing wheels. Teachers don't tell young students, "The multiplication table has already been figured out, so no use learning that!" or "Other people have learned to write; no use teaching you how to spell!"

      Just because something is known doesn't mean it shouldn't be learned.

    51. Re:dead no, dying? yes by FishWithAHammer · · Score: 1

      As a student, I can agree with all of this. Understanding algorithms and data structures is vital--implementation of each of them less so.

      I personally don't like algorithms, and mine tend to be meataxed on a first run through a design--chopped at until they do what I want, and efficiency can wait. I make no bones about it: I can program well and fast, but efficiency, to me, comes after I've got it working (and I can usually do a decent job of it, truth be told; I just don't like it). Algorithms classes seem to me to be more or less common sense. Once I see quicksort, I know what it does and where to use it. If I want an implementation, I can go look at Wikipedia.

      Data structures are the same. I doubt I could efficiently program a hashtable from scratch, but I know what they are, how to use them, and the languages I use for projects where hashtables become necessary all have them--Hashtables and generic Dictionaries for C#, std::maps in C++, etcetera. About the only ones I could do from memory are b-trees and linked lists--but isn't that what documentation and references are for? If you can use them, that's the key--at least, I think so.

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    52. Re:dead no, dying? yes by Procyon101 · · Score: 1

      I disagree completely. Hand writing simple code should not be difficult for a good engineer. You will miss semicolons on the whiteboard, no doubt, but you aren't being judged on how many stupid compiler errors the code will produce. Saying that you cannot write by hand a language you claim to produce fluently in, but rather you need a full compiler and editing environment, is like saying you can't speak anymore, but must use MS Word for all communications because of it's grammar checker and font changing ability. What goes on the whiteboard is pseudo-code, meant only for humans, that describes that 1) you have decent problem solving skills to come up with a halfway decent algorithm (primes are good because they don't need a "domain expert" hopefully, if you past grade school math and are in my office presenting yourself as an engineer) and 2) you can write something that at least approaches the structure of the language we want you to program in.

      If not realizing that you can drop out of the calculations for prime verification early (not knowing it's the square root might be acceptable), and that you can again stop early if you find a divisor, are the level of optimizations that would have you hunting down "domain experts" in your world, then you aren't what we call an engineer in my world.

      Now, granted, I have been on a couple interviews where I was judged on my ability to "correctly" write some silly algorithm, and was docked for not instantly seeing the best one right away, or for missing a semicolon here and there, but those types of interviewers completely miss the point of the exersize.

    53. Re:dead no, dying? yes by mikael · · Score: 1

      The curriculum of nearly university courses are set by what the best employers/research departments want. And for any employer, a graduate will only end up using 30% of the material covered in that curriculum. For each employer, this will be a completely different 30% of the course.

      As many comments have posted, companies developing embedded systems will want programmers who know how to code linked lists, while financial companies will want programmers who get an application up and running as quickly as possible. If it's a batch process running at night that can save the company millions from identifying bad transactions/customers, they probably don't care too much about whether it takes 10 minutes or 5 hours, it's more important to get it running as soon as possible.

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
    54. Re:dead no, dying? yes by Krater76 · · Score: 1

      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.

      That sounds fine. At my less-prestigious college (Washington State University) we started with C and an asshole of a professor. He was the best thing our CS department had as a filter. The ones who could do it or were tenacious enough to get through it learned a lot and moved on, those who didn't went into something else.

      We didn't do compilers or use non c-based languages for about a year. In hindsight, I definitely think that was a little late.

      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.

      I think this seems a little redundant. I don't like EE and I'm not interested in it. I really don't care about how a computer works internally and I shouldn't really have to if my focus is on software engineering. Circuits don't directly affect me in my career one bit and I doubt many CS people think about them.

      In no way are these classes a waste of time though. I did have a few friends who ended up moving more into Computer Engineering instead, although it moved me away.

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

      Memory allocation sure, but algorithm design? I can show complexity of algorithms in Java as well as any other language. And please don't say that CS students are getting soft because of algorithm libraries - all languages have libraries to make things easier, not just Java.

      Why do so many /.'ers hate on Java?

      --
      "Is life so dear, or peace so sweet, as to be purchased at the price of chains and slavery?" - Patrick Henry
    55. Re:dead no, dying? yes by Anonymous Coward · · Score: 0

      A micro kernel written in object Pascal? Are you crazy! Not at all. I hacked together an RTL, allocate a starting heap as a static variable in the BSS section, and my kernel gets the benefits of Object Pascal.

      Now here's a question... I have a set of core system-calls that affect the current process. I also have kernel objects, which have their own functions. One kind of kernel objects are called events - they essentially queue up curries of Call-with-current-continuation and then execute the CallCC() when the event is triggered. I've designed this kernel for extensibility in user space; user applications should be able to implement the same services the kernel does with the same interfaces, and their clients shouldn't know the difference or need to know about any underlying kernel objects. They just see an object to which they have a capability, and a set of functions (RPCs implemented with portals, see: Kea, Pebble) that serve as the object's interface.

      CallCC() itself takes an entry point for the new continuation and a set of capabilities to put in that continuation's starting C-list.

      Here's the problem: the routine to handle an event should not be a core system call. Therefore, it shouldn't depend on being called "in-context" (ie: called by the process actually handling the event). User-land processes can't reimplement or extend core system calls, since the core system calls must be trusted. So I need a secure way to pass a function pointer with context information from A to B, where whoever extends Events can do whatever with it or pass it to the kernel via the normal function.

      I've come up with two possible solutions.

      1) The kernel supports a special type of object whose entire job is to serve as the curried parameters of CallCC(). Client processes can create one of these, and then pass it anywhere secure in the knowledge that it cannot be tampered with, since kernel objects can only be accessed via capability security.
      2) Have the client process export the curried function itself as a portal, and have the server process "open" the portal (giving it an address where it can be called). Then the client trusts the server with the capabilities the event-handler continuation should receive.
      3) Somebody Else's Problem - Make it the problem of user-space processes to determine with what data to trust each other. The kernel implements a context-independent API.
      4) The Null Solution - Only implement a context-dependent API, effectively prohibiting the extension of anything that relies on that API by user-space.

      Obviously, the null solution is the most elegant to implement. Then comes #3, but that will result in security issues down the line. #1 looks decent, but it will mess up my neat little system-call interfaces with the functions for currying CallCC() and invoking the curries. I could actually replace CallCC(entry,caps) with CallCC(curry), but that results in two system calls (curry:= CurryCall(entry,caps); CallCC(curry);) for what was previously one system call (CallCC(entry,caps);). Do you see anything I'm missing?

      I don't know why I ask you this, except that you seem smart and most people on OS development boards can't actually comprehend anything like this - they're just reimplementing Linux.
    56. Re:dead no, dying? yes by SeanAhern · · Score: 1

      MIT? This is basically the same curriculum that I followed at Purdue University. Nothing holier-than-thou about it. It's just a good plan. Not the only plan, of course, but one that has demonstrable successes.

    57. Re:dead no, dying? yes by Eivind · · Score: 1
      True, stupid employers who think that programming is primarily about learning language X or Y are much too common, when in reality the language as such is a mere detail.

      Now, programming-techniques that various langauges support more or less well is an important topic to be aware of, I don't care if a programmer knows Java or C++, but I'm gonna be skeptical if all I get is a blank stare when I ask about Object-Oriented programming. Learning some language with strong support for OO is probably worth it, as is learning atleast the basics of functional programming.

      Knowing the basic, standard algorithms isn't really the important part. The important part is how to think about solving a problem in a fundamental way. Sorting, for example, isn't really terribly important as such, you're unlikely to spend much of your time as a programmer designing or implementing sorting-algorithms.

      But the *methods* used are interesting. For example:

      • Selection-sort works by converting a "harder" problem to a set of "simpler" problems. Instead of "sort this array", you get: "find the smallest value in this array" (repeatedly)
      • Merge-sort works by divide-and-conquer. Instead of sorting one 100-item array, you sort 2 50-item arrays, which you do by sorting 4 25-item arrays and so on down to the trivial case of sorting 1-item arrays. This also nicely introduces recursion, since the most readable implementation will recurce. (though it's usually not the most efficient way to do it)
      • Bubble-sort works by successive improvements. Swapping two items in an array that are "wrong" relative to oneanother is guaranteed to give you an array that is "more" sorted than it was before, if you do it sufficiently (in this case O(N^2) so not really efficient) you end up with a correctly sorted array.

      Bad programmers and non-programmers often have trouble seeing the abstraction-level. They think that today we learnt sorting a list of integers. If that was all one learnt, it'd be quite useless.

    58. Re:dead no, dying? yes by Anonymous Coward · · Score: 0

      I'm just happy to see that I received the same level of education as MIT's first four EE/CS classes in my first semester at a public university in the midwest. What a bargain!

    59. Re:dead no, dying? yes by Anonymous Coward · · Score: 0

      High and Mighty MIT, my lowly college sends me to pay homage! We have never heard of teaching algorithms, or requiring CS students to learn how they work on a purely mathematically implementation. We DEFINITELY don't use anything like Quartus or Spice, I've never even heard of those silly things! And heaven forbid that if I had, I would know how to use them to do all sorts of circuit manipulation, or use them in tandem with a course that is based on buildign physical circuits.
      Here at MY college, we feed on the souls of young children, program in C#, and wait for master at Redmond to call us home to do his bidding, when we've mastered the art of dev meetings.

    60. Re:dead no, dying? yes by Anonymous+Brave+Guy · · Score: 1

      Maybe when more than half your undergrads can explain the difference between a spinlock and a semaphore we'll listen.

      I did study some formal CS at university, but never heard the term "spinlock" before. I did, however, implement the ideas in the Wikipedia article cited in another reply at the end of last week, simply by looking at the available tools and guarantees provided by the programming environment I was using, and concluding that what you call a spinlock was the simplest and most efficient way to achieve the behaviour I needed.

      I think this is the difference between the approach you seem to value and that valued by places like MIT: you do stuff by rote because a book told you to, while people who have learned to think analytically will simply create it if they need it.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    61. Re:dead no, dying? yes by Anonymous+Brave+Guy · · Score: 1

      For the record, I had a quite different experience at the University of Cambridge Computer Lab. I was there nearly a decade ago, but things don't seem to have changed too much. They do use Java for the basic intro to programming courses there, and to be honest the guy who taught them was pretty rubbish and most of us ignored them. However, there were also courses on functional programming, Prolog/AI, and so on, which introduced me to some concepts I hadn't previously encountered despite being an enthusiastic geek at heart. So not all UK universities have fallen into the cheap/vocational trap.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    62. Re:dead no, dying? yes by Anonymous+Brave+Guy · · Score: 1

      Well, I just looked up the Surrey Computing BSc brochure (warning: PDF) and to be brutally honest, I'm not that impressed.

      Perhaps their presentation in the brochure is bad or their courses are unfortunately named, but when two of the five "core" modules in the first year are given as "web publishing" and "professional studies", while the first course in data structures and algorithms features in the second year alongside "usability engineering", alarm bells are ringing pretty loudly.

      Where are the courses on different programming styles and languages? Operating systems? Applications like databases, graphics and image processing, natural language processing? Numerical analysis? Programming language design and compiler construction? There do seem to be some interesting courses among the optional modules, particularly by the final year, so perhaps these things really are covered and the advertising is poor.

      I suggest you seek a more detailed syllabus, and compare it with alternatives offered at other universities, before committing to this course. Looking at a few other places (I tried Cambridge, Warwick, Brunel, Imperial) there is considerable variation in what's offered, and at first glance, I'd suggest the Imperial or Cambridge syllabuses as guidelines for the sort of things to look for.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    63. Re:dead no, dying? yes by Anonymous+Brave+Guy · · Score: 1

      Why do so many /.'ers hate on Java?

      I'm not sure "hate" is quite fair, at least in the majority of cases. Java is often criticised by those with broad experience because it is underpowered and overhyped relative to potential alternatives. The industrial result of this is that the knowledgeable critics are often the ones who clear up the mess when enthusiastic (indeed, sometimes evangelical) but naive Java developers come in and produce overengineered, inefficient rubbish that isn't fit to send to a customer and costs a fortune to maintain.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    64. Re:dead no, dying? yes by Tragek · · Score: 1

      Yikes. You're making me feel horribly guilty, sitting here browsing slashdot while my assignment sits beside me, unfinished.

    65. Re:dead no, dying? yes by Geoffreyerffoeg · · Score: 1

      This is a reply to all those "you and your fancy MIT" comments.

      It doesn't matter whether it's MIT or not. It's only that MIT by being MIT has managed by and large to get their curriculum right, so it's a convenient...reference implementation for CS education, if you will. If you can get the same type of curriculum at a less "prestigious" university, and can come out with the same knowledge, more power to you. The end goal is the knowledge, not the stamp from a fancy university.

      Now if your college wants to teach all their classes in C or Java, except for a couple of advanced study classes that happen after you've already been indoctrinated as a coder, then you should consider learning a thing or two from MIT.

    66. Re:dead no, dying? yes by Geoffreyerffoeg · · Score: 1

      I think this seems a little redundant. I don't like EE and I'm not interested in it. I really don't care about how a computer works internally and I shouldn't really have to if my focus is on software engineering. Circuits don't directly affect me in my career one bit and I doubt many CS people think about them.

      I didn't think I'd be interested in EE either, and I certainly will be going to advanced studies in CS, not EE, but you'd be surprised how quickly it does turn into essentially math and algorithmic design. Optimizing the Boolean logic for a processor and its ALU is much more math and CS than it is EE.

      And please don't say that CS students are getting soft because of algorithm libraries - all languages have libraries to make things easier, not just Java.

      They're only getting soft if they're taught "call library->standardfunction() and it'll do the magic for you". Once you can write the library if you wanted to, go ahead and use it.

    67. Re:dead no, dying? yes by Geoffreyerffoeg · · Score: 1

      Our undergrads don't need to know what the difference between a spinlock and a semaphore is. Heck, our undergrads aren't even taught the differnece between C++ and C. Language-teaching comes up almost never. Our undergrads are computer scientists, not coders.

      When they get a job that requires them to use one of the two, they'll be able to pick up the difference and choose the right tool, with far more accuracy and foresight than someone who merely learned it as a tool in class.

      This is like complaining that half of MIT's linguistics grads can't explain the diference between Malayalam and Tamil. So what? I'd rather a linguist who can analyze for me the difference between any two closely related languages, as well as make sense of the extant literature, than a linguist who spent years studying the South Indian languages just because.

    68. Re:dead no, dying? yes by Geoffreyerffoeg · · Score: 1

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

      That's like saying "Blame the paint you can buy at Home Depot if you're trying to teach a person to paint a painting"

      You can teach algorithm design with Java, what prevents you from doing so?


      Exactly like you said. To teach someone painting, you teach them theory, not how to deal with the guy who sells you paint buckets and rollers. Once you know the theory you can start worrying about the tools.

      So yes, you can use Java, and many colleges seem to do just fine with it, and many CS students start out with Java or a similar language - but it's much easier to teach with Scheme, which has far, far less syntax.

      but you can make an emulator of your processor in Java

      The professor for 6.004 has done exactly this; it's called JSim. We don't worry about how it's implemented, though, since the focus in that class is the processor itself. We do get to compilers/emulators in other classes, and did have a taste of it already (as the metacircular evaluator) in 6.001. So I'm not sure what your point is.

    69. Re:dead no, dying? yes by rucs_hack · · Score: 1

      best you crack on with it then.....

    70. Re:dead no, dying? yes by Rick+BigNail · · Score: 1

      I just don't think you can prove MIT curriculum is the best :)

      It's a bit tiresome. There are plenty of awesome schools that don't use the scheme curriculum -- some uses ML, some uses smalltalk, while other uses more traditional programming language like C or Modula-2/3. Scheme is not special.

      Yes, I like to trash "Java schools" too but that's (mostly :) for jokes only. One good thing about Java is that it can teach students concurrent programming.

      And there is nothing wrong with C! Well, one should rather use Pike :)

    71. Re:dead no, dying? yes by Jellybob · · Score: 1

      Thanks, that's exactly the sort of information I was looking for, I'll try to get hold of some syllabuses.

    72. Re:dead no, dying? yes by jrjarrett · · Score: 1

      If that's how you structured it, then it's a very different story, and I would agree with your recommendation to not hire this person.

  11. Pertinent part of the article by mccalli · · Score: 5, Insightful

    From the article:Here at De Montfort I run an ICT degree, which does not assume that programming is an essential skill. The degree focuses on delivering IT services in organisations, on taking a holistic view of computing in organisations, and on holistic thinking.

    ie. not Computer Science. For those not familiar with the UK education set up I should also explain that De Montfort University is the old Leicester Polytechnic. The Polys were set up to provide much more practical education than the theoretical stances of the Universities, and a damned good job many did of it too - I'm certainly not playing the one-upmanship card that some do about the old polys, Leicester Poly was a good place and its successor De Montford has reached even further.

    But the point stands - this point of view is coming from an academic teaching at a more practically-oriented institution and already running a non-science based course. His viewpoint should be considered against that background.

    Cheers,
    Ian

    1. Re:Pertinent part of the article by julesh · · Score: 1

      From the article:Here at De Montfort I run an ICT degree, which does not assume that programming is an essential skill. The degree focuses on delivering IT services in organisations, on taking a holistic view of computing in organisations, and on holistic thinking.

      ie. not Computer Science. For those not familiar with the UK education set up I should also explain that De Montfort University is the old Leicester Polytechnic. The Polys were set up to provide much more practical education than the theoretical stances of the Universities, and a damned good job many did of it too - I'm certainly not playing the one-upmanship card that some do about the old polys, Leicester Poly was a good place and its successor De Montford has reached even further.

      But the point stands - this point of view is coming from an academic teaching at a more practically-oriented institution and already running a non-science based course. His viewpoint should be considered against that background.


      Exactly. And I don't think his experience of falling student numbers applies across-the-board. My old university is an excellent example: one of the top 10 UK universities for CS. When I graduated (more than a few years ago), the CS department had a small building: two storeys, roughly square, about 10 metres a side. A few years ago it was moved to a new building. Three storeys, about 20 metres a side. I.e., about six times as large. You can't tell me that student numbers have been declining there.

    2. Re:Pertinent part of the article by Viol8 · · Score: 1

      "ie. not Computer Science."

      Quite. Sounds to me all he does is run a bog standard computer admin course which can be found in their multitudes in any 2 bit college prospectus. As a lecturer he should know better than to make generalisations about one aspect of a subject based on another.

      "'m certainly not playing the one-upmanship card "

      You should. Leicester Poly was the place you went in the east midlands if you couldn't get into Loughborough or Nottingham unis. Its always been 2nd division and nothing has changed.

    3. Re:Pertinent part of the article by hauntingthunder · · Score: 1

      DE Monfort props up the Bottom of the table with Luton.

      --
      You will never get to heaven with an Ak 47... But A Zu 30 is good for Low Flying Cherubim
  12. Programmers never code from scratch. by alenm · · Score: 1

    Programmers just assemble finished bits of code into something new as always. That is what programming is about. This is always true, but the question is which level of abstraction you use. But as time progresses things get more abstracted. For instance nobody codes their own c/c++ program that listen to http requests, but in the beginning you had to. Same for file upload and lot of stuff that is shrink wrapped. So a lot of work is finished, but the assembly takes time too. Wait a sec. That is what takes most of the time. So my answer back is : will computer science academics get stupider and stupider every year because they ask the same question each year? And the answer to the question is still the same.

    1. Re:Programmers never code from scratch. by VirusEqualsVeryYes · · Score: 2, Interesting

      The parent makes the same mistake that the article and the summary make: computer science != programming. TFA talks on and on about "longing" for old programming languages, about new programming tools, about the ability of 8-year-olds to program (?), about almost anything programming-related. The only non-programming thing TFA cites is the falling numbers of computer science majors, which, in my opinion, does not indicate the death of anything, but rather reflects the amount of respect that IT jobs get in the private sector--that is, next to none.

      But there's so much more to computer science than programming and general software. There's robotics, artificial intelligence, distributed computing, networking, graphics, architecture, and theory, not to mention the overlaps with other fields, such as with electrical engineering (architecture), mechanical engineering (robotics, integration), mathematics (especially statistics), sociology (mass models), and just about any other science or even non-scientific field that could use modeling--multifield modeling requires skills that techie teens do not have. Don't forget that there are uncountable subfields within each field, and I most likely missed one or more fields as it is.

      Artifical intelligence and robotics are especially potent because they are both in their infancy and merely budding as fields of study. Their potential is huge. And TFA has the balls to claim that CS is dying? Quite the contrary.

    2. Re:Programmers never code from scratch. by Anonymous Coward · · Score: 0

      nobody codes their own c/c++ program that listen to http requests

      So I need to learn a different language for listening to http requests and wrap it into my C code?

      CS students learn so many alternative languages because they help them to avoid WORK.

      If the project fails because of too many alternatives they cover its remains in buzzwords and spreadsheets and move on to the next disaster.

      Thank god I quit CS and turned my job into a hobby again where I can earn Adsense money for stuff I like.

    3. Re:Programmers never code from scratch. by Viol8 · · Score: 1

      "This is always true, "

      No it isn't. Someone has to write the from-scratch stuff , it doesn't write itself. Just because you never never go lower than legolibfordummies.dll doesn't mean others don't.

      "For instance nobody codes their own c/c++ program that listen to http requests"

      Says who? I've seen it in a firm I worked for where they wanted web functionality attached to a process in a large system and it was simpler to add in web functionality that fart about setting up an entire web server and the IPC links to it. Besides , any competant C/C++ coder should be able to write an HTTP parser from scratch in 2 or 3 days.

    4. Re:Programmers never code from scratch. by alenm · · Score: 1

      What you call from scratch relies on libraries that are coded by someone else. So you just assemble code others have made. If you make a custom http parser you rely on io,string and other libraries people have made for you. Well if you code drivers, you almost code from scratch.

  13. Breaking News: Math dead, too! by Anonymous Coward · · Score: 0

    With cheap pocket calculators in every business, managers no longer see the need for math education. All good stuff has been discovered. Math departments are reported to begin converting their useless graduates into advertising professionals.

    1. Re:Breaking News: Math dead, too! by ajs318 · · Score: 1

      Shame you were an AC, because this is actually quite an insightful post. Many people today are leaving secondary school barely-numerate, thanks to the proliferation of idiot-calculators. When I took my maths O-level, calculators were not allowed; we were, however, given log tables, and simplifying was the last thing you did.

      Nowadays I see people using an idiot-calculator to add up £1.95 and £1.80, and I want to scream. "No! You do not need a f***ing calculator! £1.95 is 5p less than £2. So take the 5p off the £1.80 and add it to £2. It's £3.75, you f***ing moron, although I think you should give them to me for nothing just because you can't add up -- and if you kept having to do that, maybe you'd learn to add the f**k up!"

      If I was Minister for Mathematics, idiot-calculators would be banned altogether; all calculators would be scientific. No computers or calculators would be allowed anywhere in schools. Innumeracy would be a criminal offence, with offenders imprisoned for as long as it takes for them to pass their O-level maths (not that pussy GCSE with a pass mark of 18% where you can write "2+2=5" and still get marks for being close). There would be random multiplication-table tests; and the lowest scorers would be marched around the town in clown costumes, led by a "headmaster" with a mortar-board and cane proclaiming "THESE PEOPLE CAN'T DO MATHS!" through a loud-hailer.

      --
      Je fume. Tu fumes. Nous fûmes!
  14. Computer Science isn't dead.... by Naughty+Bob · · Score: 1

    ....It just smells funny.

    --
    "Be light, stinging, insolent and melancholy"
  15. this thread is now closed by acidrain · · Score: 1

    Has the software development industry stabilized to an off-the-self commodity?

    The US department of labour predicts the industry will "grow more slowly than average." That is hardly dead.

    It is 2007 and we are still writing code using text editors, not giving verbal commands to sentient machines. Nothing to see here, move along.

    --
    -- http://thegirlorthecar.com funny dating game for guys
  16. No it's not by El_Muerte_TDS · · Score: 1
    at least not until he hand me my MSc.

    Joking aside. A lot of people _tried_ computer science because:
    - of the money, this stopped after the "crach" (or the point when investors wanted to see results)
    - they thought it was easy because they messed around with computers all day

    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.

    Switching to component based development doesn't solve all your problems. You often still need to develop your own components and stuff. With computer science a solution pretty much always introduces new problems. Work is never finished, also because people are hardly ever happy with the endresult.
  17. 32 cores? by slapys · · Score: 1

    The rise of personal computers with multiple processors, each containing multiple cores, will lead to a change in what computers are capable of doing in the not-too-distant future. To summon forth the power locked inside these new processors, software engineers will need to learn about multi-threaded software, and develop a deep understanding of the hardware on which this multi-threaded software runs. This will create a demand for serious, dedicated software engineers, engineers capable of the intellectually difficult task of keeping track of run-time concerns like simultaneous memory access, locked data, etc. As soon as processors with 32 cores hit the market, I am fairly confident that these "Computer Science Has No Future" articles will disappear.

    1. Re:32 cores? by aadvancedGIR · · Score: 1

      You're kidding, right? They'll just say that computers are so powerfull that they don't need coders anymore. Why, because it's been 40 years that those people say that CS or IT will be dead jobs within a couple of years because that is what the C*O want to hear and they will probably be wrong at least for the next couple of centuries.

    2. Re:32 cores? by slapys · · Score: 1

      They'll just say that computers are so powerfull that they don't need coders anymore.
      I dare any CEO to tell me that, given that the average video game budget has risen from $500 to $5,000,000 in just fifteen years.
    3. Re:32 cores? by aadvancedGIR · · Score: 1

      That's exactly the point, more capabilities (HW, language, libraries) means many more things to do, not "nothing anymore" as the morron from the article said.

  18. academics by fozzmeister · · Score: 1

    The thing about academics is they often have no real world commercial/industry experience yet feel the need to comment on it.

    What's in your car? What's in your TV? What's running your website? Those are just three things that spring to mind that are not "generally off the shelf" yes of the shelf components maybe, but someone still has to integrate it all together. It's just madness to say that as computers become more prolific we need less computer scientists.

  19. It's alive and well - in India by Anonymous Coward · · Score: 0

    Being on top of the game in computer science requires considerably more effort than being an accountant, solicitor or barrister (lawyers in the American language). If the opportunity for competitive renumeration isn't there then neither are qualified practitioners. When we outsource accountancy and legal services, enrollment on computer science courses will swell.

  20. Not dead by Zo0ok · · Score: 2, Insightful

    Compare computer science to other science - like architecture. Computer Science is still very immature with very few true best practices and standards. It will not die anytime soon.

    Remember the 4th-Generation-Languages that were supposed to make programming unnecessary? Where are they today?

    Ask innoviative organisations like BitTorrent, Apple, Google or Blizzard if they see Computers Science be obsolete any time soon. I dont think so.

    1. Re:Not dead by MichaelSmith · · Score: 2, Interesting

      Compare computer science to other science - like architecture. Computer Science is still very immature with very few true best practices and standards. It will not die anytime soon.

      Maybe this is slightly off topic, but my wife is an architect, and any time I want to stir up one of her co-workers I tell him tales of version control, automated builds, automated unit testing and bug databases linked to revisions.

      None of this exists outside of the software business in anything like the same form. When it comes to producing information in a controlled fashion software is streets ahead of any other field.

    2. Re:Not dead by Anonymous Coward · · Score: 0

      Ah, I take it you havnt heared of the fabulous 4th gen language called 'india' and the compiler technology 'bangalore'. /ducks volly of sharp objects

    3. Re:Not dead by TobascoKid · · Score: 1

      Computer Science is still very immature with very few true best practices and standards.

      I have to take issue with this. IT (which includes, but is not limited to only CS) has at least as many (if not more) "best practices" and standards as any other industry/profession. IT Best Practices is almost an industry itself. And I think our best practices and standards are more likely to be automated, of better quality and better adhered to.

      --
      At some point, somewhere, the entire internet will be found to be illegal.
    4. Re:Not dead by Zo0ok · · Score: 1

      I dont find your comment off-topic or very wrong. But I will explain myself a bit more. If you are about to build a house (private home) there are laws, rules and standards about:
        - height of steps in stairs
        - standard height of roof
        - depth and width of kitchen furniture/equipment
        - pipes in the walls where to put electric cables
        - who is allowed to install electical equipment
        - insulation, windows and radiators (if in a cold country)
        - symbols for drawings
        - what drawings are to be made (for different craftsmen)
        - estimation of cost

      If you are about to build a new computer system (lets for example say a commersial GUI application), you need to make decisions about:
        - Development model (upfront / Extreme / ad-hoc)
        - What platforms to support
        - What development platform to use
        - How do we test
        - How do we design and document
        - How much will it cost

      There are no easy answers to these questions. Not until you answered these questions you can start using existing standards and best practices - and then you find that there are many to choose.

      Lets take the design/drawings as an example. A "construction architect" is (I guess) very clear about what drawing are expected of him. The carpenter needs one. The electrician needs another one. The water/ventilation-guy needs another one. All symbols are standardised, and if different in different countries you can easily translate. So, when the architect is done the craftmen get what they need to do their job.

      On the other hand, a "software architect", has basically no standardised method of delivering a design to the programmers. You can quite easily imagine two proficient and successful software architects who produce complely different sets of specifications for the same piece of software.

      You say that there are version control, automated builds, automated unit testing and bug databases. But none of these are really standardised. They are all internal/local/private complex solutions for the problem that "there are no standardised ways to do things".

      Software is very complex - arguably more complex than construction and manufacturing.
      But software is not "close to consensus", "almost done" or "mature" as are construction and manufacturing.

      That is why I believe that CS will be around for very long...

    5. Re:Not dead by Zo0ok · · Score: 1

      I appreciate your comment. I have replied to the guy who made the first comment on my original post. My answer to your post would be quite the same so I will not post the same thing twice.

  21. Quote: by Anonymous Coward · · Score: 1, Interesting

    The only way to understand the wheel is to re-invent it.

  22. CS: Dead As It Ever Was... by cmholm · · Score: 2, Interesting

    Comp Sci has always been dead, and always will be. In 1982, one of my early CS professors claimed that the window of oportunity for a job as a programmer or s/w engineer was going to close soon as automatic code generators took over the task of raw code banging. Employers would just need a few engineers for design, and that would be it.

    But, I shouldn't be surprised that yet another generation of technology dilettantes think that they're reached the pinnicle of achievement in a line of endeavor, and from here on out it's just like corn futures (Somebody oughta tell Monsanto to stop wasting time with GMO research). But seriously, when we've got bean counters like Carly Finarino and whichever IBM VP it was claiming that the years of technical advance in IT are over, not to mention the author of the fine article, Mr. McBride, I see people who are in the wrong industry. Perhaps they should be selling dish washers, or teaching MCSE cram schools.

    McBride is whining because the students aren't packing his CS classes like they used to. His reasons whittle down to these: mature software packages exist to service a number of needs (which has always been true, to the contemporary observer), and it's too easy to outsource the whole thing to India. It is the writing of someone throwing in the towel. It's like the trash talk you hear from people who are about to leave your shop for another job. I won't be surprised to find him in fact "teaching" MCSE "classes" very soon. Good. His office should be occupied by someone who still has a fire in their belly.

    --
    Luke, help me take this mask off ... Just for once, let me butterfly kiss you with my own eyes.
    1. Re:CS: Dead As It Ever Was... by MichaelSmith · · Score: 2, Insightful

      one of my early CS professors claimed that the window of oportunity for a job as a programmer or s/w engineer was going to close soon as automatic code generators took over the task of raw code banging.

      I read once that assemblers and compilers were both described as enabling the "self programming computer" when they came out.

      Of course such things just increase productivity and open up new applications.

  23. And Universities Killed it by DrSkwid · · Score: 1

    My friend has a CS degree from the local university. He is fully fluent in Java and VB. He had to do C++ and Haskell for course points but knows little about either. He's *not* a computer scientist by any stretch of the imagination.

    So it's probably a good thing.

    IT is so pervasive that the CS degree should fragment to suit the new world. My friend wouldn't stand a chance in front of an xterm, he's not even interested. To him, it's not a vocation, just a job (and fair enough).

    --
    There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
    1. Re:And Universities Killed it by hasmael · · Score: 1
      I think you touch an interesting point, and one that has been bothering me for some time now: the difference between Computer Science, and things like software engineering.

      To me, CS is kind of physics (as a discipline) and SE is kind of like mechanical engineering. Evidently you do not need a physics degree in order to design a machine, but you do want one if you want to reason about how it works or to make a breakthrough in machine-making.

      If the analogy holds, it is clear that there is less (diminishing) demand for CS. Not every mechanic needs a Physics degree.

    2. Re:And Universities Killed it by whyloginwhysubscribe · · Score: 1

      Yes, Software Engineering is an art rather than a science - but there is a considerable amount of overlap at times...

  24. But look where it comes from... by prefect42 · · Score: 4, Insightful

    "Neil McBride is a principal lecturer in the School of Computing, De Montfort University."

    De Montfort, one of the new universities that traditionally advertises on the TV and offers vocational courses in media and the like.

    Academic really doesn't mean much these days. He's not even consistent:

    "Interrupts, loops, algorithms, formal methods are not on the agenda."
    vs
    "The complexity of embedded systems, of modern computing applications requires a different way of thinking."

    I'd not like to use an embedded system he'd developed, unless by embedded he was thinking Windows Mobile + Flash.

    Sorry, a rant from someone who works at a real university, and knows he isn't an academic.

    --

    jh

    1. Re:But look where it comes from... by hauntingthunder · · Score: 1

      Testify Brother

      Shows that the BCS is a waste of space if they publish drivlle like that.

      --
      You will never get to heaven with an Ak 47... But A Zu 30 is good for Low Flying Cherubim
  25. A flaw in reasoning by guacamole · · Score: 1

    So, if computer science is dead, then who is going to develop the "accounting packages, enterprise resource packages, customer relationship management systems are the order of the day" that article's author mentions?

    Seriously though, this is weird. How come we don't see posts every other week about how common university majors such as english, political science, mathematics, or say classics are dead, presumably because they don't teach any real world job skills. If there are reasons for those majors to exist, then please explain what's wrong with CS which actually does teach along the way a lot of stuff that'd directly applicable in real job settings?

    If computer science is dead, then how come the fresh graduates from the top CS departments are being snatched away before they even graduate by a variety of companies, ranging from 10-person startups all the way up to Google, Microsoft, HP, and IBM? How many DeVry's graduates do you see working in those companies vs. people who had format CS training?

  26. The hard sciences are all dying by SmallFurryCreature · · Score: 5, Insightful

    For that matter so is education in general. I am not a computer scientist, my education is technical instead. (LTS/MTS/HTS for the dutch)

    When I attended the LTS we had real shop class, learning how to work with wood, steel, electricty with real world equipment in an area that looked much like you would expect to find in industry.

    I recently had the occasion to visit a modern school that supposedly teaches the same skills, yet what I found was an ordinary classroom with a very limited and lightweight set of equipment. The kind of stuff you would find at home, NOT at work.

    Yet somehow todays kids are supposed to learn the same skills.

    And as if that ain't enough the number of hours of shop class have been reduced while the number of theory hours has been increased. Worse, the amount of technical theory has decreased as well and instead the amount of soft theory like history and such has taken over.

    This has TWO negative impacts. First young kids coming to work can't hold basic equipment and don't understand the theory behind it and even worse the kinds of kids (like me) that used to select a techincal education because they don't like theory have that choice removed. I myself was far too restless to do a theorectical class, 18 hours of shop class per week however made the remainign theory that much easier to handle and because theory and practice were linked it all made sense.

    Even worse, the modern education is supposed to make kids fit better into society, so how come they are bigger misfits then any generation before them?

    No this is not old people talk. Notice even here on slashdot how the art of discussion is dying out, say anything remotely controversial and be labelled a flamebaiter or a troll by some kid who can't handle the heat. I actually had a 20 year old burst in tears about two years ago because I chewed him out for drilling through the work bench. Modern education is so much about empowerment that kids who think they are the top of the top can't handle suddenly being the lowest of the low when they enter a working life. This is already a shock simply because you just went from being the youngest in school to the oldest in school and now suddenly you are the youngest again.

    Simply put, I think education in general is less and less about turning out skilled proffesionals and more and more about just keeping kids of the job market. Comp Sci ain't the only victim. Just try to get a good welder nowadays. Hell I settle for anyone who can knows the difference between a steel drill bit and a stone one. (And no, that doesn't mean one is made out of stone, rather what it is for drilling into).

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

    1. Re:The hard sciences are all dying by Anonymous Coward · · Score: 0

      1930 called and wants the oxyacetylene torch back

    2. Re:The hard sciences are all dying by raduf · · Score: 1


      Good points. About the shop classes, I can theorise their purpose is less to teach you how to do these things, but to understand them so you're able to supervise/teach the people who would do that. So their numbers decreasing could mean the teaching or the management of those tasks is a mature science. At least that's what I'd like to say, but I have too many doubts.

      As for the younger generation taking over the net, like slashdot, that's painfully obvious. I'm constantly seeking better forums, but with little success. Have any sugestions?

    3. Re:The hard sciences are all dying by Sumadartson · · Score: 1

      O man, do I feel your pain. I teach at a (dutch) technical university, and you're completely right. Although in this case, it's not people who don't know how to use a drill, but people who seem to be utterly unable to a) rtfm, b) find F1 and c) think for themselves and test their own ideas. Not only that, but they also lack basic math skills.

      In addition to that, I have the exact same problem with overconfident students. When you tell them their work is bad, they start protesting about the supervisor, not improving their work.

    4. Re:The hard sciences are all dying by kripkenstein · · Score: 1

      I also think that the hard sciences are dying, but for completely different reasons. Note that by 'hard sciences' I really mean the harder ones, Physics and CS, and Math.

      Basically, these are dying out because they have (1) run into a wall, and (2) encountered tough 'competition'.

      Regarding the wall: look at those fields in the first half of the 20th century, and the second half. There is really no comparison, the first half was revolutionary, the 2nd far, far less. Einstein's amazing insights led to the atomic bomb, a fitting end for the first half of the century: a theoretical masterpiece that led to incredible practical applications. Likewise mathematics had some amazing stuff (Godel, for example). But more recently, far less. There is a basic inability of the hard sciences to deal with problems of interest today, it seems. This leads to hybrid approaches, such as Neural Computation (neural networks and such). Analytic investigation may just have a limit, and we may have already reached it; all the low-hanging fruit has been plucked.

      On the other hand, the competition for bright young minds is harder now. In particular, medicine and biology are making amazing discoveries, that impact people's lives - finding the cause of ulcers and their cure, a vaccine for HPV, brain implants to give some simple visual capabilities to the blind, just to give a few examples. And the amount of money flowing into these fields is incredible. Donors just seem to care less about some equation in physics that interests only 100 people worldwide, versus healing the ill (which, in the case of many old rich donors, includes themselves).

      Between these two things, the hard/theoretical sciences are dwindling somewhat. As someone who works in them, I certainly hope they won't die out, and I don't think they will. But their standing is certainly not on the rise.

    5. Re:The hard sciences are all dying by jesterman · · Score: 1

      Seriously, I wonder who will teach my kids (when, eventually, I do some damage to a gal...), watching the students of today.

      I'm a undergrad student here in Brazil, and overall it seems no different from anywhere else. In my faculty, I used to have pride of my course: it required (at the time) 3 monography works to get a degree when other colleges demanded only one monography for the final project. After some time, people who got in the fourth semester would transfer to another college (usually, one wich have really low requirements to get the degree), because they simply freaked out on the *first* monography.

      A few years back, 2 of the monographies became 2 "technical reports": very simple works with a professor wich more resambles a nany. And last year, the board tried to remove the 2 reports from the curricula -- and I went berserk.

      I've been a student there for 7 years now (Yeah, I have a list of jokes about that) and watched a lot of curricula changes. Seven years ago, one had to make *real* efforts to get approved.

      I wonder what is the driving force behind the changes. I mean, I know they are trying to adapt the course to the market demand, but I can't help but think this smells like a dead end. Simply because, after so many changes, I know very few final students that are actually prepared to work for companies. In fact, they leave the course not with a know how, but with a collection of professor's (poor) views and ideas. No thinking on their own and no clue whatsoever about problem solving. I'm freaking tired of this professor-student mediocrity transmission.

      Now, I don't know if this is intentional. In the first semester, if you ask the students why they are studing computers, most likely 95% will say "computer professionals have fat sallary" or "I used to play with Adobe Photoshop and I realized I like computers".

      Ignoring the second answer, I would think that the colleges et al around here are giving the student what they want: a degree (as paper-requirement) to get a job. Not what they should, wich amongs other things include "prepare the student to work in the society".

      No wonder everyone around has an undergrad degree nowadays with no much of an effort, and masters/PhDs etc are what a undergrad was 20 years ago. It's the education pretending to educate and most of the students pretending to learn something at all.

      And that scares the hell out of me.

    6. Re:The hard sciences are all dying by lysse · · Score: 2, Insightful

      "I actually had a 20 year old burst into tears about two years ago because I chewed him out for drilling through the work bench."

      You might just have stumbled across a sensitive 20 year old. I'm 32 and I'd still burst into tears today if someone yelled at me - even if I thought they had a point, the shame, frustration, and the knowledge that you've fucked up can be overwhelming. (Of course, humiliation isn't acceptable workplace behaviour under any circumstances, so I'm assuming such a chewing out would happen in private.)

      The rest of your statement may or may not be justified (although the same thing happens to debate quality anywhere the number of participants is constantly growing - it's happened on reddit and USEnet, and every web forum I've ever seen - and I don't think it's unique to the age). But either that little anecdote doesn't support "entitlement culture" the way you think it does, or there's a fair bit more to the story you're leaving out. (Or you're just a bully. I hope it's not that.)

    7. Re:The hard sciences are all dying by Bloke+down+the+pub · · Score: 1

      I can only speak for the UK, but the number of young people attending higher education is on the up and up. I believe the target is to have 50% of 18 year olds starting. While that's all very nice, what that means is even in a perfectly meritocratic case, a lot of the students attending are of little better than average ability.

      In consequence many aren't capable of a rigorous academic study; so the only option is to make the courses easier - or make easier courses. I know it's a joke about doing a BAs in playing golf and basketweaving, but there's some truth behind it.

      A lot of the people in university these days would have been better off doing a vocational course like an OND/HND (I think that's approximately trade school/associate degree level in the US). There's no shame in being a plumber, or rather theres shouldn't be - and frankly we need more of them than we do diversity compliance poetry analysts.

      --
      It's true I tell you, feller at work's next door neighbour read it in the paper.
    8. Re:The hard sciences are all dying by Pope · · Score: 1

      Even worse, the modern education is supposed to make kids fit better into society, so how come they are bigger misfits then any generation before them?

      Lazy, undisciplined parents lead to lazy, undisciplined kids. This is the Boomers' legacy.
      --
      It doesn't mean much now, it's built for the future.
    9. Re:The hard sciences are all dying by bryan1945 · · Score: 1

      "Hell I settle for anyone who can knows the difference between a steel drill bit and a stone one. (And no, that doesn't mean one is made out of stone, rather what it is for drilling into)."

      From what you described, my first thought was that the kids were trying to use bits that were made of stone. And I wasn't really even shocked. Here (USA), I witnessed some college kids try to jump their car batteries with lamp wire (zip wire). What a shocker when the damn thing melted! When I was in high school I had to take metal shop, plastics shop, electronics (still have that strobe light I made). Well, I could have taken home-ec (cooking, sewing, etc). I've heard that my old school now has all kinds of BS classes you can take like "Holistic Meditations on Donkey Healing" or something equally stupid.

      Education is really getting pretty sad, on all levels, really.

      --
      Vote monkeys into Congress. They are cheaper and more trustworthy.
    10. Re:The hard sciences are all dying by Anonymous Coward · · Score: 0

      Take off your skirt, cancel your manicure, grow a moustache and HARDEN THE FUCK UP!

  27. Who builds the solutions? by JPriest · · Score: 1

    OK, so there is enough software on the market that companies are forced to write less stuff in-house. Sooo, who is writing and supporting that software?

    --
    Saying Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
  28. Is De Monfort dead? by palfrey · · Score: 1

    Computer Science ain't dead yet (although it may smell that way at times), you just need to have a degree program that's worthwhile. Crappy places churning out more idiots hoping to make a fast quid tend to die off at these times, but the better ones survive.

    --
    Beware the psychokinetic mimes!
    1. Re:Is De Monfort dead? by bbtom · · Score: 1

      Mod parent up. I spent just under a year in the art school at DMU. What a tremendous waste of time. The technical skills I could have taught myself for a lot less than it cost to there. I have a lot of respect for the old concept of polytechnics and vocational education. But these places try too hard to go in to pure science and humanities, and the institutions that come out of the process are a joke. Similarly, the government are trying to implement "professional studies" modules in to more and more of the curricula. Fortunately, we haven't yet had "professional studies" in the philosophy departments, but I can't see it being too far off. British universities get more and more ridiculous by the day.

      --
      catch (HumourFailureException e) { e.user.send("You, sir, are a humourless idiot."); }
    2. Re:Is De Monfort dead? by Corporate+Troll · · Score: 1

      although it may smell that way at times

      Nah, that's just the smelly coder in the corner ;-)

  29. Not everything is covered by OffTheShelf software by Lonewolf666 · · Score: 1

    There are a lot of niche applications or in-house development jobs that are not covered by standard applications. Things like writing control software for machines that are typically done by a small team of developers at the hardware manufacturer.

    If jobs for creating office suites disappear, that will only affect a small part of the field.

    --
    C - the footgun of programming languages
  30. College Enrollments != Future Business Needs by slarrg · · Score: 2, Insightful

    Many of the students who would look for a degree to get rich were enrolling in CS. Now that the news is filled with stories of out-sourcing to India and the collapse of programming as a way to earn infinite wealth these students are no longer interested in CS and are pursuing careers as doctors and lawyers instead. Good riddance, I say, anyone who is only into programming for the money is probably not overly good at it.

    Programmers will always be needed. As tools become more capable and advanced, the only thing that changes is the methodology of programming. Programmers are required because of their ability to think discretely. Any tool is only as good as the organizational ability of the person who uses it. I've met precious few non-programmers (and scientists in general) who are able to think in discrete enough terms to actually create a functional system.

    Here is an example I often use, involving how organizational systems often spring to life. Imagine a sorting facility that tells it's people to sort all the items into three different areas: one area should have all of the blue items, another will have the metal items while the final area will have tall items. The items are being sorted on three non-exclusive properties and there will undoubtedly be an issue when the tall, blue metal item is encountered. Most business managers will claim, "we'll deal with that issue when it arises." But computers don't deal with exceptions gracefully and no company has the resources to deal with the constant onslaught of exceptions produced by a poor data/process organization. This is the function that programmers provide. We always are concerned about the exceptions. The stuff that actually goes according to plan is almost an afterthought.

    Anyone who has walked into a company that has it's entire order fulfillment system running on a Microsoft Access database that was kludged together by the dozen office workers cum computer programmer that make up their IT staff will immediately understand why programmers will always be needed. Garbage in = garbage out.

  31. Software does not design itself (yet). by Der+Reiseweltmeister · · Score: 1

    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.

    And who is going to make this software? Or are we going to use this same suite of software packages for the rest of the lifetime of the computer? There will always be a need for new developments in algorithm design, and for the foreseeable future someone will fulfill that need.

  32. CS is a research/academic discipline by HuguesT · · Score: 3, Insightful

    The person who wrote this article doesn't even know what CS is. CS is computer science. It will be dead when science is dead.

    CS won't be dead until all the interesting questions in the theory of computing are solved : is P != NP? What can a quantum computer achieve? what are the theoretical limits to computation in the physical world, beyond Turing machines? Given the truly enormous current production in all the branches of IT from HCI to pure mathematics via signal and image processing, I would not be worried at all.

    Just to rehash, CS is not about designing the best accounting package. This is ICT, not CS. CS is a means to an end.

    As to ICT, I don't think the final word has been said either. Just look at the sad state of Vista, or for that matter, at just about any accounting package. Who can say with a straight face that's the best that can be done?

    1. Re:CS is a research/academic discipline by mgblst · · Score: 1

      What the hell is ICT? Never heard of that one before. I can't even guess. International Computing Theory? Introduction to Computer Theory. I Can't Think?

    2. Re:CS is a research/academic discipline by skirkby · · Score: 1

      Indeed.

      I think the original article misspoke. The author should have referred to Software Engineering, not Computer Science, as being commoditized.

      More and more software is being created by software, thus the masters are being replaced by their creations.

      But within the next 10 years, there will be a resurgence in the field of Software Engineering as Quantum Computers advance. And as in the previous wave, the initial Quantum Software Engineering mavericks will be the Computer Scientists who created the space to begin with. Then, as the financial opportunities offered by the field proliferate, more and more people will take it up, until it, too, becomes a commodity.

      By then, some other information or computing science breakthrough will emerge.

      In the end, enrollments are down in the CS field because opportunities for individual and even institutional innovation have waned in the presence of The Giants (Microsoft, IBM, Intel, Motorola, Apple, etc.) - if you want to do some REAL COOL work, you can't do it unilaterally by just getting a college degree. You have to rely on getting a job in a research facility at one of these companies. And thus opportunities for $$$ have waned.

      Regardless of how egalitarian some academians feel their domain is, the fact is that most people go to college to maximize their earning potential. (Whether they actually accomplish that is a different story...)

      When someone manages to productize a quantum computer, the New Gold Rush will be on, and QCS enrollments will boom...

    3. Re:CS is a research/academic discipline by Anonymous Coward · · Score: 0

      Of course it's a research/academic discipline; but don't try telling that to the business idiots that have effectively hijacked the entire field since the early 80's (when they were salivating over Lotus). As far as the money-men are concerned, computers are only to be used to simulate the traditional office (word processing, spreadsheet, presentation and communication). Anything else is unimportant. To the suits, "computer science" means "coming up with a new activity generator to install on my PC."

      Is it shocking that the computer paradigm hasn't moved beyond emulating the kind of crap you'd find in a traditional office? We've barely scratched the surface of what we COULD do. No one wants to do it, no one wants to fund it. That's why we've all collectively been stuck playing "Sim Office" since the 80's.

    4. Re:CS is a research/academic discipline by HuguesT · · Score: 1

      ICT is the new acronym : Information and Communication Technology. IT is not a TLA and therefore doesn't pass muster.

  33. Is computer science dead? by neuroinf · · Score: 1

    Even though the modern University defines its disciplines by market demand - which can be a slave to fashion. The issue is whether there are any genuine "big questions" left in Computer Science. Much of the early part of CS dealt with the scarcity of computing - how to make use of the limited resources of memory, computation. We don't need this anymore - there is an abundance of computing. I guess I've been fascinated by the dramatic gap between human capabilities of thinking, and the capabilities of computers. Can we ever make computers that even remotely approximate the capabilities of human brains? I don't think we are much closer to answering that question than we were 30 years ago. But in this particular question we have learned that it is of very little commercial value to answer this question. So CS research may remain a discipline with big questions, but with funding comparable to (for example) archeology. But CS skills continue to be in demand, even if CS research is a bit past it. When I was young, I was blessed with teachers who told me things plainly. So: if you are interested in CS, or computers in general, and you turn aside from this path because people tell you it's not commercial, then you are going the wrong way. Follow your interests - tell your parents and your peers to go take a long walk and leave you alone. Fortunately it seems that only students in the Western world suffer from these delusions. Which will just accelerate the movement of the center of IT to China and India.

    1. Re:Is computer science dead? by Slashamatic · · Score: 1

      Much of the early part of CS dealt with the scarcity of computing - how to make use of the limited resources of memory, computation. We don't need this anymore - there is an abundance of computing.

      Really. We tie up a network of computers every night calculating consolidated Value-at-Risk. Our traders want the analytics to run a tick or two faster than the opposition so they can trade faster.

      It isn't just finance where fast computation is important. Other stuff includes meteorology, hydrodynamics and so on. Also remember that a high end processor isn't always possible due to power constraints.

    2. Re: Is Computer Science Dead? by Yethi · · Score: 1

      I have been working in the industry for 15 years and I would say; it is far from dead. The shrink-warp software at the Enterprise-Level is nowhere where it should be. There is plenty of job security for everyone! ;-)

      IMHO, nobody has fixed the impedance problem of relational databases and, IMHO, until someone does, there will be a lot more job security for everyone. As a matter of fact, companies hire any and everybody to do IT work. CS credentials are not necessary. IMHO, that is why kids do not bother doing CS degrees anymore. Why bother? You can get a job anyways without investing into Higher Education.

  34. Are you mental? by dintech · · Score: 2, Interesting

    'As commercial software products have matured, it no longer makes sense for organizations to develop software from scratch.'

    This is equivalent to 'Off-the-shelf applications now fulfil all possible needs and changing requirements.'

    Surely not. The British Computer Society should really talk amongst themselves before releasing such obvious trolling public statements. This idea could get in to the hands of people who would take it seriously...

    Some muppet in your management chain is trying to 'leverage' a Microsoft Office implementation for your Credit Derivitives Trading platfrom.
    Cancel or Allow?

  35. Bespoke softs by kahei · · Score: 1

    I work in-or-near the bespoke software business in finance, and certainly the increasingly powerful off-the-peg solutions that have emerged in the last 5-10 years do compete with bespoke development. It's also generally fairly true that it takes fewer developers to give 10 banks the _same_ software package than to give them each a bespoke package, making off-the-peg generally cheaper. But there are other differences.

    Projects go on forever either way so multiply by the number of years required :)

    Bespoke app: 10 devs, 1 pm, 1 ba, 2 it people * 20 banks. Total man years: 200 dev, 20 pm, 20 ba, 40 it

    Off-the-peg app: 10 devs, 1 pm, 5 bas (minimum, because the software house has to talk to lots of clients), 2 sales. 1 pm, 1 dev & 2 it ppl per bank to do rollout & integration work. Total man years: 30 dev, 21 pm, 5 ba, 2 sales, 40 it.

    Now sure, the total spend has decreased. But what's more important is that developers, as a fraction of the spend, are no longer the big slice. Project management, business analysis -- these are BIGGER when development and rollout are spread across companies. The IT burden is roughly the same (IT people, meaning people installing software, plugging things in etc. are cheap anyway).

    What this means is that as the market matures, the actual work of development becomes less and less important and the work of managing, selling and integrating what has been developed gets more and more important.

    Note that this applies to software development that can be expressed in terms of product, i.e. software which is delivered, installed and supported in a product-like way. There's also a wide world of 'service-like' software development which is subject to very different trends -- e.g. to outsourcing. But that's a story for another post.

    --
    Whence? Hence. Whither? Thither.
    1. Re:Bespoke softs by Anonymous Coward · · Score: 0

      Financial institutions should stop pretending they can do software development. They should worry about whether joe subprime can make next month's spiked mortgage payment on the interest-only negatively amortized option-ARM you sold him last year.

  36. Dead like a webmaster, or a dinosaur. by kale77in · · Score: 3, Insightful

    Recently we mourned the Webmaster, even though some of us were implicated in his murder.

    That's the kind of Computer Science that is dead: the kind that Computer Science, by its progress, leaves behind.

    An similar questions might be: Is evolutionary science dead? Or was that just the dinosaurs that died?

    1. Re:Dead like a webmaster, or a dinosaur. by Anonymous Coward · · Score: 0

      "An similar questions might be: Is evolutionary science dead? Or was that just the dinosaurs that died?"

      Well, to put it in other terms, "evolve or become extinct" applies in either context. In the case of dinosaurs, yeah, most of them died out, although they were a very successful group in their time, and it was an exceptionally bad day that finally knocked them out (the "mother of all .com busts"?). A few had already transformed sufficiently to survive the event when their bretheren died out, and they rediversified afterwards (i.e. birds).

      If there is any lesson here, it is that change is normal, and that diversification helps long-term survival.

    2. Re:Dead like a webmaster, or a dinosaur. by drooling-dog · · Score: 1

      That's the kind of Computer Science that is dead: the kind that Computer Science, by its progress, leaves behind. That just might be "quote of the day"...
    3. Re:Dead like a webmaster, or a dinosaur. by Anonymous Coward · · Score: 0

      Anyone who puts Webmaster on their resume has as much credibility in the CS world as late night diet pill vendors do in the field of Medicine.

    4. Re:Dead like a webmaster, or a dinosaur. by Sh!fty · · Score: 1

      ...the kind that Computer Science, by its progress, leaves behind. The "problem" with our profession is that we work ourselves out of it. We solve problems, including the problem of having us employed. We solve the problems which we are payed for. No problem, no job.
      --
      Where we have strong emotions, we're liable to fool ourselves. -- Carl Sagan Sh!fty
  37. If you only want to do pure research, maybe by Moraelin · · Score: 4, Insightful

    You know, I don't buy it. On one hand you have all the corporates bitching and moaning about how they don't have enough people to do the work, and how everyone should outright give citizenship to any immigrant who can use a computer. See Bill Gates's speech recently, it was linked to right here on Slashdot. Plus, they've surely created a lot of jobs in India lately. And then we have guys like this one coming out and saying "oh, we just don't need more CS people." Something doesn't add up. Either one gang is right, or the other is right, but they can't both be right at the same time.

    Way I see it, reality is a lot more... perverse. Everyone still needs programmers, still needs an IT department, etc, they just don't want to pay for it.

    And enrollment has just reflected this. Studying engineering or CS is hard work, and there are only a limited number of people who do it for fun. And even those can do it as a hobby at home if all else fails. For most people you have to pay well to get them to do the extra effort. If you don't pay up, they'll go do something else.

    At any rate, the jobs do exist. Sure, not most of them involve researching the next great algorithm, but they exist. There are a ton of companies who need very specialized internal applications, or their own "B2B" applications, and I just don't see the off-the-shelf software who does those. Of course, most of it doesn't involve researching any new algorithms, but rather researching what the users really want. Then again, most computer-related jobs weren't exactly academic research in the past either. There were maybe more companies making compilers and new computers and what have you, but the bulk of the jobs was always in doing corporate software.

    At any rate, _maybe_ if all you're seeing yourself doing after college is researching the next paradigm shift in computing, yeah, that market has somewhat shrunk. If you don't have any qualms with writing some buzzword-ladden application for some corporation, it's as strong as ever. It just doesn't pay as much as in the dot-com times any more.

    --
    A polar bear is a cartesian bear after a coordinate transform.
    1. 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

    2. 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.

    3. Re:If you only want to do pure research, maybe by dlasley · · Score: 2, Insightful

      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 ... [sic]
      I strongly agree. I recently changed positions in one of those evil corporate monoliths to do exactly that - extract the critical requirements early in the project phase so the solution winds up being more than a new set of problems. That's simply the changing nature of the landscape - the technical folks from a few years ago who have good communication skills and a willingness to listen are in an excellent position to provide consultation. I can not emphasize enough the importance of this basic tenet: you must listen to what the client wants, and not assume you have the answer simply because you know apt-get. Understand their needs and come up with a solution that a) meets them as much as possible b) within the project scope and budget c) with as minimal an impact as possible to daily operations.

      But if this is not what you want to do with your background in CS, then don't do it - there are an ever-increasing number of companies that do need things built from the ground up with serious attention to low-level detail: medical research facilities, geographic planning organizations, and metropolitan governments aren't going to find all they need on a shelf somewhere. They just don't post the positions on careerbuilder.com, so you have to pound on doors, wedge your foot inside, and make yourself indispensable.

      &laz;
      --
      when it rains, it gets real soggy. when it pours, i'm under the tap just _waiting_ for the joy
    4. Re:If you only want to do pure research, maybe by jrjarrett · · Score: 1

      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.


      So what happened to the "software engineer?" That term seems to have fallen out of favor since I got my MS in it 15 years ago.
      I went into that program because I saw software development as more than just arranging algorithms -- it was a whole discipline of HOW you did that arranging. To me, software engineering was looking at the entire life cycle of software, understanding that, and finding ways to improve on any of the steps.
    5. Re:If you only want to do pure research, maybe by CrazyLegs · · Score: 1

      You make some valid points, but you're off-base on the 'customized apps' comments. True, they are a bitch to support sometimes. But oftentimes they are critical to an org in that they reflect whatever it is that's unique about that org. Said another way, customized apps will often reflect an org's competitive advantage (or at least a perception of it). Consider the banking industry. How does one bank compete with another? They all sell mortgages and savings accounts and credit cards. They all have access to the same (or similar) COTS solutions. How, then, do they differentiate? IMHO it is custom apps that reflect value-adds such as paperless processing, customer-centric processing, etc.

      --

      CrazyLegs

      "Pork!!" said the Fish, and we all laughed.

    6. Re:If you only want to do pure research, maybe by Anonymous Coward · · Score: 0

      I graduated from computer science in 1999. I survived through the dot-com crash, with a pay raise actually. I have never had a problem finding a job. My problem has always been which job to take. I continuously get contacted for new jobs. I am the only one of my friends who was earning a six figure salary at age 25. Computer science dead? Bullshit. People who can't find jobs in the industry? Ya, there are a few of them -- most of them are losers who don't know what the hell they're doing. I've only worked with about a half a dozen really good guys in the last 8 years - at 6 separate companies. I think the industry is just full of people who don't know what the hell they're doing. Maybe they should spend less time on slashdot, and more time developing their skills -- both technical and social.

    7. Re:If you only want to do pure research, maybe by Anonymous Coward · · Score: 0

      Honestly, the engineering grads don't seem to do any better than the CS grads, and usually have even less programming experience.

      I think the problem is just that good programmers are rare; demand has been met by training a large cadre of mediocre programmers.

    8. Re:If you only want to do pure research, maybe by freediver211 · · Score: 0

      "On one hand you have all the corporates bitching and moaning about how they don't have enough people to do the work"

      No, what they are saying is that they don't have enough cheap overseas labor to do the work. What they want is to pay someone $2.00 an hour who will work 60 hours weeks and be happy. Only so many people will do that.

    9. Re:If you only want to do pure research, maybe by DoofusOfDeath · · Score: 1

      A lot of these people are focused on "how do I meet this product spec?" and not necessarily a solution fit for purpose.

      Meeting the spec helps you keep your job. Failing to meet the job to pursue what the programmer calls, "fitness for purpose" is typically unrewarded idealism, especially when contracts are involved. Many programmers want to bash their own brains when coding something they know isn't fit for purpose but meets the spec. But you can only argue with management for so long before you have the choice of code what they're asking for or getting fired.

      There's also a certain amount of humility and being a team player here. Large projects sometimes can't afford the time for every programmer, especially those new to the problem domain at hand, to have strong buy-in to a particular set of specs before they start coding them. On a good day the people that code to fit purpose rather than spec are called "professionals". On a bad they they're called primadonnas or "that guy who got us sued because we didn't meet the spec in our contract."

      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's usually a trade-off between the time you have to program a solution to a problem vs. the efficiency of the resulting program. Again, management often forces where on this trade-off curve the program lies. (I don't mean to make excuses for programs that unnecessarily lie below that curve. I'm sure it happens often.) So if you get an inexperienced or under-trained programmer, only give him 3 hours to get the program done, and it takes him 3.5 hours to make it work at all, then one might expect to see the problems you're describing.

    10. Re:If you only want to do pure research, maybe by Cius · · Score: 1

      I fail to understand the contradiction as well. How the hell can we be lacking enough CS expertise to meet demand if the demand does not exist? I'm a computer science major. I'm perfectly willing to be a code monkey to pay the bills, but I'm going straight through to my Masters and PhD in order to qualify myself for a more interesting research position. In the event that I'm truly not needed upon graduation, I'll manage somehow. However, before the industry imports more cronies, I certainly hope they'll look my way long enough to realize that CS majors *do* exist, and that *some* of us are ready and eager to fulfill whatever needs the industry has. Oh, by the way Mr. Gates, if you'd like to contribute to my graduate tuition fund, I'll gladly forsake my part time job and concentrate more fully on developing the skills you need.

    11. Re: If you only want to do pure research, maybe by sudden.zero · · Score: 1

      Right on! I don't buy it either. I graduated with a CS degree in 2005 and I have had steady employment since graduation with good pay for where I live! The only people with a CS degree that will be unemployed are the ones who a. Don't go the extra mile b. Are in it solely for the money and not for the fun (because you have to be a geek to love computer science) c. Want more money than they are worth as a entry level employee. This, of course, is not an absolute list but a loose guide. If one avoids these 3 taboos then a job will come along.

    12. Re:If you only want to do pure research, maybe by Anonymous Coward · · Score: 0

      >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

      Binary search is only good if you are doing exact match or your search key does not starts with a wild card.

      You pretty much have to do linear search if the application calls for unrestricted wild cards. Depending on applications, this may or may not be the right type of performance/complexity trade off.

      I am writing a file system cataloging tool from scratch in 100% C (no classes/frameworks/database engines). It compiles the search expression into byte codes and then perform linear search. It can perform a substring boolean search of 600,000 records each averages ~ 100 bytes each on a 1.3GHz Celeron with PC100 SDRAM in about 0.65 sec. Unlike typical database systems, there is no indexing/compaction type of overhead needed.

      What you are searching?

    13. Re:If you only want to do pure research, maybe by Thuktun · · Score: 1

      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. Tell me about it. I've been digging through code produced by supposedly competent developers that is slapped together with little understanding of how things actually work.

      For instance, a loop that's meant to scan through a set of XML elements in DOM that uses getElementsByTagName, but which calls that once to get the count of matching elements and once for each match. You read that right, it does a depth-first search of a DOM sub-tree N+1 times, re-searching for the matching NodeList for each of the matching nodes. This wasn't a single instance of this, either, it was peppered through a large "enterprise" web application as one of its common element iteration metaphors.

      We don't let auto manufacturers build cars with Duck tape and chicken wire, why is that acceptable in corporate software?

      This is what comes to mind anymore whenever some large company blames a computer "glitch" for something. They make it sound like an anomaly, some kind of freak cosmic ray event, rather than a pervasive disrespect for quality software.
    14. Re:If you only want to do pure research, maybe by AutopsyReport · · Score: 1

      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.

      Are you suggesting that a businesses requirements do not change over time? That because an in-house application needs customization, it's the fault of shortsighted business analyst? Give me a break. A firm's operations, and software requirements, can change with the direction of the wind. An excellent business analyst can only bring you so close to hitting the bullseye -- after that, the firm's direction dictates how well you stay on course.

      --

      For he today that sheds his blood with me shall be my brother.

    15. Re:If you only want to do pure research, maybe by Slashdot+Parent · · Score: 1

      Who codes search algorithms anymore? There are perfectly good libraries for that kind of gruntwork.

      Write your own and you are likely to write something that is buggy and O(god only knows what).

      Your example was funny, though. Wouldn't a Computer Science grad wonder why a simple program (You replaced a O(n) algorithm with one that was O(log n), so roughly 88 minutes of the time the original program was running would have been spent in the search) was taking 1.5 hours to complete?

      --
      They don't grade fathers, but if your daughter's a stripper, you fucked up. --Chris Rock
  38. Is computer science dead? by jandersen · · Score: 4, Funny

    No, no, it just smells funny.

  39. Needs to evolve into Computer Sciences (plural) by searlea · · Score: 1

    No, Computer Science isn't dead. It's simply grown too big to be covered by a single 'Computer Science' label.
    Just as biology branched out into 'Life Sciences' it's about time Computer Science was broken into separate areas.

    It used to be fine to have a single Computer Science course with one module in Law, another in Algorithms; one in AI, one in Databases etc.

    These subjects are too big now; covering the full subject area in a single degree produces graduates who are classic 'jack of all trades, master of none.'

    1. Re:Needs to evolve into Computer Sciences (plural) by thaig · · Score: 2, Interesting

      I think it's more like:
      Mechanical Engineers and Mechanics
      or
      Electrical engineers and Electricians

      Each job has its problems but focuses on a different end of the product lifecycle.

      Some software doesn't die and merely needs to be maintained, so naturally, after a while there is less need for hardcore Computer Scientists to develop new things. Open source probably accelerates this trend - e.g why write a portable runtime library for your app when you can use the NSPR or the Apache one?

      --
      This is all just my personal opinion.
    2. Re:Needs to evolve into Computer Sciences (plural) by Weedlekin · · Score: 3, Insightful

      "I think it's more like:
      Mechanical Engineers and Mechanics
      or
      Electrical engineers and Electricians"

      That's what it _is_ like, but it should really be like:

      Physicists and Mechanical Engineers.
      Physicists and Electricians.

      Computer Science should be about the _science_ of computing, not the design and programming needs of the commercial software industry. If you want to get a job designing roads or mass irrigation systems, you don't spend your entire time at university studying physics or mathematics just because both are involved in becoming a civil engineer, so expecting a computer science course to turn out software engineers makes no more sense than expecting biology graduates to be vets or medical doctors.

      What's killing computer science as a curriculum (rather than a field, where it's still alive) is therefore the fact that too many universities have allowed the distinction between science and engineering to become so blurred that it's ended up being something that students, potential employers, and lecturers have become disillusioned with because they all have different definitions of what it should be. The only way to alleviate this would be having three distinct computing degree courses:

      1) Computer Science. A purely theoretical and heavily mathematical course that covers all aspects of general computing for those who want a career in research or academia that aims to produce people like Doug Englebart, Alan Kay, Edmund Djikstra, and Niklaus Wirth.

      2) Computer Systems Engineering. Geared towards what used to be called "Systems Analysts", i.e. people who know how to define requirements, and then convert them into a working system of arbitrary complexity (i.e. from small office to world-spanning mega-corporation) that _does what the customer wants_.

      3) Software Engineering. Both the theoretical and practical aspects of designing _and implementing_ software for everything from small embedded systems to vast n-tier multi-user set-ups, hugely parallel systems, etc. Also includes a module on human-computer interfaces, i.e. writing stuff that people will actually want to use instead of doing so because they.

      IMO fields like artificial intelligence and robotics would do much better in terms of both their theoretical foundation and practical results if they were removed from computer science entirely, and instead became distinct fields that would therefore be freed from the current "throw a huge binary computer at every problem that nature seems to have solved with the equivalent of a four transistor analogue circuit, and then make excuses for the fact that it's still crappier at everything than an ant" syndrome.

      --
      I'm not going to change your sheets again, Mr. Hastings.
    3. Re:Needs to evolve into Computer Sciences (plural) by Anonymous Coward · · Score: 0

      Couple of comments...

      Computer Systems Engineering to me means computer hardware design and many schools offer it as such. For systems analysis and design, my university called it MIS or Management Information Systems and it was completely focused around Requirements / Systems Analysis. But I regardless of what you call it, I agree.

      Secondly, I think there needs to be a 4th and that would be some form of interdisciplinary approach where the student is taking computer related courses within a specific area... eg. BioInformatics... combination of Biology and Information Science...

      I think we see a maturing of things where it's not just about the Computer Science arena anymore, that by itself Computer Science is simply programming (ok not really but that's the way it's taught in many places) and the value is when it is applied to solve problems in a particular space. Hence the 4th area of Applied Computer Science or Applied Information Technology.

    4. Re:Needs to evolve into Computer Sciences (plural) by thaig · · Score: 1

      Computer Science seems to me to be about how to model one system (e.g. a bank account) using some completely different system such as a NAND gate.

      The science part of it depends utterly on what tools are available. If it was incredibly efficient to represent lists in electronic components then we would all be LISP programmers and Computer Science would be about how to transform problems into functional computations.

      It seems completely practical, really.

      I think that the difference is that in CS one shouldn't think that tomorrows "answers" won't be today's plus a bit. Tomorrow we might do stuff that's completely different and we might rethink all our assumptions. We should know what things are assumptions, therefore, and why they were chosen and when to throw them out. Theory should be our weapon in doing this - it arms us against becoming conventional and acting without really thinking.

      I think CS is really about how to address complexity and we aren't looking at it from the right perspective yet. I suppose that thinking about this could be a pure, mathematical issue.

      --
      This is all just my personal opinion.
    5. Re:Needs to evolve into Computer Sciences (plural) by Anonymous Coward · · Score: 0

      This needs to be modded up.

      I am currently going into my last year at university and am looking toward graduate school. I am preparing to take my subject GRE's this spring but am quickly finding that my courses have not prepared me well enough and consequently I have my work cut out for me. Core courses such as Architectures, Operating System, Compilers and Interpreters are lacking in both depth and breadth.

      After I realized the above I pointed this out to various professors and was told the same thing in a few different ways, "Computer Science is suffering from an identity crisis". Are we infrastructure? Are we Software Engineers? Are we computational scientists? Currently (at least at my university) there is not an answer to that and as a result the curriculum has suffered tremendously.

      I dont believe that this is just an isolated problem either. I go to school at a state university in Connecticut which, supposedly, has one of the better "state sponsered" education systems in the country. If this is how the so called "better" institutions are run then I really feel for those at "worse" instutions.

    6. Re:Needs to evolve into Computer Sciences (plural) by bzipitidoo · · Score: 1

      One of the universities I've known changed the discipline from CS in the College of Arts and Sciences to CSE in the College of Engineering less than 5 years ago. That's "Computer Science & Engineering", not the CSE you mentioned. I asked why, and didn't get much in the way of answers. I was told CS or CSE, it didn't matter, it's still the same stuff. And that there was money in the name change. Just how that got them more money, I didn't hear, though I expect it has to do with adding another degree to their offerings, that being CE. You know how bureaucracy could be, perhaps doling out x amount of funding per degree program. So a sneaky department can offer what seems to be separate degrees for very little extra effort, and double their funding. Well, if so, nice for the short term, but what about the long term? This move coincided with the hiring of a new department head, so I rather think it was his idea, and not the staff's. At another school, CS started off as part of Math in the College of Arts and Sciences, then was moved to be part of EE in the College of Engineering, and then got promoted to a department of its own, called CS, but still in the College of Engineering. And outside the debate but always in the back of the mind was Management Information Science in the College of Business. One of the CS professors there was a big believer in Software Engineering as a separate discipline, and eventually left to head a Software Engineering deptarment at another school.

      It's no wonder we can't decide what CS is. The schools can't either. Nor can the professional societies, or why should we have both the ACM, and the IEEE Computer Society? The Wikipedia entry on CS has been nothing but a big edit war, with poor entries dominating by virtue of the zealousness of their promoters. Yours is the first comment I saw that said CS is the science of computing, as indeed CS is. Maybe CS should be "Computation Science". Calling the discipline Computer Science is like calling Astronomy "Telescope Science". If it used a name like "Telescope Science", people could be forgiven for thinking Astronomy is all about Optics. Confusing. How's a hiring manager to know what to ask and look for? We can't intelligently debate whether CS is "dying" or "in trouble" until we can be sure we're talking about the same thing!

      --
      Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
    7. Re:Needs to evolve into Computer Sciences (plural) by Anonymous Coward · · Score: 0

      What is computer "science" anyway? Are they proposing any hypothesis and then offer an experiment to prove / disprove them?

      Is designing your own language a science? Maybe it is, I don't know.`

      When I think of the people you mentioned (mainly Knuth) I think of "applied maths" I'm not sure if Doug Englebart fits into there.

    8. Re:Needs to evolve into Computer Sciences (plural) by Weedlekin · · Score: 1

      I agree with most of what you've said, apart from the following sentence:

      "The science part of it depends utterly on what tools are available"

      I'd say that the science part should be (and indeed often is) responsible for developing those tools rather than depending on them. Much of what we think of as computer science today was originally conceived by people who were imagining what might be achievable rather than being shackled to what had already be done.

      --
      I'm not going to change your sheets again, Mr. Hastings.
    9. Re:Needs to evolve into Computer Sciences (plural) by BalkanBoy · · Score: 1

      > 1) Computer Science. A purely theoretical and heavily mathematical course that covers all aspects of general computing for
      > those who want a career in research or academia that aims to produce people like Doug Englebart, Alan Kay, Edmund Djikstra,
      > and Niklaus Wirth.
      >
      > 2) Computer Systems Engineering. Geared towards what used to be called "Systems Analysts", i.e. people who know how to
      > define requirements, and then convert them into a working system of arbitrary complexity (i.e. from small office to
      > world-spanning mega-corporation) that _does what the customer wants_.
      >
      > 3) Software Engineering. Both the theoretical and practical aspects of designing _and implementing_ software for everything
      > from small embedded systems to vast n-tier multi-user set-ups, hugely parallel systems, etc. Also includes a module on
      > human-computer interfaces, i.e. writing stuff that people will actually want to use instead of doing so because they.

      2 & 3 can be and are taught in M.S. degrees in software engineering, like at CMU or SeattleU. You take someone who has a CS degree, with a M.S. in software engineering, and project management skills (e.g. like can be gained from particular MBA courses), and 15+ years of experience - there's your computer systems/software engineering guru. He or she will understand most of what needs to be done to pull off a software system, how you can fail, what to do to not fail, etc.

      I even think a CS with enough industry experience (in software engineering), and an MBA is even more useful.

      As for just #1 - I think there is no 'blurring' between science/engineering - engineering is applying science. But where did "science" come from? Probably some engineering trial that either failed or didn't work as well as it should & needed more clarification. It is not like scientists (Ph.D's) come up with problems from thin air. The problems typically originate in engineering and are elaborated by dedicated teams of Ph.D.'s who specialize in certain areas. E.g. I want to encrypt my data but don't know how. I could invent a proprietary encryption algorithm and hope it will resist attacks. Or I could use one developed by a cryptography expert like Schneier or the guys who invented Rijndael - all of whom are cryptography _scientists_ (Ph.D. or not, doesn't matter - they know their shit). However, the problem of protecting data by encrypting it did not originate with Schneier nor the Rijndael guys. He did not "invent" encryption by sitting in a room and playing scientist on his computer.

      Engineers (the guys without the Ph.D's) who may have worked on protecting data by encryption some time ago, whenever that was, probably failed to create a good enough algorithm, which then people like Schneier, Rivest, Shamir, etc, picked up and with their mighty intellect, figured out how to solve (and I might add, bank on it) better than someone who did not have the time/intellect/effort.

      This is why I never understood why people love to make science vs. engineering distinctions - they do not make sense (to me). It's like the chicken/egg problem - which came first?

      Hope I make sense :).

      --
      'A lie if repeated often enough, becomes the truth.' - Goebbels
    10. Re:Needs to evolve into Computer Sciences (plural) by Stuntmonkey · · Score: 1

      IMHO the blurring between theoretical and applied roles in CS has to do with everyone's free access to the tools of the trade. It's easy to get simple software working: All you need is a computer and free compiler/interpreter and you can starting writing code. By contrast, in other fields there are usually barriers that make the theoretical/applied division clearer. In my own field of physics, for example, interesting experiments are expensive -- at least $100k to set up a minimal lab, millions in some fields. In other applied areas (medicine = applied biology, architecture = applied mechanics), the potential for harm from incompetence has led to professional accrediting organizations, again creating barriers and more delineated roles.

      In general I think the accessibility of "applied CS" is a good thing. It democratizes the tools of production, giving anyone the ability to build a web site, start a blog, become an online retailer, etc. The flip side is that the simplicity makes it easy to deceive oneself about the difficulty of building complex systems well. The observed reality is that the methods used to build "small" systems with a few hundred lines don't scale well to "large" systems with 10^5+ lines. But it's easy to forget this and not perceive the need for a separate software engineering discipline.

    11. Re:Needs to evolve into Computer Sciences (plural) by Weedlekin · · Score: 1

      "2 & 3 can be and are taught in M.S. degrees in software engineering, like at CMU or SeattleU."

      The point is that one shouldn't need an M.S. to distinguish between computer science and computer engineering, hence my division into three basic B.S. courses.

      "You take someone who has a CS degree, with a M.S. in software engineering, and project management skills (e.g. like can be gained from particular MBA courses), and 15+ years of experience - there's your computer systems/software engineering guru."

      From what I've seen during nearly 30 years in the software industry, degrees + experience doesn't have any greater probability of producing a guru than experience on its own.

      "I even think a CS with enough industry experience (in software engineering), and an MBA is even more useful."

      It's definitely useful in terms of raising one's income, because certain (but by no means all) areas of the software development world place great value on such people.

      "As for just #1 - I think there is no 'blurring' between science/engineering - engineering is applying science"

      Chefs also apply science -- they're just as particular about temperatures, times, mixtures, and a whole bunch of other stuff as any chemist, and much of what they do has a solid scientific foundation. This does not however mean there is a blurring between cookery and (for example) organic chemistry just because a great deal of cooking is concerned with producing controlled changes in complex organic substances, or that chefs need to know any of that science to be superb at what they do. And the same is true for engineers, who only need to know that something _has_ certain properties, not the (often complex) theories which explain them and allowed the formulae they apply to be derived in the first place. Some very effective engineering has been done by ancients who had nothing beyond heuristics derived from generations of trial and error and some very primitive instruments (e.g. aligning sticks optically to ensure that things were straight) to work with, so the only "blurring" between science and engineering is that science has managed to explain and quantify many of the things engineers were already doing, but that doesn't mean that the scientists who were investigating those things knew anything about engineering, or cared about whether engineers might find their work useful or not.

      "But where did "science" come from? Probably some engineering trial that either failed or didn't work as well as it should & needed more clarification"

      Science in the modern sense (i.e. in terms of the scientific method) came from Galileo, who was trying to prove his theory that all objects fall at the same speed irrespective of their mass (this was completely opposite from the accepted wisdom of the time, which stated that heavier objects fall faster than light ones). I won't go into the details here, but after dropping two objects of different weights from the top of a tower and observing that they didn't fall at the same speed (because of air resistance), Galileo produced a series of experiments using inclined slopes and water timers that proved he was right, and thus was the scientific method, and therefore modern science, born. Note though that Galileo was far from being the first true scientist -- that honour probably goes to Aristarchus of Samos (310 to 230 BC), at least in terms of published work (obviously, we don't know anything about ancient scientists who didn't write about their work, or whose writings haven't survived).

      "It is not like scientists (Ph.D's) come up with problems from thin air"

      They "come up with problems" by observing things (NB: a Ph. D isn't the thing that distinguishes scientists from non-scientists, because many of history's great scientists have lacked any qualifications. Faraday is an excellent example, but there are many, many others).

      "The problems typically originate in engineering and are elaborated by dedicated teams of Ph.D.'s who specialize in certain areas"

      --
      I'm not going to change your sheets again, Mr. Hastings.
  40. Less demand != no demand by Capt+James+McCarthy · · Score: 1

    Offices will always want something that the COTS does not do. I think thrid party vendors should worry about becoming obsolite because Operating Systems begin to incorporate their functionality within the OS itself. M$ is trying with Virus scan and the like. Not perfect yet, but I think the code is on the wall, so to speak.

    --
    There are no loopholes. It's either legal or it's not.
  41. I believe this is the crux of the AGAINST argument by Moggyboy · · Score: 1, Funny

    ... there'll always be the pointy-haired boss who wants that icon in "powder-blue". Believe me, I've worked for enough of them to know that I'll never be out of a job.

    --
    Work smarter, not harder.
  42. A practical approach? by MrDomino · · Score: 1

    The article makes a lot of shaky assertions, but it gets one thing right: computer science curricula in higher education are becoming something of a joke. I think it misfires in saying that the way to go is to be more practical and interdisciplinary; I think the problem is that computer science programs are too practical. "Computer science" has come to be less the study of algorithms and information management, and more a vocational degree--universities aren't graduating computer scientists so much as they're graduating computer mechanics.

    I wonder if part of this is that universities are being forced to spend time drilling into undergrad students concepts that should've been learned long beforehand through a proper high school education or (god forbid) natural curiosity--and, moreover, if this trend will seep into graduate school as more people pick up master's or doctorate degrees for purposes of job differentiation.

  43. If we're talking about developers here... by jasomill · · Score: 1

    Putting the debate about the differences between academic CS, practical software development, and IT/MIS aside, it seems to me that, all other things being equal, an IT environment built from mostly off-the-shelf components will require fewer, but better developers. After all, it's far easier (and requires far fewer skills) to build a one-off custom application (or component, or robot, or whatever) that works (I'm tempted to say "happens to work") for a single customer (especially if the original developers remain available to provide ongoing support and maintenance) than it is to build a robust, off-the-shelf application that works well for many customers in many different environments, especially if the market demands reasonably-priced support for said app.

    I'm tempted to say that this is a good thing, i.e., being able to take advantage of economies of scale to drive the cost of established technology down. And it's only the death of (applied) CS when people stop coming up with novel ideas for new applications of technology (what was that about the Patent Office closing down because everything worth inventing had already been invented in the 19th century?). I don't know about you, but I'd rather the greatest minds of my generation spend their time developing interesting new application areas than writing ad-hoc, informally-specified, bug-ridden, slow implementations of QuickBooks with Excel macros and duck tape (apologies to Philip Greenspun). In the words of Thoreau, "the sun was made to light worthier toil than this."

    -jtm

  44. Don't worry, be happy :-) by Anonymous+Brave+Guy · · Score: 4, Informative

    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. :-)

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    1. Re:Don't worry, be happy :-) by Geoffreyerffoeg · · Score: 1

      when you're ready, LISP

      I oppose this. MIT teaches Scheme, a LISP dialect, in its intro CS class. And the admissions requirements don't include knowledge of programming, and many non-EECS majors take the class. (Well, they're now offering a Python class simply as intro programming. But that's mainly for people who've never seen code before.)

      Get yourself a copy of The Little Schemer, and read through it. It's a nicely different way of looking at CS and coding.

    2. Re:Don't worry, be happy :-) by Anonymous+Brave+Guy · · Score: 1

      What do you oppose: learning LISP, or waiting until you're ready before trying to learn it?

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    3. Re:Don't worry, be happy :-) by Tablizer · · Score: 1

      it will make you a much more rounded programmer.

      Diabetes++

    4. Re:Don't worry, be happy :-) by Anonymous Coward · · Score: 0

      Good points, I would add:
      Smalltalk, to understand what object-oriented programming really is;
      Erlang/OTP, to find out how to really write a robust, distributed system.

    5. Re:Don't worry, be happy :-) by Geoffreyerffoeg · · Score: 1

      Waiting. LISP is a great first or second language.

    6. Re:Don't worry, be happy :-) by Anonymous+Brave+Guy · · Score: 1

      I'm not sure I agree with that.

      Where do you think the real power in LISP comes from? Do you think someone in their first term of studying serious computing will appreciate that power and why it's important/useful? Will they learn anything from LISP, at that time, that they couldn't learn from the other functional programming languages I mentioned?

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  45. The software industry is a big place by 91degrees · · Score: 1

    There are many fields where the off-the-shelf principle doesn't work.

    But curiously, reducing the labour needed for production reduces prices and seems to often increase demand sufficiently to more than compensate for the reduction in labour. Take the Ford Model T as an example. Work required per car was considerably smaller than any other brand of car, but the workforce was huge. Commercial software (e.g. Windows, and Excel) does all the tasks required of 90% of users, so this should mean that the software industry is only about 10% of the size it was in the 1960's. But it's much larger than it's ever been.

  46. What computer science is not by DrHyde · · Score: 1
    • Computer science is not software development.
    • Computer science is not about teaching Java.

    Perhaps fixing those two problems that are endemic to "Computer Science" courses would go part of the way to fixing the problem.

    1. Re:What computer science is not by tomstdenis · · Score: 1

      I agree that comp.sci isn't strictly about programming, but I think it's a good idea to have *a* language in the courses. The problem otherwise is you have these "grads" who honestly don't know shit all about actually using their comp.sci knowledge. They end up having horribly unmaintainable coding practices that people like me usually have to come around and clean up.

      Things like Java, C++, Perl, etc should be single semester long courses and not the focus of the degree. Because frankly, once you get the idea of programming languages, learning Java over C++ [or whatever] is a matter of the grammar really (especially since they're all fairly similar).

      Tom

      --
      Someday, I'll have a real sig.
    2. Re:What computer science is not by Anonymous Coward · · Score: 0

      This is why I never enrolled on a so called "computer science" degree. I also heard horror stories about students who can barely use a mouse graduating from these courses.

      I wanted to do compiler design and code generation yet no computer science courses in the UK appeared to teach such modules. More general IT concepts and creative writing (consider future developments in AI) are over represented.

      I bought the books instead, formal education is a scam.

    3. Re:What computer science is not by Xrikcus · · Score: 1

      I just marked a code generation coursework at a UK university... second year level, admittedly, but later compiler courses are more theoretical on optimisations and so on, so that's not unreasonable.

    4. Re:What computer science is not by Anonymous Coward · · Score: 0

      What module was it in?

    5. Re:What computer science is not by Anonymous Coward · · Score: 0

      Things like Java, C++, Perl, etc should be single semester long courses and not the focus of the degree. Because frankly, once you get the idea of programming languages, learning Java over C++ [or whatever] is a matter of the grammar really (especially since they're all fairly similar).
      Only because you chose languages whose syntax is a variant of C. C, ASM and OCaml/Haskell are more relevant to computer science and give the student a broader grounding. The JVM is worth studying on a CS course, Java as a language belongs on programming courses.
    6. Re:What computer science is not by tomstdenis · · Score: 1

      I think we're making the same point more or less. To me, students should learn ASM and C first (bonus points for doing ASM on non-x86). But having a Java class in a comp.sci degree isn't a waste. Hell, most American unis put "Japanese History" as an undergrad requisit. It's all about balance.

      You want to leave uni with a degree that says you know algorithm-fu and math-fu. But if you can't develop or code you're practically useless. Nobody hires "thinkers" to just dream up products. You need to actually code it. And a one semester class that introduces you to Java, Perl, Python, etc is not a bad idea.

      When I was at IBM, I saw the product of "non-coder" developement. The result was "textbook" perfect code, that was totally inefficient and unmaintable. In one instance, I saw someone instantiate an entire template hashing class, to hash strings and sort them. He had about 3000 lines of code, full with nice non-descriptive block headers, for something that could have been written in 20 lines using qsort(). The code made used of all sorts of other things like a non-functional Montgomery reduction (to simulate the % operator for performance), inlined assembler, etc, etc, etc.

      I should point out this hash class is called only during startup/shutdown and it's used to store internal PIDs to avoid clashes of processes. So the "performance need" is nil. Worst of all, it didn't build with GCC at all. Clearly the product of an overexcited developer who cracked open their Rivest Algorithms text and spewed out every idea they could. Clearly not the product of someone who has experience developing in C.

      Do you know how much it costs IBM to maintain DB2 (the product I was assigned to)? A lot. Do you know how much it *should* cost them if it was coded properly? A lot less. IBM isn't special in this regard, I imagine the same thing happens at Oracle, at MSFT, at ... I'm just picking on them since I have first hand experience.

      So while I agree that a comp.sci degree should reflect a certain level of mathematics, algorithms, and the like, it should also reflect programming knowledge since that's what they end up doing anyways.

      Tom

      --
      Someday, I'll have a real sig.
    7. Re:What computer science is not by Anonymous Coward · · Score: 0

      Interesting anecdote about the hash template, pair programming or a competent manager might have caught that. Why couldn't someone just drop in a qsort function, was the guy a senior software engineer or was it just a job security thing?

    8. Re:What computer science is not by tomstdenis · · Score: 2, Interesting

      IBM is full of bright people (and I don't mean that sarcastically). They are very smart. The problem is they hire a lot of fresh grads and give them write access to the main repository. Then they get them to work on some ancillary functionality before moving up. Unfortunately, for me, where my job was testing DB2 on different compilers, it's these ancillary functions that held me back.

      That hash template for instance, took me about 2 months to fully work out why GCC didn't like it (it would fail at runtime), actually to this day I don't know exactly what was wrong, I just put a workaround in it's place. Worse yet, that hash template isn't even part of the majority of the runtime path, it's only called during startup/shutdown.

      DB2 for instance, is the product of thousands of developers work. Most of whom are not even working on it anymore. So one guy may start a class [or method] and another add to it. But they might not take the design the same direction. So while the original developer may had one implementation in mind it ended up going another direction, the subsequent developers trying to wrestle what code there is to do what they think it should.

      In the case of the hash template, I honestly think it was from a newb developer who didn't have the practical experience required to stop and think "there has to be a simpler solution." I remember when I was a newb developer (12-18 years old) I would write extremely long and complicated code for things that I could now accomplish with much more elegant code [and style]. These grads obviously didn't do much development during uni and the result is they honestly don't know how to express ideas concisely yet.

      It's like if you're learning French [or any other second language]. You might use more verbose, or awkward language to express an idea the natives have simpler language for. For example, a newb may say "Nous parlons comme tout les autres Francais," whereas a French dude may say "Nous parlons comme du monde." The latter being more accepted and easily understood.

      As for why management didn't catch it. Well several things. First, they're super busy at IBM. When I was there they were always running off to this meeting or that meeting. Second, it's not their job to sit and inspect the entire codebase (DB2 is also very large ...). Third, even if they did see shitastic code, HR wouldn't let them fire/reassign them so easily.

      They do have standards and testing suites. The problem is they're not comprehensive. At the time I started there, DB2 was only tested with ICC on x86 platforms. Even though they did support GCC (and used it on non-x86 platforms). Had they tested with GCC too, the hash template code would likely not have been accepted.

      Anyways nuff ranting...

      --
      Someday, I'll have a real sig.
    9. Re:What computer science is not by ljc86 · · Score: 1

      As a student currently studying Computer Science in the UK, I can tell you there are a number of universities that include compiler design in their courses - Oxford, Cambridge, Southampton and UCL to name a few.

      Most proper computer science courses do not have any creative writing aspects - if you go to a reasonable institution, you will have the oppurtunity to study the technical side. What you are describing tends to be ICT style courses rather than computer science ones.

      Formal education is not a scam - it provides you with evidence that you understand the concepts. Sure, you may go out and purchase books - you may even understand the content matter. But this won't give you the same proof that completing a compilers module as part of a wider degree will give you. That's the point of a degree - not to necessarily teach you, but to give future employers evidence of what you can do.

    10. Re:What computer science is not by DrHyde · · Score: 1

      That may or may not be the point of a degree. However, as an employer, I find that CS degrees prove only that the applicant managed to complete the course. The number of utterly useless CS graduates who, as someone else pointed out, sometimes hardly even know how to use a mouse (or a text editor, or ...), makes that fairly obvious.

      Yes, you can say "they must have been bad courses" or "those are ICT courses". You might even be correct. But I can't tell what the bad courses are, and it says Computer Science on the bit of paper.

    11. Re:What computer science is not by Xrikcus · · Score: 1

      Compilers, originally enough :) Unless that's not what you meant by your question.

  47. Moving towards a commodity by Bloke+down+the+pub · · Score: 2, Insightful

    To get the headlines a hundred years ago, just replace "British Computer Society" with "Ye Fraternal Guild of Buggywhip Frossickers" and "off-the-shelf solutions" with "horseless carriages".

    --
    It's true I tell you, feller at work's next door neighbour read it in the paper.
  48. There are always more consumers than creators by gorbachev · · Score: 1

    Think about it. How many people get to write Java rather than write applications using Java? Or how many people get to write a brand new sorting algorithm compared to how many people get to use it?

    I don't think there's anything wrong here. It makes perfect sense schools would create more consumers of computer science than computer scientists. If everyone coming out of these schools was a "creator", either the unemployment rates would go sky high, or there'd be a whole bunch of overqualified people working on tedious crap.

    --
    In Soviet Russia, I ruled you
  49. no, no, no by tomstdenis · · Score: 4, Insightful

    This has been asked repeatedly ever since I was a wee lad [20 years ago]. The idea then was BASIC would replace comp.sci because it was so simple to program. Of course, it overlooked the fact that BASIC is wickedly inefficient. No, the answer is no. No. No. No. Why? Someone's gotta maintain the scene.

    For starters, the more automated tools are not efficient enough for most computing platforms (hint: think running that nice VB.NET application in 32KB of ram). Then combine that with the need for algorithms (re: 16MHz processors) and you can see that RAD tools don't apply.

    Tom

    --
    Someday, I'll have a real sig.
    1. Re:no, no, no by Anonymous Coward · · Score: 0

      > BASIC is wickedly inefficient.

      FreeBasic compiles to native code; truly wicked.

    2. Re:no, no, no by tomstdenis · · Score: 1

      Does it have pointers? Can you drop into assembler with the ease of GCC? etc... Does it optimize on the same level as GCC or Sun CC? Just because it's compiled doesn't make it efficient. Both the language and the compilers have to have the capability of being efficient.

      But that being said, you can still practice comp.sci in BASIC, that is the development of algorithms, datasets, etc. My comment about BASIC was how it was supposed to obsolete comp.sci, that "anyone can program it." Which may be somewhat true, doesn't mean they can produce what the world needs.

      Think about it, if you have no idea about, say, numerical analysis, how could we ever hope to write something like MPEG? etc...

      Tom

      --
      Someday, I'll have a real sig.
    3. Re:no, no, no by Anonymous Coward · · Score: 0

      Does it have pointers? Can you drop into assembler with the ease of GCC? etc... Does it optimize on the same level as GCC or Sun CC? Just because it's compiled doesn't make it efficient. Both the language and the compilers have to have the capability of being efficient.


      Funnily enough...

      I basically agree with you, however the truth is that CS courses have become more about teaching Java programming than algorithms.
    4. Re:no, no, no by tomstdenis · · Score: 1

      Assembler in BASIC? That's scary.

      10 Dim I as Integer
      20 Put I into %eax why don't you?
      30 Shift %eax by 4 bits to the left, please.
      40 Store %eax back into I, hon. :-)

      As for Java ... I wonder why they all jump on that bandwagon. I have worked in a few shops [including AMD/IBM] and I have yet to actually be required to program something in Java.

      Tom

      --
      Someday, I'll have a real sig.
    5. Re:no, no, no by Mordaximus · · Score: 1

      Computer Science isn't (just) programming, nor does being able to program make someone a computer scientist.

    6. Re:no, no, no by tomstdenis · · Score: 1

      Usually if you can cram functional code into tight spaces it's because you understand the algorithms that drive your program. That's why I made that comment. Someone who has no idea how sorting happens, relies on something like qsort, or whatever VB provides. Then when faced with that 16MHz ARM and 32KB of ram, they don't know what to do (other than copy/paste horrible code from the net).

      And a computer scientist who can't develop software is about as useful as a rocket scientist who can't use a calculator [slide ruler, whatever]. Sometimes you have to get your hands dirty, especially since as far as I know there are no comp.sci farms where people just sit and dream up fancy math/algorithms (outside of uni that is).

      --
      Someday, I'll have a real sig.
    7. Re:no, no, no by maddogdelta · · Score: 2, Insightful

      What tomstdenis said, but on a longer time scale. I coded my first Fortran in 1976. In 1980, somebody was showing me a system that would "eliminate programming" because you could just speak English (actually they were showing me a SQL system) to the computer.. In the late 80's, early 90's "object oriented programming" "would eliminate the programmer" because all you would have to do is put components together. And now this clueless arsehole. But he got published, so I guess he accomplished his job. (Like the academic who said JK Rowling wasn't a great writer...)

      --
      -- There are 10 kinds of people in the world, those who understand binary and those who don't.
    8. Re:no, no, no by lysse · · Score: 1

      Depends on the RAD tool. A traditional Forth environment would sit very nicely under such constrained conditions.

    9. Re:no, no, no by TheLink · · Score: 1

      "a system that would eliminate programming because you could just speak English".

      Even if you had such a system you'd still need programmers and analysts.

      Most people can't even use Google efficiently to search for what they want, what are the odds that they would be able to come up with a query that would give them the _correct_ results?

      "Give me the total number of our employees in Los Angeles".

      Los Angeles is ambiguous - is it just the city? If it's just the city do you mean living in the city or working in the city? Also should include those on a business trip to elsewhere and those seconded to Houston for a year? And who are considered employees? So on and so forth...

      The system will have to guess how precise a query needs to be, what the questioner is likely to mean. And it could still get things wrong. It could be OK if only rough estimates are needed, but there are many important queries where the exact correct results are required.

      Either that or the system has to ask the questioner lots of questions to disambiguate things and perhaps suggest a "shortcut" to get the same query in the future.

      Lastly: Intelligence is knowing the right answer to a question. Wisdom is giving the right response to the whole situation.

      --
    10. Re:no, no, no by Anonymous Coward · · Score: 0

      Being someone who has recoded quite a bit of BASIC code into ASM, the entire example you gave can be represented in BASIC with this line:

      I% = I% * 16

      If you want to get rid of those ugly "%" then but a DEFINT A-Z at the top of your program.

      DEFINT A-Z

      I = I * 16

    11. Re:no, no, no by ThousandStars · · Score: 1
      (Like the academic who said JK Rowling wasn't a great writer...)

      She's not, if by great you mean she broke new ground in writing or accomplished aesthetic feats with language. She's also not if by great you mean she achieved something new in her genre, or that she made a contribution to literature that is likely to be enduring. Harry Potter essentially just uses the classic Romance structure to tell a fairly straightforward adventure story that doesn't do much philosophically or artistically, which is why most academics aren't much interested in it.

      If you define "great" by sales figures, then you're right, although most academics don't use such metrics. If you define great as getting people to read, then she certainly was. But academics are seldom concerned with such things.

  50. Go to the ends of the earth for employees by rodney+dill · · Score: 1

    As commercial software products have matured, it no longer makes sense for organizations to develop software from scratch.

    ...not unless they can outsource the work to India or China or some other low cost provider.

    "Some companies go to the ends of the earth for their people... and usually find that they can get them there at a substantial savings."

    --

    Use your head, can't you, use your head,
    You're on earth, there's no cure for that
    - S. Beckett
  51. cheaper hardware makes software seem to cost more by dropadrop · · Score: 1

    I think servers becoming cheaper and cheaper is also affecting how eagerly companies are willing to adopt their needs to a ready package. It used to be that the hardware required to run an application and it's testing environment was so expensive that getting a custom coded application didn't feel out of line.

    Most of the legacy systems we run are on either mainframes or distributed among a bunch of HP or Sun risc servers which each one cost over 10 times more then the far more powerfull computer replacing it.

  52. computer science isn't dead by seriouslyc00l · · Score: 2, Interesting

    Computer Science isn't dead. Some old computer scientists are dying. And new ones are being born. By the dozens. In the west, and in the east. Yes, jobs migrate by rules of economics. That doesn't kill the science. Because what migrated was not science - it was bricklaying of the computer age. If computer scientists were to do the "bricklaying", that would kill the science. Having said that, there are bricklayers in every community - east or west. It's a pity that bricklayers from the west have had to see their jobs move east. Sorry, but that's how the rules of economy work. The real scientists, whether they are from the east or west, stay put where they are, doing what they like doing best. The invention of concrete mixing machines did not render civil architects extinct - on the contrary, it made it necessary to have more of them, and to have better ones. And so it is with software. Off-the-shelf software doesn't make software engineers obsolete - it makes it possible to explore new application areas - and this requires more and better software engineers than before.

  53. The answer is to change the courses by jonwil · · Score: 1

    If they had courses covering the sorts of skills you find in modern software development shops (or at least in the GOOD software development shops), maybe this wouldn't be an issue.

    Skills like code inspections, documentation of your changes, configuration management and so on.

    1. Re:The answer is to change the courses by tomstdenis · · Score: 1

      I think those are different directions though. At most a comp.sci degree should have a course on CVS/GIT, documentation, etc nothing more.

      Should also point out that many different companies have different "standards" as far as development goes. So it's more important to understand the concepts than the actual fine point.

      And frankly, nothing substitutes for experience. Comp.sci students should be encouraged to start OSS projects, maintain, and document them. If they started something like that in their 1st or 2nd year, by time they earn their masters they should already have a decent pile of experience from the real world.

      --
      Someday, I'll have a real sig.
  54. Better tools to understand the theory by Anonymous Coward · · Score: 0

    I used to teach the Algorithms course. We used Python, and the difference to the old days was drastic. The students understood the basic sorting algorithms, building trees etc at least twice as fast as they used to when we used C.

    Besides, they learned it way better. At the old days what they eventually remembered was a bunch of tricks to use when programming in C. Most of these tricks were downright harmful when switching to another languages or paradigms.

    C, Assembler and stuff are something to learn after you've grasped the basic theory and ideas of programming.

  55. CS not dead, but CS not IT by Anonymous Coward · · Score: 1, Insightful

    CS is not dead. There are plenty of interesting fundamental problems to be solved in the area of computing.
    But indeed, most IT people don't need a CS education. The current CS curriculum should be split into a pure CS curriculum and an IT cirriculum. CS should focuus on subjects like computation and computer organisation. IT should focus on information processing and application development. Ofcourse, there will be overlap between the two fields, and overlap with mathematics and other science diciplines, depending on what area you wish to specialise in.

  56. Computer Science isn't dead, merely evolving by hejog · · Score: 0

    Computer Science has always been just a subset of Mathematics, its slowly shying away from pure mathematica and into actual development, real world problem solving and such. Stuff like group work, Object design, Networking Tools, C++ are useful tools in 90% of environments a Computer Scientist is likely to work in.

  57. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  58. 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.

    1. Re:Computer Science "is too hard" by SOimafreak · · Score: 1

      That sounds like the same problem we have now In uni (i'm a 4th year CS student) The university is taking on far too many people that have no skill, or the wrong skills to be doing computing. I.E. Taking on people that have English, History, Goeography and Drama A levels. In my opinion CS should be reserved for thos that have done things like Maths, Science, Computing, IT or some other technical qualification. It really is a joke, for the first 6 weeks of this semster, my last semester, we were taught what HTML is. To be honest I'd expect an entrant onto the course to already have that knowledge. The constant having to lower the boundaries to accommodate for people that don't have the right skills already, or should i say the appropriate pre-requisites to do the module. Just lowers the general standard of the course. I wouldn't be pushing it too far to say that 50% of my year if not more will get a 2.2 or less, and this is with a course that is far too easy as it is. The types of skills coming out of CS degrees now are very limited, certainly don't expect your CS grad to be able to program well, know what HTML is or even understand what a tcp/ip handshake consists of.

    2. Re:Computer Science "is too hard" by TobascoKid · · Score: 1

      for the first 6 weeks of this semster, my last semester, we were taught what HTML is.

      One of the things that annoyed me when I was doing a CS degree was the level of "basic" knowledge that we had to go through. I still remember first year when everybody (including the lecturer) was bored beyond belief by having to go through such things as what a for loop was. I always thought it was like the Arts faculty having to teach people to read. I thought it was bad 16 years ago, but sounds like it's gotten worse.

      --
      At some point, somewhere, the entire internet will be found to be illegal.
    3. Re:Computer Science "is too hard" by Anonymous Coward · · Score: 0

      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. That sounds kind of scary. I'm study Mathematics (not with CS) and we had the option to do a C++ course in 2nd year. That course covered OO, pointers, linked lists etc in the context of SDL (though only 2D stuff) ... is my university really pushing us, or are other universities being too light on their students?
    4. Re:Computer Science "is too hard" by dropadrop · · Score: 1

      That sounds really strange. I study computer science (on the side) in Finland, and during our first year the studies included one general course (mainly intended for people doing a minor) which was very basic. The rest of the courses included 2 courses of java, one on relational database basics, one on designing programs. This was followed by a pretty thorough course on networking, another database course and a course for designing and programming a Java web application using servlets that uses oracle as a database.

      I'm not sure how much would actually be included in "the first year" for a full time student, I work full time so I'm pretty slow.

      Almost all the courses are very theoretical though. It works well doing it on the side of a related job which is pure practice, but I understand that most of the students are pretty lost if their only source of information are the courses.

  59. This seems awfully familiar... by Sits · · Score: 1
  60. Far from dead by Psx29 · · Score: 1

    I don't even want to try understand what exactly was going through this persons head to make a statement like that. All I know is that computer science is far from dead, it's just out of the limelight. A few years ago people were throwing money around like crazy and everyone knew someone who was in CS. I almost ended up majoring in CS in my university, but quickly came to my senses as the last thing I want to do is spend more time on the computer than I already do...

  61. End of the line for YOU by Anonymous Coward · · Score: 0

    The old generation needs to look to a new generation, to new approaches. The focus is moving away from system construction. The jobs are in the application of technology. There is a need to be closer to the application, closer to the user, to replace a reductionist, convergent discipline with a complex, divergent discipline.

    I can imagine current 'old generation' geeks clutching their platters with a death grip while holding close a fly swatter for any rogue (real) bugs. Ah... when computers were a few rooms big...you could heat Manhattan! But the catalyst of technology is not moving bits and bytes it's moving people and ideas. Sure, those things came up along the way to crunching massive numbers but that's not why they became and evolved. I can remember from a movie(featuring Alan Kay) about the 'future' of computing and it all involved people using the computer without knowing anything about the ISA, memory, hard drive, or even cpu; basically anything related to how the underlying structures are supported. This is still the 'future' of computing and technology in general. We should not think of CS as some academic mumbo-jumbo but as a real way to solve problems(like math). And there is always a demand for problem solvers.
  62. Listen to these dudes by DingerX · · Score: 4, Insightful

    Parent, and ABG below. It's true for just about every undergraduate field.

    Undergraduate education has a few factors that drive the curriculum: one is enrollment (make it too hard, and nobody shows up; require everybody to take it, and everybody has to pass it), another is vocational preparation (what does the job market demand? or -- mixing enrollment and vocation -- what do the students think the job market demands?). The folks doing the teaching aren't really interested in either of these, and nor are the "good students".

    The "vocational" side of university education has always been there, and it's always been looked down upon by the really sharp people. And, you know what? In spite of the political rhetoric you hear around the US and Europe, the students who "Hit it out of the park" career-wise, the big successes, the Googles, Netscapes, Yahoos, Nokias and so on, aren't the ones who stick to a vocational curriculum. The ones who just did what the course told them to do are the guys who end up seeing their Technical Support jobs get outsourced.

    The "enrollment" issue is even more pernicious. No department wants to lose students -- since students are tied to money and power in the universities. So if a subject gets "less popular", the curriculum gets "easier" to boost retention.

    University courses, like other forms of professional formation, do teach a major professional skill: that to achieve results you need to be willing to do lots of crap-work, and that a good job involves doing boring stuff much of the time.
    Outside of that, the true strength of universities is that you're given some good resources to play with, and are surrounded by smart, curious, interested people. Find your passion, pursue it, and don't sweat money or jobs. Any employer you'd want to work for will recognize your abilities.

  63. It's not dead, it's dormant (for now) by JetScootr · · Score: 1

    I've had to train "Computer Science" majors in some of the most basic programming skills and concepts. Click and drag VB? OK, no problem. Build an Access database with the query builder, even normalizing tables correctly? Got it. SQL? If I hear one more noob coder say "SeeeeeKwuuull" I'll rip his lungs out. Anytime I hear "seek wool" instead of "Ess Que Ell" I know I've got my work cut out.

    I love programming, especially the true science aspects of it - the math, the form and style of well-built code, etc. There's still a wide frontier there. What's happening is that the monoculture has narrowed down how many people can access the frontier. Only a few hughmongocorps run most of the industry and most of the product development. The only real leading edge stuff that goes anywhere is what the big guys want, or what fits in with their limited vision. The rest of the programmers in the industry have monkey jobs pushing buttons, clicking/dragging, developing cookie-cutter apps that are all the same.

    The only really creative work I get to do is as a hobby, on my own. Why? Cuz what I want to do, M$ doesn't make a toolkit for. I think many youngsters look at the state of the industry, not the state of the art, and see that it's a piece work industry, like machine shops, only not as cool.

    --
    Pavlov wouldn't be so famous if he'd used a can opener instead of a bell.
    1. Re:It's not dead, it's dormant (for now) by faragon · · Score: 1

      I feel a similar sensation in Spain, where I live and work. To be honest, my main preocupation is not related to the CS demand, but the inminent spanish economic recession (we also have a huge risk of real estate bubble bursting).

  64. Academias monopoly on CS is dying. (Halleluja!) by Qbertino · · Score: 2, Interesting

    CS isn't dying. Academias monopoly on CS is dying. Forging swords was an experts job 400 years ago. Now it's a hobbyists thing. I may not know my way around memory allocation that well anymore, simply because my last three PHP customers and I couldn't give a sh*t, but I did opcode/assam programming 20 years ago (to control single dots on my sharp handheld screen) and the book I need to learn C in and out again is resting on a shelf two meters away.

    CS is sort of becoming a science like philosophy. There are people who study it and earn money with it, but anyone half way interested can join an educated discussion with them on the topic. And, on top of that, the experts view on the topic usually is quite strange and outside of common sense. You'll find tons of Wittgenstein crackpots at academic positions simply because they dig mental masturbation as a dayjob. The Schopenhauer guys all have occupations that are more 'real'.

    Nobody takes a guy serious anymore ranting about how this PL is worse than that and how Java sucks and real men use C or PHP is for sissies and Ruby is cool. They don't even want to hear from me that Zope still is lightyears ahead of Rails ;-) . People want the job done. And move on.

    Point in (simular) case: Nowadays nobody (not even academics) - except maybe a few people who build satellites and stuff - gives a rats ass if x86 sucks or not. It has won. Period. And I bet unemployed non-x86 hardware guys tell you how crappy it is if you give them some change and a warm dinner.
    If some kid in india who's read a copy of Kernighan & Ritchie can solve my low-level problem with some Linux module that's getting in my way, I don't give a hoot wether he's an academic or not. Yet I bet he's got a simular skill kit of one.

    Bottom line:
    Computers and their science have become mainstream and are slowly moving out of their steam age. Get with the programm.

    --
    We suffer more in our imagination than in reality. - Seneca
    1. Re:Academias monopoly on CS is dying. (Halleluja!) by softwaredoug · · Score: 1

      Computer Science suffers from its history of being portrayed by its practitioners as this mystical dark art. I beleive it has gotten to the point that those with the purse strings have become fed up with the sort of ivory tower attitude we software folks tout around. On that point, this ivory tower attitude means that we have way too many technologies out there. Everyone wants to create a new paradigm, language, experience, whatever that is *the* Silver Bullet. Programmers want to demonstrate their ability to reinvent the world with software. Someone or some group comes up with pratice /paradigm /language / religion X and must defend X until their dying breath. Meanwhile all their work has, when all is said and done, only created typically 2% signal and 98% noise. The non-experts (customers bosses, etc) get easily confused, and cannot differentiate between signal and noise. They get jazzed up about some idiotic thing or easily seduced by a zealot of technology X. Meanwhile what they really have is their head full of buzzwords and half-thoughts meant to sell X. There's so much different stuff out there that how could anybody keep up? Some folks here have complained about how kids coming out of college aren't "up to date". What they really mean is they don't know technology X. Well I have a CS degree and odds are I have never seen technology X. I could spend a lifetime and never truly be "up to date" in Computer Science. The true test of someone with a degree (**especially** in CS) is not to know technology X, but to be able to learn about and evaluate technology X to do something useful based on a customer/end-user/someone's need. In the end we programmers are and should be engineers (not scientists, not salespeople) that must take choose a technology and make it work for somebody. Sometimes this means absolutely no programming, other times it involves quite a bit. Sometimes the simpliest thing is to write a C program, sometimes its a little php script, sometimes its a bash script. In any case, to gain a reputation as a discipline of engineers, we must get over ourselves as inventors of a new Tron-like world, the zealots must be ignored, and rational evaluation of technologies to create real-world tools for real people must be first on the list. Maybe one day anyone will be able to just point and click and create any tool that they think of, until then I highly doubt the need for programmers will go anywhere.

  65. The guy who wrote this article is retarded... by rbarreira · · Score: 3, Insightful

    Neil McBride says computer science was populated by mathematicians and physicists but now virtual robots can be created by eight-year olds without needing programming, logic or discrete mathematics skills.

    1- even if that's true, the 8-year old won't do anything revolutionary without knowing the details
    2- even if he could, it would probably be just a toy, not something usable in practice
    3- even if it was usable in practice, someone else with more knowledge could do something better
    4- etc etc etc

    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.

    Civil engineering has lost its mystique. There is no longer a need for a vast army of civil engineers. Apartments and houses that civil engineers once built laboriously in final year projects are bought at internet websites and real estate agents.
    --

    The AACS key is NOT 0xF606EEFD628B1CA427BEA93A9CA9773F
  66. Not a new idea, really, is it? by Anonymous Coward · · Score: 0

    Rob Pike said it rather more elgantly, as usual, in his Systems Software Research is Irrelevant paper. Seven years agi, too!

    See Slashot for a discussion...

  67. We're done; let's all go home now. by eludom · · Score: 1

    I guess off-the-shelf applications develop themselves with no need
    for training, skillks or creativity and that we've also developed
    the premier versions of all the classes of applications that will
    ever need to be developed.

    ---Eludom

    1. Re:We're done; let's all go home now. by Anonymous Coward · · Score: 0

      This is quite laughable. I had a history professor 24 years ago once ask the students if anyone was a Computer Science major. A few people raised their hands. He then proceeded to tell them that they should consider another major since now computer programs were writing themselves and there weren't going to be many computer jobs anymore (this was 1983).

      Plus ca change, plus c'est le meme chose.

  68. Good riddance by Flambergius · · Score: 2, Insightful

    More changing than dying.

    There are problems. From my point of view (*), the typical graduating student is falling behind. It has always been that young person entering the ICT field professionally has had a lot to learn regardless where he got his decree. Right now that knowledge cap is bigger than it has ever been in the 10 years that I can talk about from experience. I see two main reasons for this. First, there simply is more to know. Basic skills like discrete math and coding aren't enough. You need at least strong design skills or a near mastery of a specialty. In fact, if you can't know all it makes more sense to know a specialty. Four or five years you have in college is not long enough except for the most gifted students. Second reason is that ICT is in fact changing and education has been slow to respond. ICT is now more conceptual than before (some other people like to talk about "information intensive vs. data intensive", I think they mean the same thing :-)). The required skill set in changing too: coding is losing out and modeling is winning.

    Of course, in absolute numbers people will write more code in future than now. It may even be that the absolute number of people working mostly in coding will remain relatively static or even increase a bit, but I do think it more likely that number of coders in decrease at least moderately. In any case it is fairly certain that, relative to non-coders in ICT, the number of coders will decrease significantly.

    As to "computer science dying", well, it should have "information science" to begin with. So, in a sense, good riddance.

    (*) ICT within FE, lot of contact with student (comp.sci projects), lively but informal connections to industry, work hard to keep myself up-to-date. I would say I have pretty good view.

    --
    Computers are useless. They can only give you answers - Pablo Picasso
  69. Dead? No. Changing? Yes by UncleOwl · · Score: 1

    I'd say (like many others before) that death is quite far away. But it is changing - as it in fact has always done. IMHO, the following trends are notable:

    • CS => New Media (to use the buzzwords). More network-centered, perhaps more stress on 'softcore' IT
    • the increasing ubiquity of IT, move towards 'networked society' (yes, I'm an optimist...)
    • increasing role of F/OSS and subsequent rise of hybrid business models

    One could also speculate the increasing confusion in the current hardline IP system and its possible collapse in near future which would have profound impact on computer science too. And in case of prevailing free/open-souce model (I am quite sure that the proprietary model won't disappear completely, but becoming a niche method is likely) the result will probably be quite opposite to what is suggested by the article.

  70. no, but the British Computing Society apparently by nanosquid · · Score: 1

    '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. Computer science isn't about educating people to become programmers, and has neer been. If the Britisch Computing Society has viewed itself as a society of programmers, or for programmers, that simply means that they have nothing to do with, or say about, computer science.

  71. Is Smelting Dead? by theonetruekeebler · · Score: 2, Insightful
    'As commercial metal products have matured, it no longer makes sense for organizations to develop iron from scratch. Cutlery, structural I-beams, sheet metal bending systems are the order of the day: stable, well-proven and easily available.' Is that quote laughable?

    Well, yeah. All my years working in tall buildings, and I never once panicked that the builders didn't know how to smelt, or that maybe they took one metallurgy course in engineering school but have forgotten everything about it except "don't drink incandescent liquids."

    Yet the whole world is made of stuff that was, at one point, smelted.

    What we're seeing is a new level of abstraction, with a much steeper amplification curve than ever before: The work of a very few extremely expert people becomes the building blocks for the work of a relative few very expert people becomes the building blocks for the work of a slightly few relatively expert people becomes the building blocks for the work of relatively many ordinarily skilled people becomes the building blocks for everything everybody else uses. There enough layers between the person the guy designing the circuit traces for a chip's sign-extended add instruction and the guy writing an Excel macro that one chip designer can support the work of hundreds of millions of others. Compare this with the mid-1960s when the guys writing the accounting package could walk into the machine room and physically rewire the machine to make sign-extended adds work faster with odd numbers.

    Computer science is not becoming dead. But it is becoming more focussed and more niche-oriented. There are so many things one can do with a computer without a CS degree that the lack of one is not a universal barrier, if it ever was. My last analogy for the day is the automobile factory. There's an assembly line in there full of people making cars, who have never even heard of smelting, have no comprehension of what makes gasoline burn one way and diesel fuel another, and would be utterly hopeless designing the ideal valve geometry, a whole industry full of people without the slightest clue about extractive metallurgy, yet here we are with hundreds of millions of rock-solid, reliable cars on the road.

    --
    This is not my sandwich.
  72. Not surpised by Anonymous Coward · · Score: 0

    Innovation does not happen in monopoly, Stupid!

  73. I sure as hell hope not... by aaaurgh · · Score: 1

    ...'cos if it is then so am I!

    --

    Go permanent? In your dreams and my worst nightmares.
  74. Engineering and Science by Tom · · Score: 1

    No, we just see the usual split between engineering ("get it working") and science ("how does it work?").

    And to be honest, the engineering aspect has a long way to travel. Software quality is horrible and worse yet: Random. Very few development groups even have a process for the development itself, much less quality control. Writing a spec and starting to code isn't a process. UML isn't a process. Pseudo-code specification isn't a process. Throwing fancy buzzwords around to cover your lack of process isn't, either.

    Zero-Defect Software Developmentor NASA's shuttle software group are beginnings. What they do is try to understand and improve the actual development process.

    --
    Assorted stuff I do sometimes: Lemuria.org
  75. The computer is old enough.. by juletre · · Score: 1

    "Back to the memory allocation point. I currently know of no final year students with a decent understanding of this topic, and yet it is the main cause of security problems in code. They should at least have a working knowledge."

    I feel the computer is old enough to manage its own memory.

    There is a lot of things programmers don't do any more. One of them is writing asm. And why is that? Because schools don't teach asm as CS courses or because someone wrote a new language and a compiler for it? Suddenly people could learn memory allocation and integer multiplication without knowing asm or the details below.
    As someone once saw that creating c/other languages could leave asm for the specially interested, someone thought that a language with built in memory handling would be a good thing and leave memory handling to the specially interested.

    --
    "he, who has quotes in his signature, is a douche" - unknown.
    1. Re:The computer is old enough.. by rucs_hack · · Score: 1

      ok, but who would design the system for a computer to allocate its own memory? Do you have any idea how complex a task that would be?

      It's a nieve point anyway. Computers are not 'old enough' for that. The only things that can are languages running on VM or interpreter. They still do not assure that no memory errors will occur, and often have a huge overhead in background processing that prevents their use for high speed applications.

  76. It's the same story everywhere by Dekortage · · Score: 3, Insightful

    It's hardly just CS. My major in college was studio art -- printmaking, illustration, photography, and graphic design -- and I've been a professional graphic designer for 20 years+. People just don't need the same kind of designers anymore. Advancements in technology have made most graphic design tasks really easy, really automated. I bet most people reading this post think they can "do" visual design, when in fact they simply happen to own Photoshop/GIMP and some other graphics apps and some snazzy clip art off of iStockPhoto.com. I bet you can even create fliers or web pages that don't look awful; with a good template, they might even look good. But you still don't have a true understanding of color theory, typography, layout, negative space, photo manipulation, and all the other skills that make a good, creative, original designer. But these advancements in technology have led directly to the decline of art departments around the country (and the rise of smaller, higher-quality art schools such as Parsons, School of Visual Arts, RISD, etc.

    This is completely analogous to supposed "CS" majors who don't understand efficient coding, memory allocation, reusable code, storage optimization, security models, etc. And heaven forbid they try to do interface design (which is the best marriage between visual design and software development). They may be smart enough to piece together some Java or C# clips off the Internet into a program that, technically, produces the proper data output, but that's it.

    --
    $nice = $webHosting + $domainNames + $sslCerts
    1. Re:It's the same story everywhere by Krater76 · · Score: 1

      And heaven forbid they try to do interface design (which is the best marriage between visual design and software development). They may be smart enough to piece together some Java or C# clips off the Internet into a program that, technically, produces the proper data output, but that's it.

      I'm glad someone has said it.

      I'm a UI engineer in my career, educated as a software engineer. I am in no way a graphical designer, but I do my best, having taken many classes and read many books on UI, graphics, layout, HCI. While I understand why (lack of funds, its a startup), my company won't hire a graphical designer to help out with the things I need help with even though I feel this is very important.

      People just don't have 'it' sometimes and I have to actively ban them from creating UIs. A lot of engineers think of just data in/data out and that's not right, it's about presentation. Honestly, our company wouldn't be were it is without me pushing back on a lot of poor visual design choices. And that has unfortunately made me a very unpopular person around the office, even though I've helped the bottom line instead of hurting it.

      Screw it though, I won't be responsible for something that is visually unappealing and difficult to use.

      --
      "Is life so dear, or peace so sweet, as to be purchased at the price of chains and slavery?" - Patrick Henry
    2. Re:It's the same story everywhere by Dekortage · · Score: 3, Insightful

      I won't be responsible for something that is visually unappealing and difficult to use.

      Good to hear. I've been the UI designer on several programming projects. It is usually a tough battle to convince programmers that data output needs to be more than correct -- it needs to be useful as well. As with any kind of engineering, the amount of effort required of the user is inversely proportional to the amount of design required of the developers. If you want the user to spend a lot of time figuring out what the interface or data means, then don't worry about the interface. If you want the user to spend only a little time getting what they need, then you need to do a lot more work to make sure the data is clear, the interface is simple, and the user's time is optimized.

      In the end, a bad interface will make people believe your data is wrong, even if it's not.

      --
      $nice = $webHosting + $domainNames + $sslCerts
    3. Re:It's the same story everywhere by Krater76 · · Score: 1

      In the end, a bad interface will make people believe your data is wrong, even if it's not.

      Amen.

      --
      "Is life so dear, or peace so sweet, as to be purchased at the price of chains and slavery?" - Patrick Henry
  77. Computer scientists die too you know by Anonymous Coward · · Score: 0

    While many things have been learned and documented, the people who found out are getting old or are dead. The present inventors and teachers of computer science disappear when Reaper Man comes, and the concepts they introduced are mostly implemented in proprietary binary files, so it's not that easy to relearn from scratch by the intelligent student from off-the-shelf software. Without CS students, how can we uphold the present knowledge or enhance computation in the future?

  78. Computer programming is hard and boring by majortom1981 · · Score: 2, Interesting

    I think it will have problems in the future. I tired being a comp sci major. Porgramming is hard tedious mind numingly boring stuff. Most people realise that ,Unles syour into that sort of thing nobody in their right mind would do it. thats why their will be a problem in the future.

    1. Re:Computer programming is hard and boring by Anonymous Coward · · Score: 0

      [...] I tired [...] Porgramming is [...] numingly boring [...] Unles syour [...] thats [...] their will [...]

      Well yes, if you can't even bother to think while writing, I can see that any science will be too hard.

  79. Depends on what you want to do by Paulrothrock · · Score: 3, Interesting

    You wanna do research-level computing? You want to design and create brand new ways of computing? You want to work on AIs? Get a degree in CS.

    If you want to code or do networking or project management, there are plenty of other courses out there that'll give you a much better education for that sort of job.

    What happened towards the end of the dot-com boom is that people started to realize that CS wasn't exactly right for generating code monkeys, and colleges started offering different types of courses to fill these positions.

    --
    I'm in the hole of the broadband donut.
    1. Re:Depends on what you want to do by tomstdenis · · Score: 1

      How do you plan to test those new comp.sci theories unless you can implement them?

      How do you plan to maintain those implementations unless you have practical experience?

      You can both develop software during your CS degree AND not consider it a waste of time. I'm sorry, but just because you know 30 different sorting algorithms, can multiply sparse matrices quickly, and design a stable neural network to play checkers, doesn't mean you can develop worth a damn. And very few places are interested in people who can't develop. In the practical world, comp.sci helps you become a better developer, in much the same an English course helps you communicate gooder.

      I agree that many CS degrees are sidetracked by language issues. Java/C++/etc should be a semester long course. After that it should be expected that students will test their comp.sci knowledge in whatever language is appropriate, learning the syntax/etc as they go. Unfortunately, expecting the students to be responsible to research on their own is almost a crime nowadays...

      There has to be some form of balance between the two. You can't do comp.sci with no programming (unless you don't plan to work for a living), and you can't do comp.sci by only focusing on the minute syntax details of a dozen languages.

      Tom

      --
      Someday, I'll have a real sig.
    2. Re:Depends on what you want to do by ClosedSource · · Score: 1

      "You want to design and create brand new ways of computing?"

      What "brand new ways of computing" have computer scientists created in the last 20 years?

      "You want to work on AIs?"

      What significant accomplishments in AI have there been in the last 30 years?

      If these are the only reasons for a CS degree, no wonder it's in decline.

  80. Computing Disciplines by LordLucless · · Score: 5, Insightful

    One problem is that the computing disciplines have become intermingled and are often used interchangeably. Let me outline my definitions:

    Computer Science: This is the theoretical, researchoriented discipline. It deals with developing new algorithms, optimization and that side of things.
    Software Development: This is the application side of Computer Science. It takes the algorithms developed by CompSci and makes useful applications out of them.
    Information Technology: This is the techie discipline. Building computers, setting up networks, administrating systems. I'm not sure why it got that name, but it seems to have.

    The problem that this guy has is that he has conflated Computer Science and Software Development. And it used to be the case that they were pretty much mixed - if you wanted to program, you needed to understand all the theoretical stuff yourself. But in these days of large, freely-available libraries and modular software design, the two have become very distinct disciplines.

    It's not that Computer Science is dying out; it's that it has subdivided into two separate disciplines, and of the two, there is a much greater demand for Software Developers than Computer Scientists.

    --
    Just because you're paranoid doesn't mean there isn't an invisible demon about to eat your face
    1. Re:Computing Disciplines by Lord+Bitman · · Score: 3, Insightful

      To rephrase:
      "Research", "Design", "Practical Application"
      Computer Science looks into things which are not immediately practical.
      Software Development takes those ideas and makes them practical
      Information Technology applies the technology developed by Software Development on real data (ie: information)

      But then, by those definitions I'm just an I.T. guy, so that's no fun :\

      --
      -- 'The' Lord and Master Bitman On High, Master Of All
    2. Re:Computing Disciplines by Anonymous Coward · · Score: 1, Interesting

      Indeed. From the post:

      '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?"

      The author of the post seems to have already come to the conclusion that a stabilized soft. dev. industry implies CS is dead. As a CS researcher in academia, I can tell you that off-the-shelf software is an awesome thing to have available, but by no means implies we are done. Having easy to use software makes the day to day stuff much less of a pain than it used to be. However, unless people think Excel or their HR department's time scheduling package is going to solve cancer, build robots, understand the human brain, pre-order pizza on poker night, find new sources of oil, track identity theft, extract captions from raw images and video, improve your laptop's battery life through software efficiencies, ........

      Building accounting software is trivial for a computer scientist, the tax domain comes with a well documented set of rules, and they are already based on numbers.

      Computer Science is not dying at all; rather, it has become so important that is rapidly spreading out to all the other sciences, where now any professor in any science looks very carefully at any grad applicant that has programming ablities. Just like math is a pre-req for any undergrad science major, basic computer science will eventually be the same way.

      Computer Science is as dead as Calculus.

      My belief on the decline of CS majors, besides the media scaring people away from fear of India, is that people are more interested in solving problems that actually matter. With the CS fundementals solved, or deemed too difficult for all but the exceptionally high calibur (which is the current state of mathematics), people are looking to contribute to open problems that they can make a difference on personally. This is a GOOD THING. Why be sad about the fact that another generation of students will not be slogging away at building web servers and the like? Instead they might help you, yourself, live longer, healthier, happier. And as I said, CS is involved in all of this, so its not like we get just one or the other.

    3. Re:Computing Disciplines by coolmoose25 · · Score: 2, Interesting

      I agree with your analysis that Comp. Sci. has divided from Software Development. I was not a CS major in school - I was a Mech. Engineer. But I got into CAD systems design, and ended up in the software game. So now, I'm a "Senior Software Engineer" but I have no formal training in CS other than the fact that I had to code Fortran for 4 years in college. We learned bubble sorts, and all that jazz, but I have no idea how a compiler works other than it takes what I write in VB.net and turns it into something the computer can execute. However, the point of the article is that BOTH CS and Software Development is dead. Just buy a package and your troubles will be over. Frankly, I wish I could have just 1/10th of what the companies I've worked for have spent on packaged solutions. For that price, I could have built, by myself, a custom package that would do EXACTLY what they want, and I would have become rich in the process. Instead, I get paid a lot of money to cobble these disparate systems together, make AS400 green screen apps talk to fat client software, I write all the stuff that pulls them together, and if we are lucky, and I'm good, it all works... mostly. So why do companies do that? Because it simply MUST be cheaper, of course! /laughing maniacally

      --
      Brawndo: It's what plants crave!
    4. Re:Computing Disciplines by nine-times · · Score: 1

      Your definitions are good, but when I went to school, a CS degree meant basically that you learned how to program. Apparently. You'd get kids coming out of school knowing nothing about computers except programming and a little theory.

    5. Re:Computing Disciplines by Lord+Bitman · · Score: 2, Interesting

      In my experience, a CS degree means no such thing :/

      --
      -- 'The' Lord and Master Bitman On High, Master Of All
  81. Re: Accounting Packages by TaoPhoenix · · Score: 1

    There's a tradeoff between "best that can be done" and "Get it to market".

    I think I'm seeing more companies using their sales force to cover for the Next-To-Finished versions of software. These are High-Beta / RC level packages that draw on two years worth of initial sales to fund their completion.

    Someone in management may decide "our company needs to be positioned *here*", for your choice of some niche and year. In all but the extreme cases (Vista is an extreme case), the paid advertising floats around the media-space, while glitches caused by sludgy design are hushed up inside each end-user company.

    No, CS isn't dead because we don't need people to hand-mark the errors on punch cards anymore. Open Source has a million open tasks for CS types to volunteer on, and classical Closed Source houses may be approaching the consolidation period necessary to back the hype of last year's sales push. Code streamlining requires high grade CS, but isn't "Exciting".

    (Example: Sloppy CS reared its ugly head on the Street, because the primary computer fell behind processing a "mostly ordinary" run on asian stocks and/or commodities. The time delay caused artificially induced damage, which got amplified even more in the media-space.)

    --
    My first Journal Entry ever, in 8 years! http://slashdot.org/journal/365947/aphelion-scifi-fantasy-horror-poetry-webzine
  82. Kind of... by Cctoide · · Score: 1

    Computer Science is dying, Netcraft confirms it.

    --
    "Let's face it, it's a good story. Accuracy would kill it."
  83. Is Movie Business Dead? by Anonymous Coward · · Score: 0

    An academic at the British Movie Society asks, Is movie business dead? Citing falling cinema visitors and improved copy&paste technology, British academic R. McDonald claims that existing movies are removing much of the demand for high-level acting skills: 'As existing movies have matured, it no longer makes sense for studios to create new movies from scratch. Action movies, Drama movies, p0rn movies are the order of the day: stable, well-proven and easily available.' Is that quote laughable? Or has the movie industry stabilized to an off-the-self commodity?"

  84. !O_o! by Anonymous Coward · · Score: 0

    OH NOES! MY FUTURE!!!

  85. an analogy by luckyguesser · · Score: 1

    I haven't RTFA or any of the comments really, so I'm sorry if this is OT or repetitive..

    It seems to me that computer science has evolved kind of like the auto industry. Here's what I mean.
    When cars were first mass-produced, you pretty much just had the people that made the cars and the people that drove the cars (i.e. programmers and users). After a while, people started building race cars, and then some drivers became professional race car drivers (i.e. top-level programmers, super-users, etc.)

    However, to say that CS is dead is akin to saying "We don't need to know how to build cars anymore, because we have professional race car drivers!"

    --


    The power of Christ compiles you.
    A Random Blog
  86. In other news... by PainBot · · Score: 1

    "Some guy wonders if Automotive is dead. His argument is that everything needed in a car has been created, so what more could we need ?"

  87. Fortran dead ? by aepervius · · Score: 1, Offtopic

    Fortran is about as dead as scientific research on massive parallel calculation is. Most scientific I know only use Fortran package and certainly not C certainly not Java. Sure the compiler might use f2c or what not, but everything in Quantum Research as far as I know is done using fortran math lib and fortran programs.

    --
    C. Sagan : A demon haunted world:
    http://www.amazon.com/gp/product/0345409469/
    visit randi.org
  88. Asimov know this in 1957 ... by KlaymenDK · · Score: 1

    Once again, I am reminded of Asimov's novel "Profession".

    http://www.abelard.org/asimov.htm

    That site is as visually noisy as I have ever seen. Apart from that, it's a very good story.

  89. Jan 22? by frostedg · · Score: 1

    Can you please find older articles, 2 months is too new. Jeez, this is news?

  90. know = knew by KlaymenDK · · Score: 1

    Err, typo.

    Aye due no haugh two right, I am shore your pleased two no. ;-)

    1. Re:know = knew by botik32 · · Score: 1

      Thank you, I read this story as a kid, but could not remember the author or the name. Now I found it. Great story : ))

  91. Is the Britisch Computing Society dead? by Anonymous Coward · · Score: 0

    Nice: Ask a stupid questions (Oh, sorry. Forgot: stupid questions do not exist...) and get a lot of attention.

    And I do _not_ mean this posting ;)

  92. an idea by ShadowHywind · · Score: 2

    Perhaps the falling CS enrollment is due to the fact that no one wants to do that much math. who needs to take 4-8 math classes for web design and simple programming.

    1. Re:an idea by Reservoir+Penguin · · Score: 1

      Someone who likes math? And why would anyone go to college in the first place when they can learn "web design and basic programming" from a book in less than a year?

      --
      US-UK-Israel: The real Axis of Evil
  93. For flips sake by hauntingthunder · · Score: 1

    De Montfort is ranked last but one in the UK University rankings less credability than capn' Cyborg

    --
    You will never get to heaven with an Ak 47... But A Zu 30 is good for Low Flying Cherubim
  94. Changes by DaMattster · · Score: 3, Informative
    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.

    1. Re:Changes by 26199 · · Score: 1

      ???

      More than just software engineering? When was Computer Science ever software engineering?

      It's a science. Software engineering, well, that would be engineering, at best...

  95. No such thing as "Computer Science" to begin with by megahurts.gr · · Score: 1

    I am surprised that so far nobody has quoted Edsger Dijkstra who is said to have said "Computer science is no more about computers than astronomy is about telescopes." In other words, the term "Computer Science" is exactly as absurd as it would be to call Astronomy the "Telescope Science". So, dead? certainly not. In need of another name? I am afraid, yes. "Information Science" sounds good to me, as it nicely complements the "Information Technology" that another chap mentioned.

    --
    This guide is definitive. Reality is frequently inacurate. (from THHGTTG)
  96. "Clue" Answer by rlp · · Score: 2, Funny

    I think it was the CEO in the boardroom with an outsourcing contract.

    --
    [Insert pithy quote here]
  97. Just the evolution of the field by asc99c · · Score: 2, Insightful

    I work in warehouse automation, where there are plenty of off the shelf solutions, but none of them can really be tailored to efficiently meet the needs of particular customers (much like ERP systems). We provide a base system customised to the needs of the warehouse much more cheaply than a product designed to work off the shelf.

    As technology improves, the amount of functionality that can be added to our core system increases. I support systems written back to 12 years ago, and you can see the progression where what we did then would be possible for off the shelf software now - our own core systems would handle it with a couple of weeks work. But they'd miss out on a lot of optimisation of processes and when the installations cost millions a year in running costs, that optimisation is well worth the cost.

    This is the nature of the industry - permanently moving towards off-the-shelf software, but I don't expect it to finish that process any time soon. We've just started to move to a new level of that with open source, where really standard software gets easy enough that volunteers can supply it for free. Off-the-shelf vendors need to keep moving ahead of the open source advances. Bespoke software houses needs to move ahead of off-the-shelf applications.

    The only 'dead' ones are those standing still.

  98. Parallel Software by Ignatius · · Score: 1
    If anything, the demand for CS experts will increase for a simple reason: The free lunch provided by Moores Law, which allowed for sloopy programming, inefficent algorithms and the use of wasteful high level concepts and delevlopment tools is over for several years now. No more can software engineers rely on the fact that the increase in (single core) CPU speed will make their inefficient software perform OK when the product finally hits the market.

    Now as the main increase in CPU power comes from multiple cores rather than more GHz, and multicore CPUs are the norm even on Stadard PCs, further improvments have to be done the hard way: by more efficient code and parallelization. And to quote Linus Torvalds:

    And anybody who tells you that distributed algorithms are "simpler" is just so full of sh*t that it's not even funny. So no need to get your Taxi licence just yet ...
  99. wtf? by minus_273 · · Score: 1

    wtf? does this moron even know what cs is? how the hell can the perceived lack of programming opportunities kill cs?

    --
    The war with islam is a war on the beast
    The war on terror is a war for peace
  100. crybaby, US is not the world by Fedarkyn · · Score: 1

    "Armies of highly trained computer scientists are available in India, Sri Lanka and China. The expertise is easily off-shored. In India, over 100,000 new IT graduates a year are ready to support an off-shored IT industry."

    So, if it's an army of well trained computer scientists, Computer science is not dead.

    Why these guys keeps thinking US is the entire world?

    1. Re:crybaby, US is not the world by openldev · · Score: 1

      Yeah ... maybe you should reread the first line of the article description or actually visit the article web site. It's a _British_ publication that the article is written about. The author mentions the US once to comment on the number of students enrolled, but then focuses on the UK and western society as a whole. You should really read the articles before you go out flaiming ...

    2. Re:crybaby, US is not the world by Fedarkyn · · Score: 1

      ok, may fault...

      I really get annoyed when someone just ignores ppl just because they are from other places, reces, religions, etc... Thats medieval to my eyes.

      But my own prejudice has shown up, since I automatically presumed that was an US person talking. :(

    3. Re:crybaby, US is not the world by openldev · · Score: 1

      No worries, we all make the same mistake! :)

  101. Of course not. by Anonymous Coward · · Score: 0

    Everyone knows the real money in computer science is in building computer models to support global warming hypotheses that result in increased government funding for more computer models. Nope, no conflict of interest there.

  102. 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?
    1. Re:Bingo by jank1887 · · Score: 0, Offtopic

      "that doesn't mean that there isn't plenty of good science left to do" Not too mention returning to the study of the equations of motion, basic trajectory analysis, and developing new models explaining the interaction of moderately sized rubber spheres with larger diameter metal hoops. Damn ACC tourney... Go Wahoos!

    2. Re:Bingo by The+Great+Pretender · · Score: 1

      I think I see where the question goes. Could the concern here be mainly founded with the monopolies? The analogy that I'm thinking of is the car. Ultimately the combustion engine or major design approaches haven't changed in a century. There was plenty of research that could've been done, should still be done, and plenty of people who could do it, but monopolies in the form of car manufacturers and oil-producers have essentially stagnated the development. Could Apple, Microsoft, Adobe etc. be dulling advancement due to their production based business model? They "research" the same way the car manufacturers "research".

      --
      A positive attitude may not solve all your problems, but it will annoy enough people to make it worth the effort.
  103. Now that's not very nice. by Anonymous Coward · · Score: 0

    So far, you're not showing anything but snobbery here. Prove me wrong, do.

    (And yes, I work at a 'real' university, too.)

  104. CS Not Dead Just Not Teaching The Right Things by BadAsh71 · · Score: 0

    CS is definitely not dead, as someone else pointed out, CS is a "Science" and as long as "Science" isn't dead, CS is not dead, however, in general, I do feel that CS focuses on the wrong things and doesn't fully prepare a student for the "real" world.

    Most CS Departments focus on theory, mathematics, robotics and Artificial Intelligence but rarely spend much time on the actual art of Programming. Sure, they attempt to include Computer Programming as part of their curriculum by teaching Pascal (old and unused language) or Java (trying to remain hip in a world that has already forgotten about Java). However, none of the Computer Programming courses taught through CS will prepare their students for "real world" programming.

    The Business world needs people that know how to design database driven applications that are not only functional, but look appealing and get the job done. These applications need to be built fast, be modular and easy to update/maintain. CS will teach you how to design a Database System to lay the groundwork for a Database Application but it doesn't focus on making use of the popular Databases out there such as Oracle, SQL Server, MySQL, etc.

    CS also doesn't prepare students for the world of RAD (Rapid Application Development). Believe me, I've been programming for 15+ years now and the single most important factor for any business or customer is RAD Development.

    To do RAD you need to know how to use RAD tools such as Visual Studio, .NET, Ruby on Rails, etc. CS doesn't teach that sort of stuff. In fact, most Universities refuse to make use of Visual Studio or any technologies by Microsoft so that incredibly limits possibilities of Rapid Development. I can't tell you how many times I've seen people right here on Slashdot complain about how their Universities do not use or endorse Visual Studio. Of course, they sell it in their School Software Stores because the stores on campus at least know what the students want.

    Most good programmers skip CS at Universities and go to Community Colleges which are typically more up to date on technologies such as Programming Languages and RAD Tools such as Visual Studio. Believe me, if you want to learn C# which is popular on all main platforms (Windows, Linux and the Mac) or if you want to learn about Ruby, you are not going to get that from a University CS Department.

    This means that if you want to make it in the IT world, you really owe it to yourself to skip CS and big Universities (or at least supplement) and go to a Community College for a Programming degree. I have actually done both. I started out in a Community College studying programming and then went on to CS at a University and found that nothing they taught would help me in the professional Programming job I was already doing. So, I moved into MIS which is a little better since it touches on RAD and Management/Business which will help anybody in the "real" world.

    I think theory (understanding of algorithms, etc) is important but learning about the tools and programming languages needed for "real world" development are essential.

    Computer Science isn't dead but NASA and Lockhead Martin can only hire so many Artificial Intelligence programmers. Otherwise, a Computer Programmer needs to look out for themselves and get their education where it is truly offered (Community College and Tech Schools).

    Bill Gates tells us that CS students should be focusing on Bio-Tech and they can surely do that but while we waste our time away in school learning about the "future" all of our jobs are going to the people overseas that know what to do now and that will ensure that the people learning about the "future" of IT at school will not be able to get a job when they get out.

    IMHO :)
    1. Re:CS Not Dead Just Not Teaching The Right Things by Corson · · Score: 0
      Maybe a distinction should be made between Computer Science and Computer Technology; Computer Programming has "arms" in both, but the "real-world" Computer Programming may have to do more with the latter. Universities teach Computer Science (the former) and stay reasonably away from any particular software product, no matter how popular it is. Colleges, on the other hand, are more business-oriented and teach "real-world" Computer Programming to their students. This is not surprising. What I am surprised with is that, given your experience in this field, you didn't include Delphi on your list of RAD tools :)

      The computer programmer has become a commodity. People learn programming by themselves, at home, and by the time they are in their late twenties they can get a job without having a degree in CS. It only takes inteligence, a few good books or tutorials (there are plenty available on the Web), and a computer (another commodity, of course) to become a good computer programmer. That is why it is now so easy to export jobs overseas. Gates' suggestion should probably be read as follows: "Do something others have not done, stay ahead of everybody else, that is the only kind of job security you can get as a computer programmer!" He may be right.

    2. Re:CS Not Dead Just Not Teaching The Right Things by BadAsh71 · · Score: 0

      Sorry about that, you are definitely right about Delphi... great RAD language built off of the traditional Pascal (expanded heavily in the OOP area of course). I personally like Delphi. Unfortunately, in the US having Delphi on your resume is a black mark against you (a lot of my friends here in the states have removed Delphi experience from their resume).... not sure why that is because it is much better than VB was back in the pre .NET days (still is) and has kept up quite well with .NET (you can program in .NET using Delphi today). The majority of the Borland (Delphi) programmers helped design the .NET Framework, Visual Studio and the C# language.

      BTW, I was a little peeved in college/university because not only did they not teach Visual Basic but they also didn't teach Delphi. I am a C# programmer (since its release) but I programmed in VB professionally for many years.

      My brother-in-law programs in Delphi over in Mexico (lots of Delphi shops there) but he has found that he needs to add C# to his arsenal to ensure that his skills remain viable for programming in the US and Canada.

      You are definitely right about using books as supplements to any formal education.... heck you don't even need to go to school to learn to program... books and web articles will serve you very well in that respect.

  105. Computer Science is DEAD! by LittleGuy · · Score: 1

    Computer Science: This is the theoretical, researchoriented discipline. It deals with developing new algorithms, optimization and that side of things.

    Information Technology: This is the techie discipline. Building computers, setting up networks, administrating systems. I'm not sure why it got that name, but it seems to have.


    By this definition, what I am doing has nothing to do with what I got my degree in and spent $20K (CS) and everything I learned on the job and paying courses of $2-3K a pop for a certification that lasts 3 years at the most (5 years for practicality) (IT).

    So, yes, Computer Science is Dead. Long Live Information Technology.

    --
    Mod Karma -1: I sed bad wurds. If I cep my mouf shut, I wud be at riyses.
  106. What Schools teach what Industry Wants by Anonymous Coward · · Score: 0

    Well part of the reason many people are discouraged to take CS as major is
    Schools teach Science while industry wants Technology..........
    I have a graduate degree in CS. I have done C/C++ Java.(I know what memory allocation and leaks are. ) I know my way around in Linux/Unix. I know what algorithms are how one algorithm can be better than the other. I know why there are so many languages and platforms. But unless I put tons of buzz words on my resume no one ever is going to call me for an interview. But thats what my school taught me. I did some projects too bad i never used maven or eclipse or ant. I am a Vi guy:( Once we go to industry no one cares about science the want some one to get started asap. Imagine if i had a degree in Biology I wont be under pressure like a CS graduate they will train me for some time with technology then put me to practice. In cs no one wants to train. I did get a a shitty job after so much search but why CS majors have to go through all that? why not accounting majors? No one expects an accounting major to know industry standard accounting tools. Does any one expect me to tell me dears ones to join CS?

  107. Don't worry... by tomd123 · · Score: 0

    As long as there are computers and a future, there will be a need for computer scientists. If computers go away, there will be a need to program quantum computers. It will be just like the old days when somebody needed to do low level programming for computers and it will happen again. For the writer of this article, did he even think of how much computing was actually involved in displaying and writing his article? Monitor drivers, assembly, mouse drivers, keyboard drivers, c++, network drivers, web server and lots more. I bet he couldn't write a mouse driver if his life depended on it. I don't like these kind of people that resort to the internet to say something controversial, but then again if he said it in a dorm full of CS students, he might lose his virginity B-)

  108. Comp. Sci. is alive and well by Stochastism · · Score: 2, Insightful

    But you might have to bypass enterprise system development and look at the cutting edge of research into AI, robotics, and operating systems.

    Computer *science* is what researchers do, not code monkeys.

  109. Absurd by hardgeus · · Score: 1

    It would help if he got out of the university and actually got involved in the real world of programming.

    The real world is full of middle managers cludging together spreadsheets to "fill in the gaps" where their vaunted off the shelf panacea failed to deliver on a crucial piece of functionality. It is full of guys in a corner hacking together an Access database and making a colossal mess out of enterprise projects.

    There is a shocking dearth of qualified programmers out in the real world. They are sorely needed.

    1. Re:Absurd by DaTroof · · Score: 1

      It would help if he got out of the university and actually got involved in the real world of programming.

      But in the real world, guys like him don't get quoted in newspapers for announcing the death of a science, or for spouting vague, impractical conjecture about the number nullity. They get yelled at for jamming the printer.

  110. Dead? Bah! by fury88 · · Score: 1

    Is that why we're in demand now more than ever? Until we have complete AI programming AI, there will always be the need to engineer software.

  111. crusty old professors by Anonymous Coward · · Score: 0

    No its not dead, it just needs to modernize a bit and the crusty old professors need to stop teaching the useless "learning" languages.

  112. Describe the what, not the how by Nurgled · · Score: 1

    The .NET guys at MS have been attacking this "do what I mean" problem by providing increasingly more declarative language features. The best example is Language Integrated Query, which allows developers to use SQL-like queries right in C# that can operate on databases, XML DOMs, in-memory collections of objects and potentially other things that implement a particular interface.

    This targets the exact use-case you mention in your post: searching. It's the intention of these guys that in future versions they can change the algorithms used to implement the queries against in-memory data structures to exploit better dual-core processors and other advancements without all developers needing to learn how to implement such algorithms.

    No doubt we'll see this more and more as technology gets more complex: the engineers will be pushed down to the platform level and the common programmer will work on top of a mountain of abstractions provided by the platform. We're already part-way there, but commonly-used languages are still very imperative. More and more features are being borrowed from the functional programming world to make algorithms more composable and adaptable. For now, though, we've got enough abstractions for less-skilled programmers to write code but not enough abstractions for the plaform to fix it for them.

  113. Computer science is to science... by Destoo · · Score: 1

    "Science is to computer science as hydrodynamics is to plumbing"
    -Stan Kelly-Bootle (according to the wiki)

    I'm really confused as to what is "computer science".
    But as far as I can see, computers are tools. No more, no less.

    --
    Nouvelles de jeux et technologies en français. TC
  114. its all about interest by Bizzeh · · Score: 1

    when i did comp sci, i had to learn pascal, posibly the most boring language ever created. i had to learn about DFD's, also boring. i had to learn about the OSI 7 layer model, boring. i had to learn about a systems life cycle, again, boring.

    if comp sci lectures taught something interesting, like how networks actualy work, not just the 30 year old theory behind it, or taught programming using a language that is usefull, or taught how computers are built, or how they physicaly work, people would enjoy it more because its interesting, and its usable knowledge (applicable to real life), what they are currently teaching is not.

    1. Re:its all about interest by Corson · · Score: 1

      It seems to me that you mistake science for technology. And BTW, Pascal is (still) used as a *teaching tool* for the simple reason that it has two important features: first, it is somewhat foolproof (strong typing, range checking, etc.), which you need when you teach programming to students who have never programmed a computer; second, it is nicely structured, logical, and easy to read in English, so it makes learning easier and faster. When I learned hang-gliding, the first lessons were on a very stable, relatively low-performance hang-glider; of course, nobody would fly that gear in a competition. Bottom line, teaching is a profession and Computer Programming is another; each have their purpose and tools.

    2. Re:its all about interest by Anonymous Coward · · Score: 0

      When I was learning, the basics were required to give you a foundation to build on. My first programming language was assembler, second BASIC, then COBOL, followed by many others. I was a systems engineer at the time and worked on hardware, but switched to maintenance programming and systems programming later.
      What I have noticed over the years is that the current trend to teach a language as only a tool, is what has fed the long lists of vulnerabilities reported by SANS several times a week. The basic instruction and rules we learned are no longer taught, or observed.

      COBOL and assembler were the languages then and are still running in the background today. They don't have the glitz of today's language-of-the-week, but they do provide something that none of the current "useful" languages do. Programming rules, and accepted procedures.

      Assembler did only what you told it. If a program screwed up, or didn't validate its data, it didn't work. COBOL made it easier to write and read, and unlike assembler, someone else could read it too. Many programs are older than the majority of todays programmers! COBOL also has features like truncating user supplied data if it is too long (no buffer overflows?). Data and instructions were not in the same or overlapping address spaces. Today's stack-based micros don't provide the hardware protection the mainframes have either.

      With COBOL to handle some of the data validation problems/errors, programmers were taught to VALIDATE THEIR INPUT. It has been said that 90% of the code was for exceptions, and only 10% did the work. Only now are newer libraries becoming available to be used with popular languages to provide the features the "old" programmers had with COBOL. Unfortunately, current programming efforts are to provide 90+% work, and less than 10% for validation and security. The new libraries are useless until the programmers are taught to use them, and also to insure their data is valid.
      The SANS weekly reports testify to the fact that about 80% of the vulnerabilities are due to improper validation of input. The "old" COBOL and assembler programmers cut their teeth on that rule, as well as being taught the rule in the "boring" classroom.

      The mention of network theory as boring, is NOT valid. I spent 15 years as a network engineer (and Unix SysAdmin), and ALL networking problems were easier to detect and resolve BECAUSE I knew the boring details of the layers and protocols. If you don't know the network protocols, you can't even FIND your problems.

      If you want to know how computers work, google for embedded programming, or read Circuit Cellar, Nut and Volts, etc. Build one. Learn an assembler or two...

      This rant would be more in line with IT now, but it used to be CS-101.

  115. see the archive... by pikine · · Score: 1

    We already beat this topic to death. See http://developers.slashdot.org/article.pl?sid=07/0 2/04/2210200 for many insightful and informative comments people posted a month ago.

    --
    I once had a signature.
  116. bridge the gap between physics and computer sci by mrnick · · Score: 1

    Who makes all this science possible that allows this new technology work? Computer scientists! If society stopped studding computer science then technology would rush to a halting stop. People might have fancy electronic equipment and the like and I am sure plenty of companies would keep producing it but there would be no improvements.

    One thing that the lay person has a problem discerning the difference in is the computer scientist and the computer programmer. I have my BS degree in Computer Science and am working towards my MS in CS. After my BS degree I worked in the IT industry for over a decade and none of the jobs I was working at had the primary task as being a programmer. I view programming and knowledge of programming an necessary evil when it comes to the study of computer science. I am more interested in the middle ground where computer scientists interact with physicists. After I get my Ph.D in CS my plan is to teach in a college that will let me teach both CS and Physics courses, in hopes of help each side bridge the gap.

    Programmers are a dime a dozen but real people that are looking to use computer science for what it is, a science, and not a job there is real potential to have a noticeably affect on the world.

    Nick Powers

    --

    Encryption: I may not agree with what you say, but I will defend your right to encrypt it...
  117. Dupe - and no one even noticed by the_womble · · Score: 1
    Has no one else even noticed that this is a dupe!

    Not only did I recognise the subject matter, but the fact that it was on the BCS website, and by a lecturer from the same "university".

    I quoted the word "university" because vocational training college would be a more accurate description.

  118. Re:No such thing as "Computer Science" to begin wi by rbarreira · · Score: 1

    That Dijkstra quote certainly has its value, but I think it's either not very good or people don't apply it in the way he meant it to be applied. Computer science is much more about computers than astronomy is about telescopes. Telescopes are merely a tool for astronomers, while computers are much more than simply a tool for computer scientists.

    --

    The AACS key is NOT 0xF606EEFD628B1CA427BEA93A9CA9773F
  119. A better question by duffbeer703 · · Score: 1, Offtopic

    Is traditional Western society dead?

    The west has already ceded manufacturing to Asia. Now we're in the process of exporting that high technology that was the fruit of hundreds of years of western dominance to Asia. Now we have clowns like this person saying that "everything that needs to be invented has been".

    Sounds to me like decline. I guarantee you that Chinese firms aren't talking about shit like this -- they're busy educating hundreds of thousands of people in engineering and sciences while we whine about self-esteem.

    --
    Conformity is the jailer of freedom and enemy of growth. -JFK
    1. Re:A better question by Anonymous Coward · · Score: 0

      I agree, and also ran into an interesting comment in a similar vein recently. It was in a W S Journal article abouth the American CEO of SONY. He was talking about all the pressures he faced in improving performance. He said basically that "In Japan, you don't lay people off but used other methods to address productivity/profits. Whereas in America, it's easy to lay people off." So there you are - orientals are driving for future gains, while our Western-style bean counters are covering their asses for the short term. Decline it is.

    2. Re:A better question by Anonymous Coward · · Score: 0

      Thank goodness this 'clown' is just a blowhard, desperate to make a name for himself.

  120. A very British problem by AmiMoJo · · Score: 2

    The real reason for this problem is that there are too many computing graduates. In Britain, the government wants 50-60% of people to go to University. Only about 5% of available jobs need a degree level education. There is a shortage of plumbers and other people with below degree level/practical skills.

    Basically graduates are fucked. You end up with £25,000 of debt and poor job prospects. This guy is right - we don`t need that many graduate developers and the ones we do need tend to need experience and training anyway.

    --
    const int one = 65536; (Silvermoon, Texture.cs)
    SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    1. Re:A very British problem by Anonymous Coward · · Score: 0

      Don't agree with anything you just said there.

      1. "The real reason for this problem is that there are too many computing graduates"

      Source? Most companies are complaining that there is not enough graduates in computing. According to a report from Microsoft, the British Computer Society and Lancaster University Management School, more than 150,000 new graduates are needed every year and currently there is only 20,000 graduates.

      http://www.pcpro.co.uk/features/97391/why-it-educa tion-is-bottom-of-the-class.html?searchString=grad uates/

      2. "In Britain, the government wants 50-60% of people to go to University. Only about 5% of available jobs need a degree level education."

      Source? According to a government survey graduates have the lowest employment rates. Also on average graduates have a better rate of pay.

      3. "This guy is right - we don`t need that many graduate developers and the ones we do need tend to need experience and training anyway."

      Where did he say we don't need graduate developers? What we need is degree, experience and training. That makes people go further in life and not hit any roadblocks.

    2. Re:A very British problem by Tablizer · · Score: 1

      Source? Most companies are complaining that there is not enough graduates in computing.

      That is because they want to be picky WITHOUT paying a pickyness premium. Microsoft is very picky in their hiring despite complaints about not enough people. They lobby for such because they can, and the press buys it without a critical eye. Microsoft etc. does not care about YOUR well-being; they are selfish like a good capitalist is supposed to be.

  121. What kind of dead? by JustinKSU · · Score: 1

    Captain America dead or Elvis dead?

  122. It's a British perspective, which matters by Archtech · · Score: 1

    Note that the article writer is British, which goes some way to explain his tired, decadent attitude of, "Don't think about writing software, buy it instead". As others have logically asked, who writes the software we buy? If you're a British organization, the answer has traditionally been "Americans". Nowadays, it is increasingly getting to be "Russians, Finns, Indians, Brazilians, Germans... anyone but us".

    How would it sound if a professor of medicine or surgery were to say, "Nowadays we have so many good drugs that doctors don't need to learn anatomy or physiology any more"? We'd call bullshit. It's recognized that a nation is most unwise to close down its shipbuilding, aerospace, pharmaceutical, etc. industries completely, because once the torch is dropped it can't be picked up again. Traditionally, knowledge is passed down from generation to generation. Let there be just one generation that loses those vital skills, and no subsequent generation will have the option of reacquiring them.

    The sad truth is that business managers want the benefits of computing, but they are damned if they want to pay for it. Hence the "shortage of staff" - i.e. staff who will work for peanuts. Hence the proliferation of crappy, slow, unreliable software, written by undertrained, underpaid developers faced by unrealistic deadlines and told to make bricks without straw.

    The basic problem we have - and it's a serious problem - is that almost all the people who make decisions about IT investment are fundamentally ignorant about computing. In fact, we actually need more computer science rather than less; but it could usefully be delivered in more accessible, easy-to-understand chunks.

    --
    I am sure that there are many other solipsists out there.
  123. Good list but you missed: by Mycroft_514 · · Score: 1

    Database Adminsitration and Data Analysis.

    And that brings up a sidelight as well. In today's environments, the DBA is spending more time than ever tuning the queries of the developers, because the quality of the developers to bring about efficient code has dropped like a rock.

  124. Falling Student Enrollments? by EastCoastSurfer · · Score: 1

    As compared to what? I don't think you can compare current enrollments to the .com boom enrollments. Back then everyone was in CS to make a quick buck. As soon as the quick buck went away, of course enrollments were going to fall back to traditional levels.

    Look at how many people are RE agents now. You think that's going to last given the housing collapse that's currently under way? Does this mean people aren't going to buy and live in houses anymore?

    There will always be a need for people who can build and understand technology. Typically this will mean CS or a derivative of it.

  125. Obligatory Dijkstra Quotation by smallferret · · Score: 1

    "Computer Science is no more about computers than astronomy is about telescopes." - Professor Edsger Dijkstra

  126. business wants to pay McWages. by swschrad · · Score: 2

    until they get used to making consumers out of their wage slaves, the business looks like a dead end to college-age kids.

    because it is.

    look up Henry Ford in the encyclopedia. his $5 daily wage changed the economy, allowing workers to buy what they made. the trend now is to McWages, and that doesn't cut it, unless you are "Bob" in Bangalore.

    --
    if this is supposed to be a new economy, how come they still want my old fashioned money?
  127. Re:No such thing as "Computer Science" to begin wi by jaseuk · · Score: 1

    I'm sure the telescope scientists would disagree with you ;)

  128. small field is better by peter303 · · Score: 1

    When a field gets hot it attracts the mercenaries- basically people whi are solely in it for the money. These kind of people are not interesting to work with and give up when the economics slows down.

  129. Don't fall riding the lollerskates. by andreyw · · Score: 1

    Wow. So, how is the availability of mature "enterprisy" business mishmash tools really going to affect Computer Science (the field) or Software Engineering as a whole? Sure, it might bite a large chunk out of the market for developing business-specific data entry/manipulation/CRM/whatever software, but it's not as if that's all Software Engineers work on these days (+ someone needs to work on the mature tools, to make them more mature, whatever).

  130. Not entirely wrong, not entirely right by Pedrito · · Score: 1

    There's something to the article. During the .com boom, everyone and their mother was writing custom software. But a lot of niches have been filled with relatively mature and stable products now. Not everyone wants to spend the money for custom software. Not to mention, I think during the .com era, a lot of people began to grasp the expense of custom development, the hard way.

    There will always be areas where software development is needed. There will always be new areas and old areas that need something new. Everything evolves. But the need for programmers will definitely be finite.

    There will continue to be academic programmers to do research, there will continue to be people working in open source to provide competing products, and there will continue to be corporate innovators out there that will find new niches to fill. The numbers just aren't going to be quite what they were in the past. So is Computer Science dead? Absolutely not. Like the market, it's just need of a correction in numbers...

  131. In other news... by be951 · · Score: 1
    It has been reported that agriculture is dead, owing to the abundance of available "off the shelf" food products that magically appear in grocery and other stores worldwide.


    What the article is really lamenting are two things: the increased efficiency realized by buying a commercial product that suits ones needs rather than building from scratch for every problem; and the increased efficiency realized by frequently using high level tools when customization is needed. In other words "Wah! People don't need highly skilled programmers for every computer problem/task/upgrade. We're not as important as we used to be!"

  132. Remember Change by Binder · · Score: 2

    One of the few things we can be sure of is change. Expecially in the business word needs change, requirments change, models change. This in itself will keep developers in business.

    Take for example turbo tax. Are the tax rules going to stay still?

    In addition to this there are still quite a few problems that have not been solved. Recognition, translation, simulation...

    As long as we use computers who aren't in themselves intelligent, we will need CS.

  133. We've heard this before by xonar · · Score: 1

    I believe we've heard something like this before...

    "Everything that can be invented, has been invented."
    --Charles H. Duell, Commissioner, U.S. Office of Patents, 1899

  134. Software is available? Yes. Is it good? Hell no! by schiefaw · · Score: 2

    I have not jumped around to as many companies as many of you here, but I have worked at some large ones. I have never been at a company where they were satisfied to use the off the shelf version of software. Every company has its own culture and needs. There is always a lot of custom code written.

    Sure, a lot of that code is written off-shore. But, the real need for CS professionals now is not grinding out code (although, you have to start somewhere). The value of a good Software Engineer is in determining the real requirements of the software, ensuring that the software is actually usable by the end user, and managing the life cycle of the application.

    I am at the stage in my career where I have to find ways to get involved in coding. The majority of my time is spent in determining how the software will work within a complex system and attempting to force the developers to make at least a minimal effort in creating a user-friendly interface. I would guess that at least a quarter of the applications at my current employer (a major corporation) are not being used effectively because the users have become frustrated and found other ways to get their jobs done.

    --
    Angleyne: You can't bend that girder - it's unbendable! Bender: Well I don't know anything about lifting, so that ju
  135. You can do EVERYTHING in Scheme by alexhmit01 · · Score: 1

    Not that I could do any of it anymore, but the 6.001 SICP class that he was talking about did all that. We didn't use Scheme like most places use LISP (as a glorified LOGO), but as an extremely versatile language.

    You learn the basics of programming using scheme, which takes about 2 weeks tops, the beauty of LISP. You do things like create object oriented LISP, create a LISP processor in LISP, then we create a basic machine language and process it in LISP. The POINT of it is that you can quickly build up an environment to process anything.

    Later, in the intro AI course, you do everything in Scheme again. If you go on to take the "Programming Languages" course (I did not), you actually use Scheme to model every theoretical form of programming language so you can evaluate it.

    Scheme is the PERFECT academic language. It is derived from lambda calculus, which lets you do neat things like prove your software is perfect. The interpreter can be proven perfect (all of Scheme CAN be implemented in 8 or 9 commands, that if implemented correctly can make the whole system perfect). You can build a compiler for Scheme in Scheme pretty easily (I remember doing it), etc.

    The draw back? It's damned inefficient at using computer resources, it doesn't have a clean library approach, and while it is AWESOME at code reuse, it doesn't let you "optimize" things by playing with memory space, etc. It never won in the marketplace because Worse is Better.

    1. Re:You can do EVERYTHING in Scheme by DrFalkyn · · Score: 1

      Scheme is also very weakly typed, right? I can imagine that adding to considerable inefficiency.

    2. Re:You can do EVERYTHING in Scheme by et764 · · Score: 1

      Regarding Scheme being inefficient, I heard an anecdote once where a class was given a competition to make the fastest implementation of a particular multiplication algorithm. Most of the class decided to start coding in assembly right away, since obviously assembly is the best way to write really fast code. About two weeks into the assignment, most of the students still didn't have their algorithm working. There was one student, on the other hand, who recognized that the recursive nature of this particular algorithm was particularly well suited for a language like Scheme, so he coded his solution in Scheme and had it working perfectly within a few days. He then devised a correctness-preserving transform that turned his program into a really simple subset of C, which the optimizing compiler was able to generate really fast code for. He ended up getting second place, being just a little behind first place, and far ahead of third place. Sure, it's not pure Scheme, but this type of programming is not inherently slow.

    3. Re:You can do EVERYTHING in Scheme by Anonymous+Brave+Guy · · Score: 1

      No doubt you can do all of that stuff in Scheme. Unfortunately, actually doing so produces a person who thinks only in terms of Scheme, which is as bad as a person who thinks only in terms of Java or C. It also leads to rose-tinted spectacles, as you kindly illustrated with the nonsense about proving your software is perfect. Whatever you were actually proving in your classes, I guarantee that wasn't it.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    4. Re:You can do EVERYTHING in Scheme by Rick+BigNail · · Score: 1

      In this special case, yes, you can prove the interpreter's correct.

      It's just like proofs in maths. Nothing special.

    5. Re:You can do EVERYTHING in Scheme by Anonymous+Brave+Guy · · Score: 1

      Ah, but the GP post didn't say "correct", it said "perfect". You can prove correctness against some specification, and perhaps even get it right on the scale we're talking about here. However, in the real world, that's only worth as much as the specification and as the implementation you're running against matches its own spec. You can be a smart LISP programmer and write an implemention in LISP in just a few lines, but at some point, someone wrote a bootstrapping implementation that was far more complex, and how do you know that works properly? Ultimately, even the computer and operating system you're running on are probably out of your control, yet your program will rely on them to do its job, too. In other words, there is a big reality gap between proving against a specification and proving that your program is perfect in any useful sense of the word.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    6. Re:You can do EVERYTHING in Scheme by Rick+BigNail · · Score: 1

      "Ultimately, even the computer and operating system you're running on are probably out of your control, yet your program will rely on them to do its job, too."

      Sure, but if you know your program is correct then you know where is the problem. And in embedded real-time area, even the OS and the computer can be proved correct to a conservative but precise spec.

      Of course, programs proved correct could still contain bugs. But I think we've sort of lost the patience and dedication of programmers before us like Knuth, Hoare and Wirth, which one can interprest as the decline, if not death, of computer science.

  136. "Is that quote laughable?" by Anonymous Coward · · Score: 0

    You must be new here.
    This is Slashdot, where everything is laughable.

  137. Obviously not by mattr · · Score: 1

    Else who would invent SkyNet? Really. Not only is there Computer Science as described above, there is artificial intelligence, robotic systems, quantum computing, all the kinds of things mentioned in the proceedings of the ACM like computer enabled synthetic apertures and light field analysis, we need intelligent people to build Perl 7, and hopefully some engineering genius will, empowered by new computer science, develop a modicum of automated intelligence so that programmers can spend their time being creative and not worrying about carpal tunnel. Sounds like the issue is more a matter of whether you can get a quality CS education anywhere, and can you make a living at it. Now if you want to talk about the future of website administration that's a different story.. maybe need to get a design degree or move to India with Halliburton.

  138. BASIC, SQL, etc. by alexhmit01 · · Score: 1

    BASIC, SQL, and other "simple" programming languages didn't replace programmers because the hard part of programming is logically thinking in a creative manner. The thing that stops most people from being programmers is that they don't think that way. That said, the addition of VBA and other things to Excel HAS let some people do their programming, I've seen business execs write simple macros to process their spreadsheets faster... I'm seen some impressive Excel spreadsheets. This doesn't replace programming, but that is work that doesn't need to get sent to IT.

    Making programming easier for logical people WITHOUT training as programmers makes certain jobs too simple for IT, but it doesn't replace the programmers for real work.

    But looping through your spreadsheet and doing some basic processing... that is a solved problem, and letting someone code that up quickly doesn't eliminate the need for real comp sci graduates.

  139. I don't know about you but.. by u0berdev · · Score: 1

    ..where I work, we have new customers almost on a weekly basis. Every single customer we have is different and requires different products from us. And also every customers data is different. I and my other co-workers are constantly working to adapt old software to new customers as well as write new software from scratch. Believe me, we would actually LOVE to have an off the shelf solution so that our lives would be easier, but one simply does not exist. You can only pack so much customization and end-user modification into an off-the-shelf app before the next step which is to just write new code.

    I do agree that more and more off-the-shelf software is becoming powerful enough to handle a lot of business' needs, however one also has to account that more and more ".com's" (i hate that term) are sprouting up that generally all do the same.

    As far as Computer Science being dead, I call BS. (and not as in Bachelor's of Science.... which i have :) )

  140. Forbes says no by PhilipMckrack · · Score: 1

    Forbes fastest growing jobs According to this article, Computer software engineers, applications is number 5 on the fastest growing jobs list.

  141. Just hardening the distinction... by DCheesi · · Score: 1

    ...between CS and IT. It used to be that IT people did as much new programming work as they did maintanence and configuration of existing tools. Now COTS software solutions are reducing the need for (and desirability of) custom "reinvent the wheel" IT apps, the distinction between the two professions should become clearer.

  142. Another sensationalist, misleading, title by walterbyrd · · Score: 1

    Very typical of pop-media hack-journalism. The article is *not* about "is computer science dead" rather, it's about development shifting from inhouse, to 3rd party apps - a trend that's been going on for decades.

  143. Oh boy by CaptainTux · · Score: 1

    I started college in 1991 and I remember the day before declaring my major (CompSci) a friend brought me an article that said it was a dead field where nobody would be able to find a job by the time I graduated. By the time I graduated, it seemed that there was at least an article a week about how Computer Science was dead and everything was going to hell in a handbasket. Then came the dot com bubble.

    These doom and gloom articles make the rounds all the time - in many industries. The truth of the matter is that Computer Science is never going to be "dead". The technology is getting more sophisticated, the talent cheaper, but there will *always* be a need for smart, talented, driven people who can develop great software, design, deploy, and manage tough as nails networks, and generally be the "go to geeks" in their realm.

    No, we probably won't see the heady days of the dot com bubble again (although that can be debated too but we won't all waste away and die if we stick with our chosen profession and encourage others to enter it and make it better. The competition will be fiercer (India, China, Vietnam), the work more demanding (AI, Neural Nets), but the field is still one of the best out there.

    --
    Anthony Papillion
    Advanced Data Concepts, Inc.
    "Quality Custom Software and IT Services"
  144. Competitiveness by hey! · · Score: 1

    The argument that off the shelf software fills the needs of businesses completely can only be made by somebody who doesn't really know much about business. Businesses exist to make money. However they can't ignore the existence of others businesses who are going after the same money. So it follows the number one concern of business is competition.

    Businesses have to compete two ways: efficiency (low cost) and differentiation (creating unique value). Individual businesses, or entire industries, may lean towards efficiency or towards innovation. But a business that relies exclusively on one aproach to competing will eventually find itself in trouble. If you are too innovation slanted, you find yourself underbid. If you aren't innovation oriented enough, you find yourself obsolete.

    Commercial off the shelf software addresses the needs of companies for efficiency -- usually. You don't build your own general ledger accounting system, because G/L is the same problem in every business of a given scale. It is possible that some organizations might require a custom G/L system, but very few. It is efficient to buy your G/L system, since it is a bad idea to differentiate yourself based on your accounting practices.

    But when you are trying to differentiate your products and services, off the shelf software is worse than useless. It's a straightjacket. Companies make do with either inferior systems or with systems that limit their competitive capabilities, because there is a shortage of engineers who can build the systems they need.

    Let me give you a real life example I heard about recently. The salmon you eat at a restaurant has probably been farm raised. People eat a lot of salmon in restaurants. There's a company that has developed a business in which a restaurant enters an order for so many salmon steaks or fillets of a given weight. The company has a network of farms and processing facilities; the order goes to the processing facility, where workers load up freshly harvested raw salmon onto a conveyor belt. A laser scanner creates a three dimensional model of each fish, and a robotic cutter slices the fish using a high pressure jet of water into a number of cuts which will most efficiently meet the orders. Workers unload the cuts, and the system tells them which restaurant they are going to.

    The net result of this is that most restuarants in the US could enter an order at say 10AM, and have fresh salmon exactly to their portion requiremnts by dinner time, and given enough orders the least possible raw salmon is wasted.

    There are probably ideas like this in every industry, but they never see the light of day because to a layman they seem impossible. However, anybody with a CS degree should be able to recognize the key component of the above system as related to the scheduling problems commonly studied in algorithms courses. An optimal solution might be outside the skill range of most CS grads, but they should see the outlines of some solution, and be able judge the feasibility of any proposed alogorithms. This is something which can't be said for somebody with an Information Systems background. Those folks have other things to contribute; they are to CS people what industrial engineers are to mechanical engineers.

    The supply of CS expertise is a limiting factor on innovation for the entire economy. It's a result of shortage of CS knowledge that some can't see its usefulness. The inability to do things that require CS expertise is simply taken for granted.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  145. Yes/No/Cancel by Anonymous Coward · · Score: 0

    Yes/No/Cancel

  146. I think this makes sense by Ace905 · · Score: 1

    The slashdot write-up doesn't seem to make a lot of sense on the surface, but I think this is a reasonable observation. It's not that having a computer-science degree is useless, but in the past everybody was getting their degree to head the development of major, proprietary software packages for companies. Packages that handled customer relationship management, accounting, shipping receiving, etc. And every week there would be a meeting of the office dullards with some new 'idea' on how to improve things, ultimately requiring another development project.

    Cut to today where most companies rely on the software packages of only a few developers, like goldmine, microsoft office, whatever -- you've cut out the need for computer science degree's in all but a small handful of successful companies.

    Someone commented in this thread, "And where do these software packages come from?" -- they come from computer science degree's. About 5. 5 dime a dozen computer science degree's. And where do they come from next year? The same company ; meaning they can cut-out 4 of those computer science degrees and keep 1 for maintenance.

    This is an oversimplified explanation of software in general, but it's fairly accurate. I'm in the middle of porting a visual-basic application to a web based PHP application for a Toronto, Ontario based company. The VB application might have required a CS degree, but it also cost $15,000 to produce. My web based version on a bad day won't go over $3000 to produce, and I'll be paid well for what I'm doing.

    When languages keep getting higher level you cut the 'degree' out of the equation completely. University (in canada) and ivy-league colleges (in the states) focus on calculating cpu-cycles and low level mechanics of development. PHP focuses on asking a computer to do something in plain english. Community college is about all you need for that ; or in the case of most slashdotters - common sense.

    ---
    This degree is too much!

    --

    Ace
  147. Re:No such thing as "Computer Science" to begin wi by Rycross · · Score: 1

    I think you misunderstand the quote and what computer science means. Computer Science would be the science of computation, not the science of computers.

  148. Analogy with Asimov's "Profession" by LihTox · · Score: 1

    This reminds me of Isaac Asimov's story Profession. In the story, people are educated for their careers via direct mind transfer, but someone has to write the tapes to educate everyone else, when paradigms and techniques change. The parallels are clear.

  149. As if! by hughbar · · Score: 1

    As a 56 year dinosaur, I see more possibilities than ever for proper computer science:

    - user tailored and AI augmented search
    - well engineered 'green' hardware/software/datacentres (well you see what I mean)
    - well engineered micro-kernels
    - physical/computing interface work and telepresence
    - problems connected with seed AI
    - rational management of complexity and systems integration (I'm in the middle of a dinosaur friendly glue code gig right now)
    - modelling tools and problems, especially what's happening and not happening to our environment

    That's about 30 seconds of very non-scientific thought and I'm sure many people on slashdot have zillions more whether or whether not they agree with this particular list-let.

    --
    On y va, qui mal y pense!
  150. I'm not dead! I think I'll go for a walk! by CFD339 · · Score: 1

    It's not dead, but it is definitely in a vegetative state. The combination of patent morass and "standards" competition as an avenue for profit has left little room for serious long term work.

    --
    The problem with quotes on the internet, is that nobody bothers to check their veracity. -- Abraham Lincoln
  151. It is more alive then ever by PermanentMarker · · Score: 1

    It is more alive then ever.

    But its not on the surface, expirimental ideas new software are written verry often.
    Biological computing, or chemical computing, physics emaulation, statistical analyzing marketing software etc etc.

    Basicly computers these days have become more powerfull and so we find new ways to use computers.
    We went beyond the things what we thought in the past was to complex.
    Think of the first speaking computers, and the mail systems these days who readout your mail.
    Think of the advanced self learning flight systems.
    Think of bio engineering and emulating software, drug searching algorythms.

    --
    I know you're out there. I can feel you now. I know that you're afraid. You're afraid of us. You're afraid of change.
  152. Currying flavour.. err, favour. by Anonymous Coward · · Score: 0

    Not in India.

  153. LOL! by GoldTeamRules · · Score: 1
    These kinds of questions are ridiculous! :) Please. It's like closing the patent office because "everything has already been invented". Or, "no one will ever need more than 640KB or RAM". Or, "now with electronic forms, the need for paper will probably go away".


    Has all the good software already been written? Is the need for better software gone? While these questions are great for starting a discussion thread, the answer is obvious. Are we going to be using computers less? Is software already as intuitive as it can be?

  154. Itsa laughable by JustNiz · · Score: 1

    >> Is that quote laughable? Or has the software development industry stabilized to an off-the-self commodity?"

    The article makes a tremendous mis-assumption that Computer Science and all software development is only about business software apps.

    For example, my job is to develop avionics software that flies in large aircraft. Anyone suggesting we could replace our custom software with off-the-shelf packages would be asking to have their brain examined. For example, would you even get on a plane if you knew the flight controls used any Microsoft software? Not me...

    1. Re:Itsa laughable by Teancum · · Score: 1

      I wouldn't, but I have seen critical medical monitoring equipmet running on Microsoft Windows. I even mentioned the fact to the doctor who was treating my wife at the time and said "do you really trust this isn't going to freeze up half-way through the procedure?"

      The medical doctor just gave me a blank stare wondering what planet I just came from.

      Why the FDA (who approves medical equipment like this) gave a thumbs up for that equipment, I have no idea. I certainly wouldn't trust my life to rely upon Windows working 24/7. At least in this csae all the equipment did was to monitor a patient, and the things it was monitoring could also be verified "by hand", such as blood pressure and heart rate.

  155. Where are the students going? by foniksonik · · Score: 1

    If they aren't enrolling in CompSci... what are they enrolling in and why? Is it just a trend in coolness or maybe the economic scene has changed and jobs in other industries look more lucrative? A field of study doesn't die, it becomes less popular. So the real question is which one is the sweetheart of the young masses these days and how can a CompSci department recruit people out of the popular group by upping their offering?

    --
    A fool throws a stone into a well and a thousand sages can not remove it.
  156. Technology != Science by sgml4kids · · Score: 2, Interesting

    I agree.

    I took a 13 year hiatus between starting my CS degree and finishing it. In that time, the curriculum at my university changed so what once was a 2-part course on programming models and idioms became a 2-part course on learning the intricacies of C++. Courses on compiler design were replaced with courses on writing web applications. Instructors often short-circuited the requisite mathematics -- forget trying to understand the "why" ... just learn enough to be productive in a job. When I started my degree, I learned things that spanned many technologies. By the time I finished it, my university simply taught the technology-du-jour.

    When I think "Computer Science" I think Knuth and Shannon. It seems that for many others, "Computer Science" means Linux or C# or Balmer.

    For example, in testing and quality assurance. It saddens me that few QA departments in the software world use statistical analysis of software and few use the scientific method.

    I'm certain that Computer Science is still happening somewhere, but most of what I see in schools and industry is Computer Technology.

    1. Re:Technology != Science by Anonymous Coward · · Score: 0

      Sounds like you went to a tech school, not a university.

    2. Re:Technology != Science by Fulcrum+of+Evil · · Score: 1

      I'm sorry that your college sucks. I graduated in 1998 from a decent university, and the stuff they taught was the full strength CS stuff and covered most of an entry level MS degree (basically, the core courses) in addition to what you expect of undergrad stuff. I guess it helps that Dave Musser was my prog lang professor.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
  157. Bad job market by Anonymous Coward · · Score: 0

    Anything you come up with, OSS devs make a poorman's knock-off and give it away for free. Why go into a field if you can't make money?

  158. Embedded Hardware. by drolli · · Score: 1

    I have no doubt that in the next years we will need an huge amount of embedded Developers. put together the funny crappy libraries which had in mind that opening the Start Menu of windows at high resolution an 32 bit color depth transfers more data than the whol payload (e.g. text Document) of the whole Apllication has. Terribly good for saving resources (mainly: Battery!)

  159. An analogy with "dead" mathematics by sevenfactorial · · Score: 1

    This is the beginning of one of those Star Trek episodes, where everyone on an advanced planet has forgotten how everything works.

      Computer science cannot become "dead" because there will always be attractive problems of an algorithmic nature, which is in essence what computer scientists study. Software development, on the other hand, could devolve into something like accountancy in relation to math--a task streamlined enough to be performed by non-specialists. But even though accountants no longer need to be mathematicians, mathematics is still alive and well.

  160. In Related News... by Anonymous Coward · · Score: 0

    BSD is dying.

  161. shocked by TheRealNecator · · Score: 1

    I'm really shocked.
    Guys, what are your universities?

    In my first semeseter I had math, introduction to computer science (which is math and little programming in ... gofer -- urgh) and technical computer science (which is basic logic) -- and some more, I simply dont remember anymore.
    Some of the last coureses I took where formal languages, advanced logic and robotics. Well, not much of programming, but tons of math. Lots of goot programmers had to leave (and no 'I like computers -- they offer great games' bums survieved), because of a lack of understanding of maths -- yet it is computer SCIENCE and not programming or webdesign!?

    I simply can't understand how your experiance justifies those universities offering the highest possible education?!

  162. Most academics are children who look like adults by VampireByte · · Score: 1

    When I was working on my PhD, the childish behavior of professors never ceased to astound me. These are mostly people who've spent their lives in school. For them to comment on the "real world" is a joke. I, on the other hand, do work and solve problems in the real world, and just because accounting software is "easily available" doesn't mean it works for all situations. Oftentimes, my clients have tried "off-the-shelf" and failed before they contact me to develop a custom solution.

    --

    Run and catch, run and catch, the lamb is caught in the blackberry patch.

  163. The quote is based on current technology by ErichTheRed · · Score: 1

    It might be tempting to write this guy off, but he pretty much sums up the current attitude towards large-scale apps these days. I work in systems integration/architecture, and see the products of this thinking all the time. Moore's Law is every programmer's friend. It means they don't have to optimize anything. Throw hardware and memory at the problem, and the problem goes away. This is why simple home-grown apps require 1.5 GB of RAM and dual-core processors to run.

    As long as programmers who don't optimize their code exist, and the amount of addressible memory goes up, then yes, we don't need computer science. Where we do need CS is in the embedded space, but even that's debatable. Thin clients are coming with 2 GB of flash onboard, Apple's iPhone is going to have an 8 GB drive. You can write the most inefficient code in the world, and no one will notice.

    The other problem is that most of the methods for solving problems have become built into code libraries, meaning that they're accessible to non-CS people. You can call a Sort() function in any library and get an okay result.

  164. CS Dead? Sure. Look at your coworkers. by w3woody · · Score: 1

    I'd say that Computer Science has been dead for quite a while based upon the quality of the code that I've seen written in the corporate world.

    If more programmers had some sort of computer science background, they wouldn't be making the horrific mistakes that are being made on a daily basis. I've encountered people who are writing user interfaces who have absolutely no knowledge of the science of human-computer interfaces (and who don't understand that taking 5 seconds to respond to ON_PAINT is not acceptable), people writing server-side software who think Java's LinkedList and ArrayList objects are the same thing and who use them interchangeably without understanding the performance ramifications, and people who whack together multi-threaded applications by trial and error who think "formal method" is the instructions on how to put on a tuxido.

    It shocks me the number of simple and stupid mistakes that are made in the workplace that were solved in the computer science literature literally decades before the guy was born.

    I think the reason why people have such disdane for Computer Science--and why it is dead, much to our great loss--is because of the myth of the teenage ubergeek hacker. We see that myth all the time in the workplace: why hire a thirty-something with 10 years of experience and a college degree when you can hire a "clearly superior" twenty-something whose 10 years of experience started when he dropped out of high school. After all, natural talent, or so we are constantly told, is superior to a computer science degree which somehow actually saps vital energy and IQ points from the muddle-headed college student. (And sure, while a college degree doesn't guarantee that you can code, it does mean that you've been exposed to things like algorithm analysis and and formal (non-tuxido) methods.)

    This active disdane for education and a belief that the uneducated geek is the superior geek--an active disdane that is even promulgated by Hollywood, for heaven's sake!--means that problems that have been solved half a century ago continue to baffle corporate software developers.

  165. The King is dead.. by hador_nyc · · Score: 1

    All hail the new King!

    --
    - Mike
    Once you've lost your temper, you've lost the argument - Me
  166. If the underlying tools are expensive... by tepples · · Score: 1

    Java Imaging, Matlab, Mathematica (both with the image processing libraries) to develop new algorithms. No large-scale programming here. Which leaves the door open to the creation and polishing of less expensive or even Free alternatives to MATLAB and Maple or Mathematica, right?
    1. Re:If the underlying tools are expensive... by mikael · · Score: 1

      Most of the people who work here have mathematical/engineering backgrounds rather than programming/software development backgrounds. Most research papers are based on a image processing pipeline composed of 10-20 stages (a one page script in Matlab). As we have a site-license and tutorials for Matlab, and demand from employers to learn this application, this becomes the default for development. Learning to maintain and enhance an open-source application would probably take more effort that writing the original script program.

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
  167. Is Slashdot dead? by TheLink · · Score: 1

    off-the-cuff posts are removing much of the demand for high-level editorial skills...

    Plus all you need to do is rehash old stories, or even just dupe them... And voila 300+ comments. ;)

    --
  168. Repost? by fanatoly · · Score: 1

    I believe this article had been slashdotted in the past. I even wrote a blog entry summarizing my thoughts on it. Although it seems that writing inflamatory articles about Computer Science is an easy way of herding slashdot traffic.

  169. Incentives! by Anonymous Coward · · Score: 0

    Oh Heavens to Betsy! We must hand out more H1B visas so employers can hire more foreign programmers for less money! That should encourage people here to invest time and money in a career where you know the government is actually helping the industry drive the wages down. Oh, and let's give the rich more tax cuts, that is always the key to fixing everything.

  170. Computer Science != Software Engineering by Anonymous Coward · · Score: 0

    Why ask if Computer Science is dead, and then argue that Software Engineering and/or Programming is dead?

    Computer Science, is the mathematics, the computational theory, etc. While much of it is useful for the people who write programs to know, "Computer Science" is not programming.

    Programming is the art/practice of writing methodical steps for the computer, to solve a problem or perform a function.

    Software Engineering is the "time and motion studies" stuff, as it deals with Programming: What models help us better visualize the design, so that we can best plan the design, best communicate the design to the programmers who will be writing it? What practices and checks and tools do we use so that we are able to build that software and test it?

    Anyways, my slant on the article, is that he is asking "Are all the programs worth writing, already written, and are they as good as they should be?" And thats like the head of the patent office in the early 1900s declaring that "Everything that can be invented, has been invented.". Just because you can't think of what the Next Big Thing will be, doesn't mean that there isn't going to be a Next Big Thing...

  171. Reminds me... by defile · · Score: 1

    As commercial software products have matured, it no longer makes sense for organizations to develop software from scratch.

    Everything that could be invented already has been!

  172. MIddle Layer by Anonymous Coward · · Score: 0

    Simple, in thierarchy of things, computer scientists are the middle layer between Software Engineers, and simple developers. Computer scientists have the math, and analysis skills, while the engineers have the more specialized science and engineering background to keep things together.

    As the demand for skilled software engineers (not simple developers mind you) increases, computer scientists will be needed to keep everything in check (Think formal verification, Contract-based Design, formal proofs).

    Of course, without the simple coder, nothing much would get done after all.

  173. For the last fucking time... by ctnp · · Score: 2, Insightful

    Computer Science != Software Development Maybe I'll grant software development as a subset of computer science, but the efficiencies of software-as-commodity, and the 'dumbing down' of software dev. practices in general shouldn't be construed as a lack of need for actual SCIENTISTS who study what will come NEXT for the industry. The advent of quantum computing is a prime example of why the world needs more researchers spending time in the lab despite how much more efficient the commercial development industry has become.

  174. hard can be popular by davidwr · · Score: 1

    One of the most popular EE courses at my alma mater was taught by a grad student. He made it REALLY HARD but REALLY FUN.

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
  175. Software is an art by Anonymous Coward · · Score: 0

    Donald Knuth said so.

  176. It's a matter of professionalism... by gillbates · · Score: 1

    There are a few people who are focused on "how do I make this better?

    That's because a computer programmer's time is a lot more expensive than the machine on which his code runs. In some of my computer science classes, I was told flatly to ignore efficiency because it was cheaper for business to buy a faster computer than it was for me to optimize the algorithm in assembly.

    This is just the classic conflict between engineering and business - the business wants a shed, and the engineer wants to build a cathedral.

    --
    The society for a thought-free internet welcomes you.
  177. Re: Why was this guy modded a troll? by TropicalCoder · · Score: 1

    Try moderating, and you will quickly discover how easy it is to accidentally mod someone -1 troll. When you click to select the desired moderation, then scroll through the page to move on to the other comments, lo and behold, the focus remains in the box you just clicked in, and it scrolls to the end of it's range. If you fail to notice this, in the end when you click the Moderate button, the accidentally chosen mod is locked in. I have reported this behaviour to the "authorities", and suggested that at a minimum there should be some warning about this, but no action taken as far as I could tell. I am really surprised that I have not seen anyone else mention this.

    Note: The behaviour I just described was observed on WinXP with Firefox. The work around is to make sure that always after doing a moderation, you immediately click outside the box before scrolling with the cursor keys.

  178. I'm about to go to college... by Hiki · · Score: 1

    ...and it really sucks to know that my future is looking bleak before I even begin..

  179. And what about books? by richcoder · · Score: 1

    The great books have been written. There is no more need for writers.

  180. Thanks for the insight by michaelmalak · · Score: 1
    I quoted you over on johntaylorgatto.com:

    ---

    Karl Marx famously wrote in his Communist Manifesto in 1888:

    But, you will say, we destroy the most hallowed of relations, when we replace home education by social.
    But Horace Mann makes Marx look like a Johnny-come-lately by writing in 1841:

    Let the common school be expanded to its capabilities, let it be worked with the efficiency of which it is susceptible, and nine-tenths of the crimes in the penal code would become obsolete; the long catalogue of human ills would be abridged
    And let's not forget John Dewey who in 1907 wrote in his School and Society:

    Whenever we have in mind the discussion of a new movement in education, it is especially necessary to take the broader, or social view.
    Today, I read a short stinging rebuttal in a Slashdot comment:

    the modern education is supposed to make kids fit better into society, so how come they are bigger misfits then any generation before them?
  181. Real CS isn't _science_ anyway. by TerranFury · · Score: 1

    Science is about applying the scientific method. It's about hypotheses and experiments. What experiments do you do in CS? Computer Science is not an observational discipline. It's applied math.

  182. laws of physics & math same in Bangalore by Tablizer · · Score: 2, Insightful

    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.

    But it is cheaper to do it overseas. If it does not involve local culture or heavy interaction with the customer, then firms will find it cheaper to offshore such work. The laws of physics and math are the same in Bangalore, but paychecks are not.

    I see IT in the US moving toward more hands-on work. Companies want liaisons between customers/users and technology, NOT technology purists. It is not that technology purist demand is outright going away, it is that the demand is shrinking, or at least stagnant compared to liaison work.

    1. Re:laws of physics & math same in Bangalore by dgatwood · · Score: 2, Interesting

      Nonsense. It is cheaper to do it at universities where you can pay the researchers next to nothing even by outsourced standards. Better still, foreign universities where you can pay next to nothing even by American university standards. :-)

      Corporate environments don't tend to lend themselves to heavy research. I'm sure there are exceptions, but they are the exception. If you want to do research, do a postdoc at a university. That sort of thing has limited potential for long-term financial stability, though, unless your end goal is to become a college professor. Generally speaking, there are plenty of research tasks to do and plenty of graduate and undergrad assistants to do it.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    2. Re:laws of physics & math same in Bangalore by Anonymous Coward · · Score: 0

      The laws of physics and math are the same in Bangalore, but paychecks are not. The rules of English grammar and spelling are the same over there, too, but they're not observed as strictly. Lots of IT shops have a "the honeymoon's over" attitude towards outsourcing. Sure, it's cheaper, but you get an inferior product. Not because the developers are inferior, but software is all about details, and that often either gets lost or wasn't clearly specified in the first place. Sure, everybody now knows that you should send at least a manager and a system architect to supervise and guide the offshore team, but there are still communication issues that take time to straighten out. Plus you've now lost a manager and a systems architect for several months, so that's lost productivity that has to be (conceptually) charged to the offshoring project. So instead of "I can hire five Indian/Russian/Chinese/Vietnamese developers for the cost of one American", you find that if you want to hire the five offshore developers, you have to pay the American anyway to go over and make sure that the specs are followed and the code is maintainable and performant.
    3. Re:laws of physics & math same in Bangalore by Grishnakh · · Score: 1

      And you probably have to pay the American more than usual, too, since you want him to go stay in a foreign country for several months away from his home and family.

  183. CS != CS Academic Research by akypoon · · Score: 2, Insightful

    Judging from the author comes from, I could understand why he wrote the article. And having spent some years in CS academic field myself, I don't disagree with the picture painted by the author.

    But computer science academic research is not computer science! In academic research, you have to publish good results and write funding proposals (that actually get the $). And often, long term research (say 5+ years) that are worthwhile are neglected by grant committee because they like to see results sooner or they deem the research itself is too risky. So to some people (e.g. non-tenure track researchers), their prospect could be better without pursuing CS research at this time.

    I start to suspect that what we observe now in CS academic is merely a consequence of the gradual disappearance of long term CS research over the last two decades. After all, without new ideas and concepts, CS academic research would exhaust the existing ones eventually. And when these ideas are being reused too frequently, the public stop caring and CS academic research loses funding support.

    But then, if we look back to history, we can see great research can be done by people without funding. e.g. Einstein and Godel both completed their monumental works without people funding them. So I wouldn't be too pessimistic about the future of CS. CS Academic Research is another story though.

  184. CS is dead. Long Life Software Engineering! by davek · · Score: 1

    As a member of the small club of engineers who graduated in RIT's first Software Engineering, I can say that SE is the future of software development, not computer science.

    It simple semantics. There will always be more people interested in the practical application of science (i.e. engineering) rather than the pure research. The demand for good engineers who can craft good software solutions is growing, not shrinking. Reports of a drop in CS enrollment only only reflects the decrease in the usefulness of the study of the pure science of computers. Since SE is in its infancy, I believe that over time, more people will gravitate toward the engineering side of software.

    The other point that is often ignored in this discussion is the revolution of Open Source Software. As more companies realize that F/OSS is the only cost-effective way of developing software, this will only increase the number of "blue collar" programmers that are required in the workplace. Many of these will be your average script kiddie, but they must be managed and directed by an engineer, much like the construction of a building. I don't want a scientist making sure the walls don't fall down around me; I want an engineer.

    that's my admittedly biased $0.02

    -dave

    --
    6th Street Radio @ddombrowsky
  185. Econ 101 by GCP · · Score: 4, Insightful

    I program because I love it. I've been doing it since before the Internet boom brought in all the carpetbaggers.

    Some years back, before the boom, I decided that Moore's Law (and other economic forces) were going to increase the number of programmable devices exponentially for decades to come, creating an insatiable economic demand for programmers. When the iBoom arrived, I saw it as a short-term overreaction, but still a part of long term extreme ramp up in demand for programmers.

    Then I started studying economics seriously and discovered the mistake in my thinking. Demand for programmers is not proportional to the amount of code running in the world. I've written code that will soon be on a billion (with a "B") devices, but it's the same code it was when it was on fewer than 100 M devices, and those of us who wrote it easily fit in one small cubicle pen.

    Real demand for programmers depends on how much NEW code has to be written and HOW FAST. (And by "new" I certainly include maintenance, glue code, customization of existing packages, etc.) If the number of programmable devices explodes (as I still believe--and observe), much of it will run code written by very few people, customized a bit, tweaked and glued by a few more people for other devices, and massively replicated. And if that customization can be done slowly enough, it can be done by an arbitrarily small group of programmers. Custom code for your own personal needs and those of your business group will constitute most new code, and that will be supported by tools that do what you want with a minimum of "programming" on your part--tools like Excel.

    Then the same Moore's Law and other forces that create the "everything will run software and be connected" world of the future also brings a hundred million or more new potential programmers into the developed world economy (without ever leaving their local undeveloped economies) each year to meet the demand for however much new code needs to be written each year, and the job of "programmer" is going to look more and more like various factory worker jobs (the decent ones, not the dangerous ones.)

    So the professor is decrying the falling interest in Computer Science. How would enrollment look in a "Factory Science" department at his university, I wonder....

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
    1. Re:Econ 101 by misleb · · Score: 2, Insightful

      hen the same Moore's Law and other forces that create the "everything will run software and be connected" world of the future also brings a hundred million or more new potential programmers into the developed world economy (without ever leaving their local undeveloped economies) each year to meet the demand for however much new code needs to be written each year, and the job of "programmer" is going to look more and more like various factory worker jobs (the decent ones, not the dangerous ones.)


      What kind of work are you thinking of, specifically? I'm having trouble imagining how programming would look as a factory worker job. Having assembly-line "programmers" as IT advances seems counterintuitive to me. Seems to me that all the real grunt work should be done by the off-the-shelf software and all the really creative/custom stuff still needs programmers.

      The only real trend I can identify is an increase in high level tools/languages used. But I don't see how that makes programmers more like factory workers. Just because you're not twiddling the registers of the video card with assembler doesn't mean you don't need a solid foundatation in computer science (ok, nobody NEEDs such a foundation, but it helps).

      -matthew
      --
      "THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
    2. Re:Econ 101 by The+One+and+Only · · Score: 1

      So the professor is decrying the falling interest in Computer Science. How would enrollment look in a "Factory Science" department at his university, I wonder....

      I think that's called "operations management" at most universities. They try to apply a lot of that to service industries, although things like statistical quality control and process improvement are clearly better suited for factories.

      --
      In Repressive Burma, it's not just your connection that dies. slashdot.org/comments.pl?sid=314547&cid=20819199
    3. Re:Econ 101 by GCP · · Score: 1

      I'm having trouble imagining how programming would look as a factory worker job.

      You might be thinking of a certain type of machine-like assembly line work, but think instead of the Taiwanese electronics factories that do small run circuit board stuffing, part by machine and part by hand, which requires some repetition, some customization, some setup and config of the little board stuffer robots, following the specs, testing, etc., by the factory workers. Back in the '80s, I was involved in outsourcing to these factories. In recent years, I've been involved in outsourcing software to India, and their software factories in Bangalore didn't seem all that different from the board stuffers in Taipei. We didn't outsource strategic design, or have them work on the "crown jewels", but instead sent them specs for auxiliary work seen as what you called "grunt work" here, yet not really amenable to automation.

      Yes, in the future more things will go from human-written spec to working code with the implementation done entirely by code generator, just as in the future, more manual assembly operations, robot setup & config, etc. will be able to go from human-written spec to device, untouched by human hand. That evolution has been progressing for years and will continue, both with hardware and software, but where the machines can't yet do the job, you have factory workers.

      Factory workers often are more skilled and do more brain work than we "knowledge industry" types give them credit for. Yet there are enough people in the developing and newly developed economies gaining these skills that factory work is not especially lucrative in the developed economies. Their real wages have been falling (in the developed world) for decades. I see programming getting more and more that way. It's useful, important work that requires skills and training, but so is factory work.

      And as for the need for computer science, the board stuffers need real electrical engineers, too, but they don't need many of them. And often, the electronic systems can be created by trained technicians without any academic EE education by reading the docs and wiring together preassembled subsystems, like many hardware hackers here do with no formal EE education. You can "wire up" a database-backed Web app by following a pattern involving gluing together components from Java, .Net, Ruby on Rails, PHP, MySQL, etc., without any knowledge of recurrence equations or NP-completeness or context-free grammars or first-order predicate calculus or whatever.

      I love informatics (what CS ought to be called), but the demand for it is not what I once thought it would become as every doorknob gets "smart". There will be some fairly good jobs for those with solid theoretical foundations, but most programming jobs will be more like skilled factory jobs, in my opinion, and probably won't pay much more. (In fact, I think a lot of young programmers might be surprised to find out that skilled factory workers often earn more than they do already.)

      --
      "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
    4. Re:Econ 101 by Anonymous Coward · · Score: 0

      for the last 12 month I have been writing glue code to make various off the shelf software packages work together, and customizing those off the shelf software packages.

      I wonder how many "web connectors" I will stand to write under pressure and with poor specs until I will find that car washing is a glamorous job ...

    5. Re:Econ 101 by Doctor+Memory · · Score: 1

      Having assembly-line "programmers" as IT advances seems counterintuitive to me. Nobody programs in assembly anymore — oh wait, assembly line, n/m...

      Seriously, I can easily imagine groups of programmers whose job it is to write system adapters so that various systems can share data. They may not even write the code, they'll see blobs on their screens that represent "objects" (web services, messages in a message queue, EJBs, etc). Control-click on two blobs to define a translation conduit, the up pops a couple of windows showing the attributes of each object and maybe a tools frame. Click on an attribute in one object then on another attribute in the other object defines a mapping between them. You may need to map through a tool (convert double<—>float, Oracle NUMBER(9,2)<—>DB2 FIXED(9,2), whatever). Not something that can be done automatically, but not something that requires a lot of training or skill either.

      I actually wonder if it won't go the other way, though. Imagine something like UML, but that can actually describe 80% or more of a system's requirements. You'll have a systems (or "business process") analyst work with the users to define the requirements, and then the UML is translated directly into the final system. Hell, maybe they'll come up with a system that can execute UML directly, who knows? But in those cases all you'll need for most systems are one or two high-end people. Eventually we'll have standards in place to define how data is stored (everything gets defined using ISO domain types), communicated (XML will never die) and processed (no more questions like "do we post revenue in the quarter the sale is made, or when we actually receive payment?"). If you think this won't happen, just stay on the line and I'll connect you to Mssrs. Sarbanes and Oxley...
      --
      Just junk food for thought...
  186. Hmmmm by nukepuppy · · Score: 0

    maybe its cause BSD is dying?

  187. Is McBride credible? by Anonymous Coward · · Score: 1, Insightful

    I seem to think that after reading his CV (Resume) linked on http://www.cse.dmu.ac.uk/~nkm/ that McBride is not really in the position to be able to comment on such topics. His experience with Computer Sciences is minimal and his real world experience of Computer Science is very minimal. He does however seem to be able to write articles that are subjective and biased toward outdated development approaches. (SSADM for instance).

    It seems that the article he wrote is neither accurate or credible. The amount of damage that he is causing to DMU students following CS related subjects at is unacceptable and should not go away quietly. I know for sure that if I was a student studying a CS related subject at DMU I would not be happy and would also be forwarding him an invoice for my full course tuition costs, seeing as he has in effect has devalued any DMU CS related degree immensely.

    I call upon the staff and principles within the DMU CS department to come forward, debunk his comments and then terminate his involvement with the university post haste.

  188. I heard all this in the early 90's by Anonymous Coward · · Score: 1, Insightful

    The fact that the person making the software now dictates to you how to run your business doesn't seem to matter to most folks. Unless they want to stay competitive long term and have an edge over the competition. What differenciates(sp?) you as a business? Using the same old damn forms MS pushes on everyone, or the same ERP, or the same sale brochure template or website look/feel?

    Accounting hasn't changed much over the years, but after that from Distribution facilities to resturant management. Do you really want someone telling you how to run your business? Off the shelf is good for perhaps a small operation, but a large one needs to think in unique ways to stay in business. Having the technical experts on hand to make those alterations for 5mill a year might beat to hell the 14mill a year you will pay on consulting and software lisc costs.

  189. ... outrageous by Anonymous Coward · · Score: 0

    This is the most ridiculous thing I have ever heard. Having worked on a number of development projects for both banking and air traffic control agencies, I know first hand that much of the software is terribly outdated... written in outdated languages and poorly maintained. Also, as far as outsourcing... what about export controlled software? As was said above, Computer Science like any Science is about solving hard problems; and thus, these skills will always be applicable.

  190. There is away room for improvement by Anonymous Coward · · Score: 0

    It is the industry and management that makes things "dead". There is always room for improvement and better ideas for anything just that the industry and management doesn't want to pay for these improvements and better ideas so we all suffer for this. The industry and management wants to live off their laurels and don't want to invest in better ideas not risk their "investments". Like many companies they started with "crazy" ideas that eventually became mainstream and profitable. However since the .com bust all of the industry felt the pain of some ideas not paying off and many cases lost money but with careful management of the project these ideas can bloom into mainstream and profitable products. The main causes of the .com bust is the mis-management of resources and squandering of money by people who were not qualified to run the company in the management sense.
    This is where Open Source excels. If you have a good idea and willing do the work on it and put under GPL and eventually someone will see your work and "buy" your product you and the company buying your product will profit from this.

  191. The Difference by Plutonite · · Score: 2, Insightful

    The difference between computer science and what is nowadays referred to as CS is very straightforward, but it is often confused due to the fact that computation has evolved from being a theory to being an industry based on a theory, where various engineering and techy skills are needed.
    Take relational databases and SQL. Coming up with the concept of storing information based on predicates concerning relationships between data: Science. Writing some SQL queries/designing a database: Engineering.

    In short, if you can express the results of the research in a form that is mathematically verifiable, you research is in the domain of the science of computation.

    And while at it's heart CS is purely mathematical, we often see today a mixup in universities where informatics(theories concerning how computational frameworks should be, e.g systems design..etc)is referred to as CS. This is simply wrong - technology is not science, even if it develops on scientific basis. I personally think neither is going to "die" soon, although the true theorists will have a harder time justifying their existence (coming up with new mathematics) than the informatics/soft.engs, who will always have some room to expand and design new technology and technological frameworks. CS is not physics - the science is purely conceptual and the main theory is established with mathematical certainty because, in fact, it is mathematics. To stay alive we need to find more questions to ask, and there are a few left I think.

  192. Exactly where I'm coming from by benhocking · · Score: 2, Insightful

    I see no reduction in computer science work here at my university. The possibilities are increasing, not decreasing. One can bemoan the out-sourcing of American jobs, but that has nothing to do with the fact that computer science is not dead. Such a statement is as ridiculous as saying physics is dead.

    Computer science is still a very vibrant research field.

    --
    Ben Hocking
    Need a professional organizer?
  193. CS in America IS dead... and the corpse smells by Anonymous Coward · · Score: 0

    Computer science in America is dead, just like textile jobs and meat packing jobs. They also were once a good income. CS these days, you are lower on the totem pole than the guy who cleans out the toilets. At least the janitor in a building is trusted with all the keys to the facility, and he works a set number of hours.

    Lets compare two people. Jane CS, and Joe Sixpack. Jane CS scores high on the SAT, gets into a decent state university. Joe Sixpack gets in because his father graduated from that school.

    Joe Sixpack goes into general business, and because his professors don't really care much, he makes A's and B's, and has a 3.9 GPA upon graduation. His idea of studying consists of beer slides, beer bongs, and reading previous test notes stored at his fraternity's file cabinet.

    Jane CS goes into CS. She is in classes with very few Americans, but foreign students which the US government pays for, ignoring American education. Because grades are relative on the class, she has to fight, tooth and nail to get her C's and B's against people who have had far better schooling in their homelands, compared to smoking joints and playing football in American high schools. She gets her degree by studying 36-40 hours a week.

    Then comes the job market. Majors don't matter, just GPA, so Jane keeps losing out on jobs. Joe gets in fast because he is a member of a fraternity and has a high GPA. It doesn't matter that it was general business Joe got his degree in where courses like "History of Rock & Roll" were the core of his major. Jane eventually gets a job, but she gets a position under Joe, doing code monkey work.

    To keep at the job, Joe just does his work in sales, does his eight, out the gate, if he isn't out on three martini lunches with clients. Jane, on the other hand, is putting in 60-80 hours a week to comply with marketing's demands for new features, as well as customer support's demands to fix bugs that are causing clients to go elsewhere.

    One year later: Jane's position is constantly threatened because the company is firing their highest paid devs to get in I9 workers who barely speak English, but can fill the bill with code. Joe's position is secure because he has been yakking with the managers, and now made supervisor. Joe drives to work in a nice, new Lexus (paid for by the company) while Jane is still driving her Geo Metro that she used from her college days because she is still paying off the monster student loans incurred from the CS degree.

    Five years later: Jane is working as a waitress, because the company she worked at finally outsourced all development. Her Geo Metro still takes her to work, and she hops to get a Honda Civic one of these days. Joe is mid-level exec, making six digits a year, and much more than that in stock and stock options.

    Trust me, CS is a waste of time, and a sure way to ensure you won't be able to feed your family. You will always be replaceable by outsourcing to another nation, or getting thrown out for an I9 worker. If you are a sysadmin and there is a security breach, its *YOUR* ass who is going to prison due to SOX, HIPAA, and other laws, even if its obvious that users are posting their passwords on their monitors and just don't care about security. If you are a programmer, you will be demanded to meet insane deadlines set by marketing because they promised features to their clients that absolutely don't exist.

    To boot, when you graduate school, you will always be passed over for jobs, and the people with the generic business or education major degrees will get them before you. Why? HR people look if you got a degree, and what your GPA is. To them, it doesn't matter if the major is "hard" or "easy", its just that the guy who has a business degree has bigger numbers than the person in computer science.

    Come promotion time, the business major's job is going to stay put. The CS person's job is subject to the winds of outsourcing and how fast I9 paperwork can be done, to find cheap foreign la

  194. Don't confuse programming with "apps for Windoze" by Impy+the+Impiuos+Imp · · Score: 1

    You guys do understand that an enormous chunk of software is embedded systems, right? It may even be most of it, for all I know.

    You realize there are 20-30 other (typically real-time) Operating Systems out there to choose from, right? There's more than just writing Squeedunk Utility and porting it to Windows, Linux, and Mac, right?

    And what about games? Those by definition do not stabilize -- people always want new stuff, not "off the shelf" stuff (though I do recommend Sacrifice and Total Annihilation even though they're quite old.)

    --
    (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
  195. Wow by starX · · Score: 1

    The level of sheer stupidity it takes to come up with a statement proclaiming the death of computer science must be on the orders of magnitude calculable only by next generation processors. Until the hardware and the software is designing and building itself, we'll still need humans who know how to work with the tools and practices available to them, and who are capable of pushing those limits. Enrollment is going down? So what? In my experience, a bunch of the people in my CS department were A) in it for the money, or B) in it because they thought that they were good at using a " 'puter " because they could get to the task manager and had been on IRC once. Good riddance to them.

  196. Only one way to tell... by snowwrestler · · Score: 1

    What does Netcraft say?

    --
    Build a man a fire, he's warm for one night. Set him on fire, and he's warm for the rest of his life.
  197. Is slashdot sensationalist?!?!!? by sentientbrendan · · Score: 0, Flamebait

    next on fox new-er slashdot, flying hippos are eating your invisible babies, and you can't do anything to stop them! Known terrorist, bill gates, pledges to sell more software! Is linux under attack?!?!

    it goes on and on...

  198. The "Old School" is dead, not computer science by Talgrath · · Score: 1

    I'd say that the article author is right in that computer science as he knew and loved it is dead; by and large. The need for people to write code that interacts directly with the hardware is all but dead in most professional software coding. There are certainly still fields to be explored, like any scientific field, but I think that much like many scientific research fields, computer science research will become a niche. Instead, what I think you will begin to see is specialized computing professionals (and university/tech school training to that effect) and computer science no longer be intertwined. The "old school" is dead, long live the "new school".

  199. Utter Rubbish by Anonymous Coward · · Score: 0

    This is the same logic that states that programmers only assemble applications from existing parts. What nonsense. If this were true Microsoft would take YEARS to develop new versions of Windows or Office applications. The Linux community wouldn't constantly patch/revise/enhance the kernel and the variety of X-Win GUIs.

    This notion may have it's roots in the MBA school of though but it simply doesn't matter. Skilled and educated developers are absolutely necessary. The education establishment should not abandon Computer Science but rather reinvest and educate the next technology leaders for America

    1. Re:Utter Rubbish by Plekto · · Score: 1

      Typical rubbish.

      We need CIS/CS departments for one critical reason, which is that the past and the future(10-20 years from now) belong to unix. It just took this insane detour through Windows and MacOS(pre OS-X) for a while.

      And you can't do anything meaningful in unix without exercising your grey matter. They jsut need to stop teaching applications and get back to the basics/start teaching programming again.

  200. The Answer is Easy by Anonymous Coward · · Score: 0

    There is an obvious answer that is sure to make EVERYONE HAPPY. And everyone has it a little right, but are missing the over all picture.

    For some reason writers, academics, and managers keep lumping all CS/MIS/IT/SWE/etc degrees into one great big pile that they like to call Computer Science.

    The fact is we have a number of DIFFERENT roles that need people, and the numbers per role are shifting.

    There is a continuum of IT, Business Analysts, Programmers, Software Engineers, and Computer Scientists. Today we have less of a need for formal CS grads, but have more of a need for Business Analyst and other types.

    What we need is NOT to put more Business into CS nor more CS into Business. What we need is to break the continuum up into layers similar to what you see in other engineering professions. Are Physics departments expect to take on more Electrical Engineering roles? Are EE departments expect to take on more Physics roles? Of course not! They COMPLIMENT each other, but they are UNIQUE.

    Similarly we need to see CS for what it needs to become. A small body of CS majors working on the theoretical and the uber-technical (like Physics), then we need a larger body of Software Engineering majors studying the application of basic technology and theory, and the creation of useful artifacts. And finally we need even larger numbers of students majoring in the INTERDISCIPLINARY fields that mix in business, medicine, health care, urban planning, etc, etc.

    Frankly CS departments, professors, and universities are doing this to themselves. There is great opportunity for growth here, but the opportunity is not in pure theoretics. The natural progression of any science is for it to become applied. The same is true for CS. Free CS from bondage, let it grow! Pure CS will survive.

  201. There is one benefit by bryan1945 · · Score: 1

    Less expenses for coffee, Jolt, and pizza!

    --
    Vote monkeys into Congress. They are cheaper and more trustworthy.
  202. In regards to blaming Java- by bryan1945 · · Score: 1

    I have a BS in EE and am going back for an MS IS. There is a "core curriculum" that all MS IS people have to take, and then it breaks up into 4 different specialties (Management, CS, Legal, and InfoSec (my focus)). Unless you have a CS degree you basically have to take the Intro to Prog class- Java or C++. I know this is anecdotal, but the same guy teaches both classes, and he put heavy focus on OO concepts rather than "how-to Java". And as some of the poster's have said, there was some emphasis on documentation, but it was more on the comments rather than the Word doc. And if the program didn't work correctly, forget 'bout it.

    Just thought I'd put out a positive story.

    --
    Vote monkeys into Congress. They are cheaper and more trustworthy.
  203. It seems to me CS is taking over other subjects! by poliopteragriseoapte · · Score: 1

    I recently started doing research on sociological aspects of social networks and collaborative web sites. This is a job that a sociologist could do. Instead I, as a CS person, am doing it. Why? Because to do what I am doing, you need to be pretty good at algorithms, math, and other CS topics.

    My general impression is that CS is more and more useful to do any kind of job, and in fact, a CS degree or background is one of the most flexible ones to have. All jobs require CS, and if you know the core topics in CS well, it will go a long way.

  204. You're doing engineering, get over it by Anonymous Coward · · Score: 0

    When ever you apply science, you're doing engineering.

    If you're really lucky, it might be "rocket science" - that cutting edge where the maths/science is still catching up with experimental engineering.

    But I'm sorry, unless you're creating repeatible experiements or proofs (or at the very least, surveying the literature), it's just not science. (now, when was stellar navigation for UAVs solved again - oh, 1950 ish ;-)

    I'm not going to argue with the assertion that many colleges publish graduate and undergraduate papers that are applied science, or worse, well behind "industry practices". Indeed, as someone who regularily assists interns it happens far, far too often.

    Nor am I going to suggest that "code monkeying" is engineering - indeed it's at best a skilled trade, at worst "craft" - in the sense that some cheap french wine pre 90s was often "traditionally crafted".

    If you're not doing analysis from first principles and/or crunching some hideous numbers, it's probably not engineering either. (If you design a system, hoping that the numbers will work out once crunched, then that's "architecture" :-)

    So, given that I missed it, where was the basic research and formulation or testing of new theories in your work?

  205. Remedial education 101 by Anonymous Coward · · Score: 0

    Employers via offshoring and other cost cutting measures have made the benefits of having an IT/CS based job much much less rewarding in the last 7 years.

    Entry level workers will not enter the profession for that reason. Experienced workers will leave the profession for that reason.

    One cannot expect existing and perspective workers to be motivated to be in IT/CS when an experienced worker makes 1.333 that of someone with 1-2 years experience (i.e., inflation in the USA is up 20% in the last 6 years).

    Individuals want to better their income over the long term. A company that gives its workers a 4% raise lower their worker's take home pay after inflation (3%) and after taxes (1/3rd) by about 1%. In other words, the company tells its workers, we value you so much that we will pay you less next year. This is assuming that medical premiums do not consume the 4% raise.

    A company wants to pay the workers in the the USA and India roughly equivalent wages (i.e., total cost) puts the USA workers into the $5 to $15 an hour wage range. This does not encourage students to enter the industry.

    This is compounded by the typical IT job reputation of long hours and stressful deadlines.

    NB: Taxes are 1/3rd or more given that income taxes are 25%, social security tax is 6.2 percent, medicare tax is 1.45% for a total of 32.65%.

    Just ask your IT co-workers, 'Are you encouraging your son/daughter to study computers?' You will find almost no one will encourage their kid to study computers and enter the IT field.

  206. Compsci degree going; IT-tech degree replacing by lpq · · Score: 2, Insightful

    How many computer science graduates are actually doing computer science.

    Working as a programmer in an IT department doesn't usually have much to do with science -- it's about trying to create more standardized cogs from a growing number of previously coded cogs.

    How much research is being done today on individual users benefitting from 32-128core machines?

    Assuming some magic doesn't happen and GHz start climbing / doubling without frying, it seems like they are just raising GHz/chip by adding more cores at similar
    clock rates. How can this benefit the average PC user? If it can't be exploited for "individual persons", it sounds like the PC may be a thing of the past.

    Is that what people want? Right now, the only ways of using multi-cores is usually running separate programs at the same time -- if you can use that -- but a home system doesn't usually need to serve web pages to 1000's of users. OR, divide your machine into "VM"s Nice for test/develop/production/redundancy, but again -- not too helpful for the average joe wanting programs to run faster/smoother, more user friendliness.

    What will it take to use Parallel computing in the Personal Computer industry? doesn't that sorta imply, if not the death, a serious problem in the Personal Computer industry.

    Do we have enough cores to start building some practical AI's? Can we develop
    special compilers and light-weight threads (i.e. - not separate processes) to allow use of multi cores dynamically in an individual program (for loops not needing previous loop result could all be parallelized if parallelizing cost to create helper threads for a few to several loops could have low enough overhead to make it worth it.

    Seems like AI and parallelizing are at least two areas that need computer science, but that doesn't seem to be what most people are doing these days. Might use it in voie and face recognition, but again -- not very general tasks.

    What companies are doing Computer Science these days? Seems like most employers just need development of applications to run curent "paradigms. No "computer science" needed.

    Most high level developers at companies -- even in Open Source (or at least the Linux Kernel) are awfully conservative when it comes to doing computer science. They want the tried and true, step-wise development vs. large scale "disruptive technologies" that could enable whole new ways of doing things. People at the top of most large projects (commercial and O.S.) are too conservative to be doing real computer science.

    Maybe research grants? Seems like the Bush idea of research grants are things that are guaranteed to provide benefits in the near future (soon enough to be used in the theater of battle, for example).

    Is there any place for computer science research outside of getting your doctoral?

  207. Computer Science requires encouragement by Targon · · Score: 2, Interesting

    Back in the mid to late 1970s, computers were these things you only heard about in movies or TV shows for those of us growing up back then. Sure there were some people who used computers, or who had access to them, but access to computers was something that only very large corporations had, or schools, or certain government jobs(but not all). The closest most people got to a computer was a terminal(a screen with keyboard that connected to a computer).

    The result of this is that there was something mysterious about computers. When the first personal computers became available to the general public(many will remember the Tandy/Radio Shack TRS-80 models 1,3, and 4 with the model 2 being more of a business model, and the Apple 2 series), these machines became the first ones available to those who didn't have enough information to build their own computers. They were fun, allowed for playing some games, and this inspired many to continue to learn how computers worked. There was also a good amount of encouragement given by teachers back in those days and into the 1980s.

    So, between having an interest in computers and technology by some, and being encouraged by others to continue learning, Computer Science grew in popularity. As time went on, and computers became more and more common in the 1980s into the 1990s, there was continued support by those in education and in general for those who showed a true interest in computers.

    So, what happened to change this SHOULD be the question being asked, not just looking around and complaining about the current situation. As technology became more and more common, the number of jobs grew in the sector until the tech crash in 2001-2002 when the real down-turn in the industry really started to show up. With many jobs lost, there was an excessive number of computer science trained people around.

    If you were in high school at that point and you were hearing about tech jobs being hard to get, switching focus might have seemed like a good idea. For parents and teachers, encouraging people to go into a field where the job market wasn't very good also wouldn't seem like a good idea. And so, here we are, in 2007, and the job market has gotten a bit better but still isn't booming. Entry-level positions are hard(or harder) to find because of outsourcing. Reports of how programmers are treated by companies(generally long long hours with little appreciation), and a lack of control in the development process as a junior level programmer scares people away.

    The computer industry has also transitioned from being "we need programmers because there are no pre-made applications that do what we want" to having different specialized areas. Now you have networking, system administration, Information Technology, database administration, and other specialized areas. As a result, those with an interest in computers will select a major that fits the area they have an interest in. Why go Computer Science if a MIS degree will get you where you want to go?

    So, the way to get students interested in Computer Science is to encourage them that it is an area that still needs people, and that it's not a major for those who are going to end up as a "code monkey". To be honest, the computer industry NEEDS true computer scientists since most applications seem to have been slapped together by people who may be able to write code, but can't figure out how to design an application(which is why multi-threaded applications are an exception in the MS Windows environment).

  208. CS is definately dying in the UK by Tinz · · Score: 1

    I worked immensely hard at my degree so I could become a scientist - a childhood dream. In 1999, I obtained a 1st for my BSc in Artificial Intelligence and was also awarded a prize. I was refused funding for a PhD by my LEA!!! I couldn't even gather commercial funding as there was no interest at that time in pure research into human thought processes. Years have passed in commercial companies with low wages (compared to the cost of living) and now I have decided to emigrate to the United States. I recently obtained my Visa, and now I am looking forward to picking up my scientific career again with a fully funded PhD, after a couple of years (with much higher pay and a lower cost of living) to build up my savings.

    I advise all current and budding scientists to find a new country. The UK simply doesn't care, just look at the research budgets!

  209. ACM disagrees by soldack · · Score: 1

    This brochure from the ACM, IEEE Computer Society, and the Association for Information Systems claims, "Estimates for job growth in the United States range from 38% to 56% across the computing spectrum. With more choices and more opportunities, it's a better time than ever to begin a career in computing. In fact, according to CNN/Money Magazine in 2006, software engineering is the number one best job for salary and opportunities!" The document is targeted at high school students. In my opinion all the parents have been taken in by the FUD. I have worked in Software Engineering since 11/95 and have seen the market keep growing. More and more people are relying on technology and software everyday. Applications are never "done". There are new features to add, new hardware to support, and new technologies to take advantage of.
    As for outsourcing, I was involved in an attempt to outsource some software development. They wanted to find a company in India who could do Windows device drivers. Again and again, we could talk to the PhD highups but when we pushed to talk to the actual folks that would work on the project we found they had little experience in driver development and almost no experience in development on multiprocessor severs. This happened with several different companies. Also, folks are finding that outsourcing to far away countries is a massive management headache. It takes all the problems of local contractors and makes them worse.

    Outsourcing is like anything in life...in the end you get what you pay for!

    --
    -- soldack
  210. Perfect/Correct by alexhmit01 · · Score: 1

    Semantics... the point is it's derived from a lambda calculus mathematic to the core that can be mathematically proven, establishing correctness. Theoretically, a LISP machine could be built where you could PROVE the correctness of the interpreter, the operating system, etc. Such a system would be crash-proof, barring hardware problems. That's "neat," not really useful in the real world, but it's really neat.

    The point is, using LISP, one can build a LISP compiler, that compiles to LISP operands (I forget, it's been close to a decade since I did this), or outputs machine code. The boot-strapping project is pretty straight-foward. You implement an interpreter in Assembly ONCE, inefficient, but that can run the 9 basic operations. You then use this to load the LISP interpreter that outputs assembly (modified for a new architecture of course) that brings more operations down to the native layer --- trivial example, one need-not implement a second operation, as first(rest(x)) can implement second, a recursive (rest) with if can be used to implement last... again, trivial examples to illustrate --- then you can do it all in Scheme.

    Like the other post, using Scheme to treat the problem and use a Scheme->C Scheme program to get optimized performance. Essentially, for MOST applications (non-embedded) optimizing the algorithms in question will get you FAR more of a performance boost than going to hand-tuned assembler.

    The old idea was to find the loops where most time was spent and optimize those. First optimize the algorithms, THEN think about tuning the assembly. However, there is NO excuse for writing everything in assembly... You spend a LOT of time on areas of code rarely executed, and it's much less likely that you've optimized the algorithms as well. No excuse is over stated, maybe you're just that good, but the higher-level languages let you get something up and running fast, then you can tweak as needed.

    I used "theoretical" and "neat" to illustrate why this was a great ACADEMIC language, for the controlled environment of research and teaching. You took my theoretical point and said, "but it doesn't work in practice," to which I say, that's why I was clear to point out that it's a theoretical advantage in an academic setting.

  211. Computer science existed before computers did by benhocking · · Score: 1

    "Computer science", however, means only the organized body of knowledge about computers
    Have you had a class in Computer Theory? No computers are required. Just like with Quantum Computing and quantum computers. Don't confuse IT with CS.

    But most computer science has little of the scientific method about it.
    Here, I agree. In many ways, it is more of a Math than a Science. There are exceptions to that, of course.
    --
    Ben Hocking
    Need a professional organizer?
    1. Re:Computer science existed before computers did by Mr.+Slippery · · Score: 1

      Have you had a class in Computer Theory? No computers are required.

      A Turing Machine is a computer, is it not?

      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
  212. Science vs. engineering by randal23 · · Score: 1

    My collegues and I, being software engineers in X-Ray astronomy, disagree with you. [...] The systems we develop are used by X-Ray astronomers and would not exist without [...] Software Engineers.

    You are missing the point. Claiming that software engineering is not science does not diminish software engineering, nor imply that it is not useful to scientists.

    I am also an engineer and hope that my work can be useful to many people, but helping scientists in their work does not make me a scientist, the same way a taxi driver taking a scientist to some conference cannot claim to be scientist just because of this.

    I think you need to understand that distinction between science and engineering: scientists ask why certain phenomena arise, and seek explanations for them. On the other hand, engineers use this understanding of the world to construct solutions to problems.

    "Scientists study the world as it is; engineers create the world that has never been." --Theodore von Kármán

  213. Technically, yes by benhocking · · Score: 1

    Of course, you can't actually create a Turing machine (infinite tapes and all that), so whether or not it is a computer is quite academic.

    --
    Ben Hocking
    Need a professional organizer?
  214. Is Rock 'n' Roll Dead? by turgid · · Score: 1

    Every 5 or so years someone asks the rhetorical question, "Is rock 'n' roll dead?" Then, hangs up their guitar and goes off and makes handbag music, disappearing into obscurity or top-40 banality.

    Rock on, computer scientists.

  215. Trade school by Per+Abrahamsen · · Score: 1

    Just of note - I doubt very much you'll find many CS students who know what Currying or a Closure is. Most of them learn Java and think that it's the best thing since sliced bread. They don't even realise that Functional Programming exists, let alone what it is, what it's benefits are etc.


    Sounds like something from a trade school to me, not a university degree.
  216. Indeed! by woolio · · Score: 1

    Disclaimer: I studied ECE (Electrical/Computer Engineering).

    Perhaps I'm biased, but I also share similar concerns... At least someone in ECE with a BS (might) know how to program but also at least have some ability in calculus, electrical circuit or digital logic design, and maybe operating systems.

    What does a person with a CS degree learn?

    That being said, I've met very very few (10) people with who studied electrical/computer engineering who actually knew (or wanted to know) how to program well...

  217. Computer Management by woolio · · Score: 1

    Computer Science should be about the _science_ of computing, not the design and programming needs of the commercial software industry.

    That's what I thought too....

    I have been subscribing to the IEEE's "Computer" magazine in vain.

    I think my entire first year's worth of issues focused on nothing but management practices for software design... It was entirely focused on the inter-personal aspects of software development without much regard to anything else.

    "Software Engineering" is neither Science nor Engineering... Its Management! It's IT! People need to start recognizing it as such...

    1. Re:Computer Management by Weedlekin · · Score: 1

      "That's what I thought too....

      I have been subscribing to the IEEE's "Computer" magazine in vain."

      Well, to be fair, the IEEE isn't a scientific organisation, but an engineering one.

      "I think my entire first year's worth of issues focused on nothing but management practices for software design... It was entirely focused on the inter-personal aspects of software development without much regard to anything else."

      I'm not surprised by this, because an organisation run by engineers for engineers knows that what we call "software engineering" is currently at best an oxymoron, and at worst a fraud that's been perpetrated on non-technical management types by people who charge very high prices to produce "designs" that consist of boxes with some labels in them called "variables" connected together by lines. This isn't what real engineers working in other fields would call "a design", and they certainly wouldn't tell people that the materials and construction methods being used (programming language, libraries, OS, etc., etc.) are "an implementation detail", which is something I've heard several times from people who spend their entire professional lives driving CASE tools.

      "Software Engineering" is neither Science nor Engineering... Its Management!"

      As things currently stand, the "software engineering" emperor has no clothes, because it has completely failed to either reduce the cost or increase the reliability of software, and the IEEE know this. They thus confine themselves to things that are actually useful such as how to manage the conflicts that inevitably arise when brilliant and often visionary people with poor social skills have to work with those of merely average or above average intellect, which is something the engineering world has been coping with for centuries. The software industry would do well to listen to the voice of experience if we want to avoid making the often vastly expensive mistakes that have occurred in the past, and are still occurring today, instead of deluding both ourselves and others that a diagram is a design rather than simply a bunch of arbitrary boxes and lines that are not provably better than some other arbitrary collection of boxes and lines (or for that matter, stuff built from Lego) that purports to represent the same thing.

      So rather than the IEEE mag talking about management because it's the same as " software engineering", it's probable that they talk about management because, as engineers, they realise that "software engineering" is currently a load of baloney which currently has two main purposes: (1) it permits lecturers who can't program run courses on drawing pictures of software, thereby avoiding having to actually write any or grade the work of students who have written some; and (2) it then lets people who are graduates at drawing pictures of software make a good living doing it.

      --
      I'm not going to change your sheets again, Mr. Hastings.
  218. Uhm.. by Anonymous Coward · · Score: 0

    Do you boys go around enjoying the smell of your own farts as well?

    Let's get down to business:
    Was Google from MIT?
    Was Microsoft from MIT?
    Was Oracle from MIT?
    Was the Computer invented at MIT?
    Was email invented at MIT?
    Was the web invented at MIT? (wait, not so fast; hiring the prof after he did it doesn't count)

    1. Re:Uhm.. by Geoffreyerffoeg · · Score: 1

      How does one "invent" a company?

      Was single sign-on invented at MIT?
      Was instant messaging invented at MIT?
      Was the first modern windowing system - and, to date, the only network-aware windowing system - invented at MIT?

      I'm not going to reply twice.

  219. Dead? It's never been more alive. by Anonymous Coward · · Score: 0

    Computer Science is dead, all the software jobs are going to India, Robots are going take over the world!

    It's so frustrating to read comments like this, particularly from Western leaders who are indirectly discouraging our adolescents from entering these fields.

    Never in the history of mankind has an invention brought as much change to society in every measure (Productivity, economic, educational, etc...) in such a short time period as modern computer technologies. Sure, we've come a long way and have developed great frameworks and software packages to solve many problems. But, computers are becoming more capable every year and more ubiquitous. As a result, we are constantly faced with an opportunity to solve those old problems in better ways and solve entirely new problems.

    Take any field- Medicine, finance, engineering, music, movies, etc... Computers are playing an increasingly important role in their respective advancement. Computer Sciences are more promising now than they have ever been. It is the only field (Ok, maybe biology also) that is experiencing evolution at breathtaking speed and continuing to have immediate impact on society.

    If anything, Computer Science is the ONLY FIELD WORTH STUDYING. Computational thinking will be the basis for next generation marketing, finance, pure science, and of course software engineering. People armed with the ability to think about things in a computational way will be able to solve societies problems.

    Anyway...so I guess UK is going down. I'm fine with China, India and Scandinavian/Eastern Europe replacing these pathetic western Europeans and join us Americans in advancing mankind.

  220. x86 has not won by Chirs · · Score: 1

    "Nowadays nobody (not even academics) - except maybe a few people who build satellites and stuff - gives a rats ass if x86 sucks or not. It has won. Period."

    Sorry, but I have to disagree. x86 has won on the desktop side, and has made significant inroads on the server side. On the other hand, four of the top five supercomputers are powerpc based and zillions of embedded devices use non-x86 cpus.

    I do linux kernel work in the telecomm field. Our team currently supports five different hardware architectures--x86, ppc, ppc64, arm, and mips64.