Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

The Death Of CS In Education?

Posted by Zonk on Sun Feb 04, 2007 06:42 PM
from the give-it-bawls-for-life-support dept.
JohnnyKimble writes "A provocatively titled article recently appeared in the 'Future of Computing' section of the British Computer Society website. 'The Death Of Computing' was written by a lecturer at De Montfort University in the UK, and considers the problem of falling interest in computer science courses in the UK and what needs to be done to encourage more students to take the courses." This ties in well with our discussion last night about Why Software is Hard.
+ -
story

Related Stories

[+] Developers: Why Software is Hard 409 comments
GoCanes writes "Salon's Scott Rosenberg explains why even small-scale programming projects can take years to complete, one programmer is often better than two, and the meaning of 'Rosenberg's Law.' After almost 50 years, the state of the art is still pretty darn bad. His point is that as long as you're trying to do something that has already been done, then you have an adequate frame of reference to estimate how long it will take/cost. But if software is at all interesting, it's because no one else has done it before."
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • good (Score:3, Insightful)

    by Lord Ender (156273) on Sunday February 04 2007, @06:46PM (#17884166) Homepage
    Computer Science needs to die (well, shrink a lot). Industry does not need computer scientists. It needs software engineers, human interface engineers, and programmers.
    • Re:good (Score:5, Interesting)

      by Shados (741919) on Sunday February 04 2007, @06:58PM (#17884224)
      Bingo. CS is dying because of the lack of software engineering classes. There -is- a definite need for computer scientists. However, its totally crazy that 90% of computer related programs in college are CS, when the need for software developers, analysts, software architects and software engineers trump it 10:1. So you have a ton of people who end up taking a CS degree, and because of the market's needs, work as software engineers or whatsnot, thus inevitably ending in a "Wow, what I learnt in school is useless!" (when its not, its just that the 1794012740912709124 people who have more experience got the interesting CS jobs first...), and thus, interests die.

      If the people who want to do software developement had more options in college, and could go in that direction, there would actualy be some room left for CS...
  • by Lazerf4rt (969888) on Sunday February 04 2007, @06:48PM (#17884176)

    More job security for those of us already in CS.

  • Oh, that's easy. (Score:4, Insightful)

    by edunbar93 (141167) on Sunday February 04 2007, @06:50PM (#17884182)
    All you have to do is print lots of stories about how people are making hundreds of thousands of dollars a year "just because they can operate this computer". You know, kind of like back when I was a kid. The kind of thing that suckered me into getting into a field that is destroying itself.
  • Market forces (Score:3, Interesting)

    by Colin Smith (2679) on Sunday February 04 2007, @06:54PM (#17884202)
    People aren't interested because the pay is crap compared to a few years ago. Simple. It's not a desirable profession. And the reason the pay is crap is because there is an oversupply of IT services to the market. That oversupply pushes down the salary. The oversupply is typically coming from developing countries; India etc.

     
  • by Lord Kano (13027) on Sunday February 04 2007, @06:55PM (#17884206) Homepage Journal
    I am frustrated at how many people persuing CS degrees don't properly understand basic data structures. Arrays, stacks, queues, vectors binary trees and the like are not really thought about as much as they should be. In too many places CS is becoming increasingly about a little bit of "CS theory" and a lot of "MS Applications".

    Want to save CS? Put "Computer Science" back into it.

    LK
  • so what? (Score:5, Insightful)

    by Bender_ (179208) on Sunday February 04 2007, @07:12PM (#17884304) Journal

    Science is hard and not sexy. There are also too few electrical engineers (not VHDL programmers), semiconductor scientists, material scientists, physicists and what not is needed to feed the entire information technology chain.

    On the other hand - the other posts are probably right about the common misconception of computer science and programming.
  • by viking80 (697716) on Sunday February 04 2007, @07:12PM (#17884310) Journal
    A generation ago, back in the 70s, the science department on my highschool got a basic computer . I wrote a program that would show time with analog hands (calculated with sin(t),cos(t)).

    I tried to get my son interested in programming by showing him how to write som simple software that could draw stuff.

    His response was basically: "Why cant we make something like 'Grand theft auto'; This is boring"
    • by julesh (229690) on Sunday February 04 2007, @07:22PM (#17884372)
      That's not a generation gap talking. That's the fact that less than one person in a hundred actually finds this stuff interesting.

      This is how it was, and how it is. In the middle, there was a spike of people looking at lists of well-paid jobs and industry articles complaining about a shortage of people with the skills to fill them, and seeing those three-stage plans without the missing step. Most of those are gone, now. We're back to just the enthusiasts.

  • by Crosma (798939) on Sunday February 04 2007, @07:17PM (#17884340) Homepage
    I studied at Cardiff University. The British Computer Society pushed so much unnecessary crap onto us (Accounting, Business skills, Information Systems, Distributed Systems, Information Management) that there was not enough room left for a hearty course. I've never heard so much bollocks. Things like compiler theory, functional programming and logical programming were optional due to lack of space. It's pressure from the BCS that's made the Computer Science degree a waste of time in the UK. Plenty (read: most) Computer Science graduates with first class degrees got them by being good at the bollocks, and mediocre (or useless) at anything useful. Of course, I'm bitter because I was never any good at the bollocks, so I got a crappy degree.
  • by Umbral Blot (737704) on Sunday February 04 2007, @07:18PM (#17884346) Homepage
    CS is dying because it is several different disciplines wrapped up into one, making it hard for students to get the education they want (or need). Some want to focus on the mathematical and theoretical aspects of computer science. And yes, we need these people because they are the ones who come up with the new encyption methods / exponentially faster alorithems / proofs that one way to route traffic is better than another / and so on. Some want to be software engineers (learning how to program and program in groups). Still others want to focus on user interface design or software design in general, without dealing with all the programming details. And of course there are niche fields like 3D graphics and AI that are important but not really large enough to split off on thier own. In any case the point I am making is that, by cramming all these together under one degree, CS programs tend to suck because you are forced to learn stuff that you don't want to, and so the degree you earn isn't necessarily relevant to what you want to do. Students are catching on to this and are thus migrating away from the standard CS degree, some of them never to come back.
  • The Classics (Score:5, Insightful)

    by MBCook (132727) <foobarsoft@foobarsoft.com> on Sunday February 04 2007, @07:21PM (#17884368) Homepage

    We've talked about this on /. before. Many of the things I'm about to say will probably be in other comments, or you've seen in the past. I'll try to give a whole picture though. I should also mention where I'm coming from. The article is from the UK, but I'm in the US (almost dead center). I graduated with a degree in CIS (Computer Information Services) around June, and I've had a job as a software engineer for about 6 months now with a great little company.

    Now I'm the kind of person who has always been interested in computers. Like many /.ers, I would probably have pursued this field if it paid next to nothing. While my salary is nothing to sneeze at, it's nothing compared to the 60-70k number people seemed to like to throw around during the bubble.

    When I entered college in 2001, there were TONS of people who were in it for the money. That was clear by what they knew, how hard they tried, etc. There were more who seemed to think it would be interesting but weren't sure they wanted to do computers. There were others like me who breezed through the early programming courses because we were self-taught already in such simple things (basic loops, etc).

    As I went through school, the bubble burst and the idea of instant riches from computers disappeared. Biomed seems to be the new instant riches career.

    The biggest attraction to the field I see now for the average person is games. Everyone wants to make games. You like video games? Why not make them! You can get a CS degree or go to one of the many colleges offering game focused degrees (both accredited and fly-by-night). If you're on Windows, you have no chance at being exposed to programming. When I was younger we had HyperCard on the Mac (fantastic), BASIC on DOS/Windows, and you could learn. Today, Windows doesn't come with anything to learn programming. There is free stuff out there, but it doesn't come on the computer. Combine this with the fact that in the DOS days you could make something decent looking with BASIC or Hypercard that looked somewhat comparable with "real" software. Try that with today with anything. GUIs aren't easy. Even VB requires some rather abstract concepts (like events).

    Some schools are not much better. The school I attended (DeVry) has scraped their computer program (which wasn't bad) and has replaced it with the "tracks" system. Now you don't get a CS degree, you can get a degree that focuses on database programming, or computer forensics ("It's computers, combined with CSI! Fight crime!"), or something else. It is nowhere near as general and well rounded as it was.

    CS degrees seem to be being dumbed down (which seems at least due to trying to attract more people during the bubble). My local state school (which I attended for a while) had a pretty good CS program, but they've were dumbing it down as I left (putting off harder classes, using "easier"/trendier languages, etc.)

    But like the article said. Computers aren't magic boxes any more. They are a normal part of life. They are like cars. Most people don't care how to make a car, only some people will try to do that for a living. We may be near that point with computers. Most of the children I've met in the last few years may use computers a ton, but don't care much about learning how to make stuff for them. They don't even have a passing interest in trying to find out the beginning. I may not know enough to make a car (far from it), but I understand some of the principles behind it. I know about the internal combustion engine.

    I don't expect them to want to know about RCU, radix-trees, elevator schedulers, memory mapping, and other relatively esoteric things. But many don't even know about programs/operating systems/processes, or even really understand the filesystem hierarchy. They can get around quite well, and they've been trained in how to make flashy Powerpoint presentations about pointless things (I can't tell you how great a skill I think that is that the public school taught my 13 year

  • by bcrowell (177657) on Sunday February 04 2007, @07:37PM (#17884522) Homepage

    Public breast-beatings like these are generally political maneuvers by people in the field, who want more power and funding. I'm a physicist, and in my field you hear the same kind of thing: boo hoo, the number of students majoring in physics is dropping, it's a national crisis, please throw money at us to cure the problem. Usually the people complaining are faculty who produce 20 grad students over the course of their careers, and tell all 20 of them that they're failures if they can't make their way into careers exactly like their adviser's: teaching and doing research at a school that has a high-powered graduate program. There's always the nationalism, too: watch out, because the Russians (or Chinese, or Indians, or, ...) will beat us. They always leave out some of the relevant facts: that the U.S.'s graduate-level educational system is the envy of the rest of the world; that the number of people the U.S. is trying to educate at high levels is higher than anything that's ever been attempted before in all of history. People misuse statistics like crazy, too. For instance, they compare the number of students graduating in India with the number graduating in the U.S., but the degree programs in India they're including are basically like AA degrees, not programs that are comparable to a U.S. bachelor's degree.

    Another issue that people tend to sweep under the rug is that there is a pipeline at work, and the reason people drop out of the pipeline is usually a good one. At every step along the way, some people are dropping out of the pipeline simply because their genes don't make them good at the field. Others are dropping out because they're low on motivation. Others are dropping out because they don't enjoy it, and can tell that they're not going to enjoy it once they're out of school and in a job. Still others are dropping out because they see the field as being incompatible with the family lifestyle they want.

    And finally, these fluctuations in enrollment are usually driven by Mom and Dad. There is always a small core of people who were born to do a certain thing, whether it's music or plumbing or CS or physics research; they're in the field because they love it, and they love it because it's what they're naturally suited for. Layered on top of that core is always a much bigger number of people who majored in something because Mom and Dad told them they could make a lot of money at it. When times are good, the core still does well, but the wannabes bail out, because it's not turning out to be a good way to earn big bucks doing something that they're marginally talented at.

  • I RTFA (Score:5, Insightful)

    by Anonymous Coward on Sunday February 04 2007, @07:40PM (#17884560)
    I read the article, and I disagree utterly.

    The problem is a much deeper-lying one. Universities are selling themselves as steps towards getting jobs. With very rare exceptions (divinity, for instance) this was never the case, nor was it intended to be. They are not vocational institutions, nor are they designed as such.

    I have seen, and been in, vocational institutions. They are very fine places (called vocational schools, technical colleges, technikons or what have you) where pupils are drilled in particular modes of work to accomplish given tasks. They are very good at what they do, and they often work alongside other teaching systems such as apprenticeship schemes. They are not interested, institutionally speaking, in research, nor in high-flown theory. They are there to tell little Johnny that if he pulls the lever on the drill-press smoothly and evenly, it will produce an accurate, regular hole with little risk of breaking the bit. People who want to learn to be Java programmers would be well served by attending such courses. They will learn to crank out Java well, repeatably, and quickly. They won't learn in-depth knowledge about garbage collection strategies; that isn't why they are there.

    Universities are not about drilling students. They are set up to expand minds. In principle a university could be a few comfortable seating areas around a vast library, with students exploring under the guidance of other people interested in expanding human knowledge. Add a few laboratories, maybe a few lecture halls for guest presentations, and you're there. In the computer science world, where the point is to have students truly understand on a deep level what is going on inside the computer, and even inside computers which only have theoretical expression, drilling them in Java would be a total waste of time.

    The writer of the article wants student numbers up, and shows little or no interest in the raison d'etre of the courses and departments in the first place. His agenda, as revealed by the article, is for universities to be, or to become, vocational institutions. This is in line with the existing trend for universities to beg for students, tempting them with airy promises of gainful employment. The problem can be phrased as a question: where will those who wish for the services of universities, rather than vocational institutions, go?

    Right now, the best bet would appear to be a library, or perhaps the web, because only there is pertinent information available with a minimum of time-wasting distractions. At this rate we bid fair, at least in computer science, to leave behind the benefits of university courses and return to a pre-academic level of support for research. I won't go so far as to say definitely that this is a bad thing, but I do think that to present what the author is suggesting as a university course is bordering on the fraudulent.
  • Blame employers (Score:5, Insightful)

    by stinerman (812158) <nathan...stine@@@gmail...com> on Sunday February 04 2007, @07:48PM (#17884614) Homepage
    Too many employers look for checklists of skills rather than overall knowledge of an area. In a job interview I was once asked why I didn't ever get an A+ certification. I told them that since I had 6 years experience in the field, I didn't need it. They still pressed me to take the A+ test after I was hired.

    Similarly, the fact that I'll have a related degree in the field won't matter to a lot of HR drones. They care more about MSCE and CCNP certifications than they do a Bachelor's degree. I know the underlying concepts of networking, routing, etc., but since I haven't worked directly with Cisco routers, I'm apparently useless to them. Who cares that I can learn whatever software package they're using in a week or so?

    No wonder no one wants a degree in "CS". They just want a job in the field, and there are easier ways to get there than a 4-year degree.
    • Re:Blame employers (Score:4, Informative)

      by SkyDude (919251) on Sunday February 04 2007, @08:20PM (#17884840) Homepage

      Too many employers look for checklists of skills rather than overall knowledge of an area.

      You couldn't be more on target if you shot it with a .357 Magnum. While any employer wants to make sure they hire the right person for a given position, far too many rely on the degrees listed on the resume rather than the practical application of the supposedly accrued knowledge. When it comes right down to it, earning a degree only shows one's ability as a student, not the real world use of that knowledge. Why else are there so many semi-competent people in various fields, programming being just one of them? Hell, anyone can probably list a dozen different CEOs who are running their companies into the ground.

      I'm not down on education or earning advanced degrees, but several years ago, I remember reading about the explosion of MBAs. In the article, the author pointed out that less than 15% of CEOs in Fortune 500 companies had advanced degrees. I don't know if that still holds true today, but it proved to me that real world knowledge was far more important than a degree in a frame.
  • by CrazyJim1 (809850) on Sunday February 04 2007, @08:03PM (#17884726) Journal
    I've programmed as a hobby all my life and have a computing degree from Carnegie Mellon. I'll tell you what is hard: Finding a job coming out of college. Everyone looks at you like you have no idea how to code because you have no experience. It makes me mad I went to college when I coulda just coded for some startups in the mid 90s and been fine.
  • When i was in HS ( '73 - '77 ) being a Computer Scientest was meaningfull because they were the guys creating what today we call a "computer" along side guys with "EE" degrees. The EE guys built logic circuits that the CS guys wrote, by todays standards, primitive code that made them work. Compliers were extremely rare and we barely had "high" or "mid" level languages. Most stuff was writtin in machine code.

    Now contrast that with today. Compilers, good ones even, are really a dime a dozen. Linkers and assembler are the same. The very talented have created languages, structures and frameworks that take most of the "programming" out of what people do today. Look at Java, Delphi, C#, C++, Ruby, Python, Perl, C, VB, all of them. How much really guts low level programming to the vast majority of programmers really do?

    There are libraries and frameworks for practicaly everything. You need a database? Go download MySQL, Firebird, Oracle, DB2, Interbase etc. You want to build a UI? There is the entire MS-Windows API, Gnome, Aqua, KDE and numerous others. Need to talk TCP/IP, there are libraries for that on every platform, with simple invocations for just about every language. Almost everything low level these days has had a wrapper for your favorite dialect put around it.

    The vast majority of programmers these days are more or less scripters. Yes you use the vocabulary of your favorite language, but lets be real here for a moment. Lets say you want to represent a list of files to a user via some UI. Are you going to go out and write the very low level code that will determine, with a mathematical proof, that you are reading the file entires on the disk drive to make sure you are doing it as fast as possble? Nope. In windows you are going to use the FindFirst / FindNext API. In *nix you might just spawn off a find thread and get its results back through STDIO. Thats not what a lot of people would say is programming in its classicle sense of the word.

    A lot of the first programs i wrote that had a user interface sent me into long nights of just handeling field input, because at that time I was programming in Turbo Pascal 3.x and there were no librairies or API's that did that for you. So I was writing loops, capturing keyboard input, checking to see if was a function key that was pressed and if not then, well most of you know the drill. I had to build it all myself. But the best thing about that was that I had total control of the user expirience and I had total control of the way the software worked. There was very little in between me and the hardware.

    These days its hard to even find the hardware, much less interact with it. Everything is burried under virtual methods or its being controlled by the underlaying OS which cannot give you direct control over it, because 8 other programs are all trying to use the same bit of hardware. I used to be able to stuff the keyboard buffer, now I stuff the message queue and its harder to deal with then the keyboard buffer.

    The market forces really have not changed, as others have asserted, the nature of the beast has changed. I am 48 years old and 25 years ago there was barely a thing called a network, these days its ubiquitous. 25 years ago you had to either be one very smart mofo or you had to have a degree in Computer Science to be able to do anything other then what you got on a floppy. I was not one of the latter, and I worked HARD to understand what was happening inside tht box. I spent many many nights laerning about interrupt controllers, about drive controllers ( MFM anyone? ) about starting drive diagnostics with debug and understanding what the hell I was doing. I cursed IBM daily for dropping all the memory mapped hardware into the TOP of the address space instead of the bottom, OHHHH how I cursed them. I learned the LIM spec and how to shuffle chucks of memory around. but I digress...

    Business embraced the beast and the beast grew and matured. Todays business does not need a person with a CS d

  • Not surprising (Score:5, Interesting)

    by leabre (304234) on Monday February 05 2007, @03:55AM (#17887464)
    The type of work I do, knowledge of data structures and algorithms isn't essential but useful. Those who are familiar with the fundamentals generally write better code (optimized and not resource-hungry). I interview people that have multiple degrees and Masters and sometimes a PH.D. that have difficulty answering questions and vectors and bubble sorts. Further, when new employees come in whom I didn't interview sometime we "chit-chat" and talk about algorithms and more often than not they don't have a clue despite their Master's degrees in computer science (I've never been able to explain why but isn't always the case but is more often than naught -- in my experience, of course, YMMV). We have had a few mathemeticians that are absolutely steller at all things math, computer science, and physics but having a "chance" mathemetician start in this company (in my 4 years there) is quite rare.

    Anyway, I don't even have a degree or certification but I do have 10 years professional experience and I very much am familiar with algorithms and data structures and can even conjure up mathematical proofs of some of them (with complete understanding). I'm just a self-study, is all. I started to get a degree in comp. sci. since I was practicing it for many years but got sick of earning crappy crades because I didn't follow things step-by-step as per the textbook but actually optimized or found more efficient ways of achieving the same -- getting ahead of the class mostly. I'm not really cut out to be a robot.

    These days I do a lot of research in things like autonomic computing (self-healing software) and nueral networks and genetic algorithms (which really are just another type of algorithm and data structure in my opinion, nothing magical). Trying to get learning into my business services and elements of healing and user-usage pattern recognition. In the self-healing and learning erea, I mostly have to decipher various doctoral theses and other scholastic publications to get any useful information; not an easy task for someone who at most has about 2 semesters of college edumacation and no industry certs (but well over 800 software programming & related book on my shelf that each have been read cover to cover mostly).

    Computer Science is often misunderstood, too, by everyone in the employment chain. Computer Science is more about research and in a sense, pioneering, and coming up with better ways to solve problems or even identifying new problems to solve at a fundamental level. Comp. Scientists will even offer "proofs" of various solutions and so on and present initial implementations.

    I view Software Engineering more as "vocational". Not necessarily research and acedemics, but more or less puting well-known practice and knowledge into implementation; designing architectures and frameworks and such. I'm not sure where the overlap is, if any. I don't picture computer scientists really creating business applications and data entry programs but I do view them creating something like photoshop and flash and operatins systems, for example. There's much research and fundatmentals in those things. I don't view software engineers proper as doing fundamental research but I woudln't rule out them doing research and coming up with creative ways to solve problems that might interfere with the duties of a scientist if requirements dictate.

    My point in all this is that most employers want programmers, coders, or developers (whatever you want to call it) but actually try to hire scientists when comp. sci. isn't about programming as much as it is about research. Most companies don't want researchers, they want people that can take known research and knowledge and put it into practice for the company.

    Most people that want to be software developers don't necessarily want to be scientists; computer science is the wrong field of study for them. MIS or Soft. Eng. is better for them. Though I agree that all programmer types should be familiar with the basics, there's a difference with being
    • by reset_button (903303) on Sunday February 04 2007, @07:01PM (#17884240)

      then they might be failing because they are more math degrees than what I would consider "computer science". That is why I changed my major to web development here. I didn't want a math degree and that is exactly what I was getting.
      Or maybe you were getting a degree in computer science and wanted a degree in computer programming? Chances are if you took a math course and don't understand how it applied to computer science, you just don't know enough about computer science. I use probability and statistics frequently. Those who work in computer graphics and visualization use linear algebra and calculus daily. Give me a math course, and I'll show you how it applies to computer science.
      • by Anonymous Coward on Sunday February 04 2007, @08:33PM (#17884946)
        What I have noticed as a employer of about 30 programmers is that the students that have business degrees and a background in computers really know more about programming than CS majors. When I want someone to do what they are teaching today in CS classes I will contract a electrical engineer. From my experience CS classes are teaching way too much theory. I have all kinds of kids that are applying for jobs that know tons of theory, but can't apply the shit. CS professors need to get their heads out of the clouds and teach something that the students will really be able to use.
        • I'm interested in what you see your CS grads doing that you'd call the responsibility of an electrical engineer. I mean, Computer Engineers would definitely fall under a "confused major" listing, but as far as my experiences, we stayed pretty far away from the EEs at our school.

          I'd also like to hear what kind of work you're doing that business majors would grasp it easier than CS majors.
        • by Anonymous Coward on Sunday February 04 2007, @09:06PM (#17885140)
          I went to college to get an education, not training. If the education was a good one and you're reasonably talented, you should be able to fill in any holes in your knowledge yourself.

          Of course it helps to find an employer who can recognize this and is willing to invest in you. Rather than, say, one who might be trying to pay bottom dollar for recent grads while simultaneously expecting them to already know everything about programming in a business environment?

          (just my $.02)
          • by booyabazooka (833351) <ch.martin@gmail.com> on Sunday February 04 2007, @10:30PM (#17885618)

            I went to college to get an education, not training.

            Amen. I am astonished by the general public which advocates liberal arts education for general self-betterment, while condoning learning in computer science only if it "gets you a job." I learn CS theory and practice software development because I love it. The side-effect that it keeps me employed is an added bonus. I am not earning my degree as a permit to enter the workforce. I study computer science because I want to.

            This is why I find these Slashdot discussions on education amusing; so many commenters try to make statements as to "what universities should teach." A university is a seller which should pander only to its clients - the students attending it. As such, the only thing that should be taught is what the students want to learn.

        • by Bobzibub (20561) on Sunday February 04 2007, @11:19PM (#17886034)
          Try switching languages and you'll see the CS majors (from good schools) shine.
          True, in my school the courses the languages that we wrote in *were* incidental. Above the 200 level there were no "X Language" course. I used to say that the profs announced that "you'll be writing your next assignment in [.. roll the dice..] Java." But most languages are similar and fall into families. Scheme is like Lisp. Assembly is like C. Java is like C# or C++.

          I've had input in hiring people. Personally, I'm not so concerned that someone has the stellar skills in the language of the day. Ability in C language impresses me. Clean code impresses me. Even for web stuff. Most programmers can hack things together on the fly and that impresses the brass; they don't see that this job is also a profession. The world doesn't need more hackers (classical sense of the word) because it causes never ending debugging and refactoring sessions. Nobody wants to spend their career fixing someone's crap. And the explanation that a product that they wanted was so rushed into place that it cannot become something slightly different without major work is painful for everyone. I know. So calculate your ROI over two or three years not just one.
          Not saying that someone w/o a CS degree cannot code well. I'm saying that it is more likely that someone with a CS degree will want to. Unless they're bored out of their skull and then they need to be assigned some other project/language/platform or design work for a challenge.

            • by Axe (11122) on Sunday February 04 2007, @11:23PM (#17886062)
              The best preparation for the real world is an ability to learn and ability to think. Any actual trade skills learned in college will not be useful for too long. That is why experimental physics education is one of the best ones you can get for a very large variety of jobs. You learn how to learn.
          • by putaro (235078) on Monday February 05 2007, @06:35AM (#17888054) Journal
            Well, as someone with 20 years experience as a software engineering on everything from desktops to supercomputers I will tell you that the math and theory is what separates the men from the boys when it comes to computers. I don't go back to CS theory that often - maybe once or twice a year. However, when I do need to pull that stuff out it is invaluable.

            When I was in college I often lamented the lack of practical experience I was getting. Today I'm glad that I got a solid grounding in the theory of CS rather than a lot of classes about how best to optimize PDP-11 assembly code. Technology and training goes obsolete. A solid theoretical base lets you keep up with the constant change in the computer industry and keep your knowledge of the technology current.
          • by TheRaven64 (641858) on Monday February 05 2007, @07:11AM (#17888212) Homepage Journal
            Have you read the article? I started, and by half way thought, I was thinking 'this guy is an idiot, I'm glad he didn't teach me when I got my (first) Computer Science degree.' He was far too vocationally-focussed to be even thinking about teaching Computer Science, and I wondered what university would possibly even consider employing him. Then I got to the end of the article, and found it was 'De Monfort.'

            For Americans, and other aliens, I will now divert into some history. In the UK, we used to have two kinds of higher education establishments; Universities and polytechnics. Universities concentrated on academic courses, while polytechnics taught vocational courses. Then the Conservative government decided that it was discriminatory that not everyone got a 'university degree,' and so turned all of the polytechnics into universities. Now, instead of teaching good vocational courses, they teach bad academic ones. Worse, as appears to be the case with this guy, teach their old vocational course with an academic-sounding name. It sounds like he was teaching an IT course back in the polytechnic days and is now teaching the same course but calling it computer science.

            My course had about a 30-50% attrition rate[1], although most of those who dropped out did so very early on in the first year, once they had realised that they didn't want to be doing Computer Science at all; they wanted to be doing IT, or possibly Software Engineering.

            You can impart the fundamentals, which is what a degree in computer science is supposed to be about.
            Exactly right. The article said:

            What has changed is the need to know low-level programming or any programming at all. Who needs C when there's Ruby on Rails?
            A computer scientist doesn't need to know C or Ruby on Rails. A Computer Scientist needs to know about Unlimited Register Machines, Turing Machines and Lambda Calculus. A Computer Scientist needs to know about type theory and graph theory. Once you know these things, C and RoR are just syntax. Someone completing the first year of a Computer Science degree should be able to pick up a new language in a couple of days. Beyond that, being a good programmer is simply a matter of practice. Someone doing an IT degree will get a lot of practice in one or two languages, and so they will probably be a better programmer (in, say, Java or C#) than a fresh Computer Science graduate, but the Computer Science graduate will have the edge when you change the language that you need to use.


            [1] Note: unlike the American system, students in UK universities are enrolled on a particular degree scheme for 3-4 years. If they drop out, then they can not simply change their modules and get a different degree, they have to re-apply the next year to a different department.

      • by Brett Buck (811747) on Sunday February 04 2007, @09:20PM (#17885218)
        I agree with your comment, but, I think this is a symptom of the tendency to treat College like a trade school. Computer science was a trendy major for a while when it looked like everyone might just be the next internet millionaire - not necessarily that a lot of people were really interested in computer science beyond having a career. Heck most people have no idea what computer science is.

                Brett
        • by r3m0t (626466) on Monday February 05 2007, @03:37AM (#17887390)
          There's still optimisation at Google and other search engines. Speech recognition and synthesis at Microsoft. Handwriting recognition at Microsoft. Noise cancellation at Microsoft. Translation at Google.

          CG at Pixar, Disney, nVidia and ATI. (I'm not sure how much software-based work there is at the last two, though...)

          Plus all the technologies I mentioned are simultaneously being developed by many other companies!
    • by Anonymous Coward on Sunday February 04 2007, @07:01PM (#17884244)
      If you didn't know that studying Computer Science was mainly studying a branch of applied mathematics, then you obviously didn't do enough research into the program you applied to.

      And what sort of university offers "Web development" as a major? Web development is the sort of thing you learn at a community college, or on your own time with the help of several books. You don't take three or four years at a university to learn web development.

        • by CastrTroy (595695) on Sunday February 04 2007, @08:25PM (#17884886) Homepage
          I think the reason that you wouldn't expect to see "web development" at a university is that it is entirely too narrow in scope. It would be more the kind of thing that you would see at a community college. Not to say that web development isn't a good discipline, but rather that they don't tend to focus on one area, or at least not in the undergrad degrees. They usually try to teach a more broad subject area so that if the next wave comes along, and all of a sudden web development isn't cool anymore than the students who got the degree can adapt to the changing job market. I took software engineering, and work in web development currently (E-Commerce systems on ASP.Net). But I don't know if I'll be working in web development my entire life. I'm happy that i'm prepared, at least somewhat to work in other disciplines, if web development ever takes a nose dive.
        • by arivanov (12034) on Monday February 05 2007, @02:27AM (#17887150) Homepage

          My observations are completely opposite. CS courses are getting more applied, not less.

          As far as the decline in CS it is due to other reasons. It is a logical combination of the steady decline of math in schools in Western Europe (and especially English speaking) combined with systematic stampout of the freedom to tinker. It is the same in CS, physics and chemistry.

          • In chemistry the kids are no longer interested because the lessons are terminally dull and no "bum-bum" is ever allowed to happen.
          • In physics it is a combination of "no sparks allowed" and not enough math.
          • In CS the primary underlying reason is that the Educational establishment firmly associates computer literacy with Microsoft Word literacy and nothing else. Not suprising as they are by majority literate at just that level (and nothing more). So the students are hardly ever taught how to write two lines of code or how to produce something working. God forbid that they open the computer to see what makes it tick. And Oh horror of horrors - hacking the classroom system - that is a definitive expulsion.

          As a result the kids that come out of the UK and US educational system are damaged beyond repair. The few that have not lost their interest cannot compete versus kids from the mainland Europe, Eastern Europe, Far East or even India. I am not surprised that they chose not to enter CS, physics or chemistry degrees. With the average education level provided by British and US schools facing a class (or even worse competition for jobs) versus what is produced by education systems elsewhere is a very dawnting perspective.

    • by Cappadonna (737133) on Sunday February 04 2007, @07:24PM (#17884396) Journal

      then they might be failing because they are more math degrees than what I would consider "computer science". That is why I changed my major to web development here. I didn't want a math degree and that is exactly what I was getting.

      At its basis, computer science is nothing more than discrete algerbra and graphy theory. It is applied mathemtics, pure and simple. For what you want to do, you're right. You'd better off getting an art degree and picking up a few programming course on the side.

      Actually, I would say that CS programmes need MORE math and theory classes. Sorry, but too many IT people are walking around with little to no understanding of fundamental data structures, calculus or logic. People think that I'm talking in circles at work, and its mainly b/c I have a physics background -- we solve problems with graphs, formulas and rigors that many IT "professionals" fail to grasp. If anything, I'm pursuing a CS masters so I can grasp even more of the high level basis of modern information technology. Its only in seeing the full theorem can you understand how it all fits.

      And in what universe does a CS undergrad not learn how to program? That was a pre-req for majoring in the subject when I was in college -- and I graduate in 2000!! Must be older than I thought.

      Look, you can teach most people how to hack code, troubleshoot a switch, or run a tech support call. But the underlying theorems that glue all of IT together you can only get from a classical Computer Science or engineering education. Its alot easier for a CS, Physics or Math major to switch between a networking job and a programming job, b/c he knows all of the background stuff that makes it all work. An IT-certified pro may struggle a bit, only b/c he's not going to know the basics.

      My big complaint about CS majors is that most HS in the states don't prepare young people for the kind of head-scratching work that the major requires.

    • Let's see now:

      • Almost anything in graphics programming is entirely mathematics (or physics, which once again, brings us to math).
      • Networking - network optimization algorithms and the like use queuing theory, routing algorithms, graph theory and related stuff, which is math.
      • Almost everything in quantitative AI is math - machine learning, neural nets and the like.
      • Multimedia - codecs and the like use transforms, compression algorithms etc. which are, once again, math.
      • Cryptography - crypto is almost entirely number theory. Sure, implementation needs coding skills, but the fundamentals of crypto itself is entirely math.
      • Data strutures, compilers and the like are once again discrete math and graph theory, stacks, queues and trees.
      • Information theory is almost entirely applied math.
      • Distributed computing, parallel computing etc. once again use routing mechanisms, load distribution algorithms and other things which are heavily dependent on math.
      • Theoretical computer science by itself is, well, applied math (look at computational complexity).


      If you wanted to do "web development" (heh) you are in the wrong area. Other than parts of systems programming (and even there, paging algorithmsm memory management etc. are mathematical), Computer "Science" is, well, math oriented.
      • CS != ECE (Score:5, Insightful)

        by woolio (927141) on Sunday February 04 2007, @08:47PM (#17885026) Journal
        (Disclaimer, I'm an Electrical Engineer).

        I normally see just much of what the parent has listed as being part of an Electrical Engineering disciple. In my experience, Computer Science just does not take on these areas... (CS people studying information theory *today*, HA that's a good one!)

        Isn't work in multimedia codecs typically done by Electrical Engineers (signal processing, embedded systems)? The design/implementation of MPEG video codecs requires background in signal processing, VLSI techniques, etc....

        My somewhat biased view is this: if it involves calculus, (mathematical) optimization, advanced probability, adaptive algorithms, etc, it is usually part of electrical engineering. On the other hand, if it involves abstract algebra, applied linear algebra, heuristic algorithms (i.e. those not based upon mathematical optimization), discrete math, compiler design, it often falls under computer science.

        I've taken a sizable number of CS classes. Case in point: the Fourier Transform is apparently a new concept to CS Graduate students in a highly ranked ("Top 20") US University. Even more disturbing: deriving the DFT of a simple sine-wave was considered overly difficult! Yes, I realize most CS majors don't do this every day... Then again, its only simple calculus, and is taught to EE sophomores/juniors! This is not the only example and I could go on and on....

        I'm not trying to start a flame-war, I just don't see CS as being "math-based" compared to other fields. For me, CS is somewhere between Information Technology and Engineering in terms of math.
    • by compupc1 (138208) on Sunday February 04 2007, @08:59PM (#17885106)
      The thing is, the term "computer science" is so broad. People view it as being any one of the following four areas of study. I like to think of them as all coming under the umbrella of computer science.

      1) The formal methods that study the mathematics of computability and computation.
      2) The study of how computers themselves actually work -- the CPU, the OS, compilers, etc.
      3) An engineering discipline -- software engineering, computer (hardware) engineering, etc. For instance, in the case of software, we're talking the analysis, design, and implementation.
      4) A foundation upon which to study specific subfields, like AI or robotics, or data visualization, 3D graphics, etc.

      Obviously there are common skills shared between all four. For instance, programming is a tool used for empirical verification of results in #1, it's the product of the work done in #2, it's an entry-level skill upon which much of #3 is based, and it's necessary for experimentation with #4. The problem, as I see it, is that too may schools focus too much on #1. I do think there is value in understanding complexity theory and things like that, but the reality is that for 90% of the jobs out there, those sorts of skills are of secondary importance to #3, and to soft skills like verbal/written communication, project management, etc. If you look at all the lists of the top growing jobs, software engineering is always near the top of the list. There is a need for computer scientists, particularly those focused on software engineering.

      My school focused on #3 -- software engineering in particular. We had the algorithms, data structures, discrete structures, CPU organization, OS, etc. All the basics. But for the upper level classes, instead of making us take a year of complexity theory or something like that, we studied data modeling, object-oriented design patterns, technical communication, software development methodologies, etc. Sure, you could take your theory of computation or #4 topics as electives if you wanted, but it wasn't the core focus. And with a background like that, there were far more job offers out there than graduates. And when you started, you started way above the entry-level position.

      So no, computer science is not going away. It's just that the emphasis needs to shift towards a more engineering-oriented approach. We'll always still need some folks who really understand the theory, who understand the details of compilers, and the CPU designers. But the vast majority of people instead need to be effective software engineers. And educational institutions need to realize that and alter the emphasis of their curriculums to accommodate that trend. Those that don't will simply become irrelevant.
        • by Anonymous Coward on Sunday February 04 2007, @07:35PM (#17884510)
          IT work isn't computer science. Plumbing isn't physics. Programming is perhaps the closest to computer science as you can get as an IT worker (IT means information technology, not information science), because a good programmer who does groundbreaking work often requires knowledge which comes from computer science (and math). Big advances are increasingly happening on the mathematical front, simply because the datasets are becoming much larger as computational capacity increases. Sure, UI is very visible and thus easily recognized as important, but the nicest user interface doesn't create fast search engines, realtime renderers, distributed filesystems, voice recognition software, efficient routing, weather forecasts, encryption software, GPS receivers, etc. Try writing anything in those fields without a background in computer science...
        • by whoever57 (658626) on Sunday February 04 2007, @07:45PM (#17884598) Journal

          Computer science does have a lot to do with math but is it reasonable to expect 24 hours of math when 36 hours gets you a degree in math?
          My physics degree (many years ago) required sufficient math to qualify for a math degree.
        • No. There is no better way to handle it than making you do the work. Basically what I'm hearing is "but math is hard!" Math is not only a big part of CS, it is the foundation for CS, much in the way that physics is the foundation for engineering (but even moreso). Most of the math courses they make you take are most likely going to be directly applicable, as well. Discrete mathematics? Number theory? Linear algebra? Those are all used everyday in computer science. If you really want to do computer science, knowing how to prove things mathematically is going to help you as well.

          Put it this way: why are you in college? Are you there to learn how to make web pages, apps, or video games? You may be wasting your time. Actually, let me put it another way: if you aren't in a CS program because you like learning about computers for the sake of learning about computers, you're in the wrong place. Get out of that degree and apply yourself.
        • by kfg (145172) on Sunday February 04 2007, @08:03PM (#17884728)
          Computer science does have a lot to do with math but is it reasonable to expect 24 hours of math when 36 hours gets you a degree in math?

          Well, let's see, "science" in this context is basically the process of using math to model physical phenomenon and "computing" is using physical phenomena to model math.

          So that would be a "Yes."

          Which also leaves me to wonder which part you didn't understand, the "computer" or the "science"? I'm dead serious.

          Oh, I don't blame you entirely, although one might think you had looked into a field and just what it entailed before signing up for it as a major, but the really troubling part is that you had prior education and career counseling. It was not done with any apparent degree of competence.

          The really, really troubling part is that I would be more surprised if it had been. Such is the state of things today.

          So, don't think I'm really picking on you or anything, I'm just having a bit of a sad giggle to myself in public while banging my head against the wall.

          So yes, math is a big part of CS but there has got to be better ways to handle it.

          No, there do not. Computer science is about math. Because that's what it is about. If you want to be a programmer or a web designer, study those. You seem to have finally found your path. It's merely a shame there was noone about competent enough to steer you toward it in the first place.

          And that's not your fault.

          KFG
        • Computer Science was originally applied mathematics.

          Computer Science is roughly, the study of what sorts of problems you can solve with a computer, and how to make them do so.

          Just like Mathematics is the study of what sorts of problems you can solve with Mathematics, and how to solve them :)

          The applied mathematics legacy of computer science is thankfully wearing off more and more - we're now thinking about algorithms from a discrete, slow-convergent, approximative perspective -- thing's you'd never do if you started on paper or if computation time were prohibative (i.e. limited by human protein instead of teraflops silicon).

          Web development is no more a computer science degree than sabarnes oxley compliance is economics or accounting. The former is the specialization of a topic made relevant by the latter, a specialization that will be gone in a few short years. Just last week we had the article about the "death of the webmaster". I eaglerly await the "death of the web developer". We will either transcend the web, or publishing content to the web will become so commonplace and pervasive that it hardly seems worth calling a specialty.

          No offense to your or your career choice intended, but hopefully the work you do today sets the stage for tomorrow. You and the world will move on to better things.

          One thing will be invariant, through all of this, however. There will be problems to solve, and people will want to know if computers can solve them effectively. That is what computer science is and should remain. New problems will arise, and new general solutions will emerge, each becoming an area of further research or career specialization.

          • by leenks (906881) on Sunday February 04 2007, @08:01PM (#17884712)
            So you signed up for the wrong course. Computer Science, or Computing Science, is really Computing / Computational Mathematics. If you didn't research what was involved in computer science then you can't blame the university, only yourself.

            Computer science (and possibly some related disciplines) are dying because there are more and more dumbed down courses which people apply for instead because they are at universities that are more accesisble. People are generally lazy - the explosion in people asking homework questions on programming forums and IRC is testament to that - and if they think they can get away without doing something, generally they will.

            Hard computer science problems require lots of math, you can't escape that, whether it be graphics, artificial intelligence, classification, whatever. The more I work, the more I realise just how much math I really should know, and how little that I do. There are areas of using and designing for computers that don't require math - but these are mainly psychology related. Once you get down to what is going on under the hood, it is math.

            There is a reason that major employers are picky about the grades, courses and universities that they recruit from.
    • Re: (Score:3, Insightful)

      CS is dying because universities and colleges require you to take stupid classes that are completely boring and have nothing to do with CS? That might be it.

      If you don't like being a well-rounded person, there's always ITT Tech or other technical schools that doesn't require any thought or reflection on life or learning skills useful to distinguish yourself in the global market.

    • Re:no subject (Score:5, Informative)

      by MBCook (132727) <foobarsoft@foobarsoft.com> on Sunday February 04 2007, @07:43PM (#17884582) Homepage

      That depends. Are you talking about history, which doesn't help you with programming but makes you a more well rounded person; or are you talking about some kind of complex math which you may not see the value of but really does have a ton to do with programming?

      If it's the former, I understand your grief but we all have to go though with it, and you just may discover other subjects you're interested in during the course of taking those courses.

      If it's the later, maybe this isn't the field for you. Maybe you want to do something else related that doesn't require that kind of knowledge, like light system administration, computer repair, or maybe another field entirely. But even if you specialize yourself in computers (like DB training only), you will still need that stuff if you want to be really good at your job.

      Computers, and especially computer science, are NOT for people who don't like Math.

    • by xeoron (639412) on Sunday February 04 2007, @07:50PM (#17884630)
      I know that at my school there has been a massive drop in students from out of the country-- mainly Japan, China, India, Asia, etc. I wonder if it has anything to do with outsourcing, cheaper degrees elsewhere, or a shift in what people prefer to major in.