Slashdot Mirror


The Death Of CS In Education?

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.

14 of 521 comments (clear)

  1. Re:If their CS programs are like ours... by reset_button · · Score: 5, Insightful

    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.
  2. Computer science is a branch of mathematics. by Anonymous Coward · · Score: 5, Insightful

    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.

    1. Re:Computer science is a branch of mathematics. by CastrTroy · · Score: 5, Funny

      I took software engineering in university. We used to say, that if you couldn't handle software engineering, you took computer science. If you couldn't handle that, you took Information management systems. If you couldn't handle that, you took Management information systems (yes, there was a differnce), and finally if you couldn't hand that, you took some business administration course.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    2. Re:Computer science is a branch of mathematics. by AuMatar · · Score: 5, Informative

      Computer engineering is a hybrid EE/CS degree. Please don't put us in the group of ignorants who think CS is useless.

      --
      I still have more fans than freaks. WTF is wrong with you people?
  3. Re:Grand theft auto vs. circles by julesh · · Score: 5, Interesting

    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.

  4. Re:If their CS programs are like ours... by Cappadonna · · Score: 5, Insightful

    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.

  5. Re:If their CS programs are like ours... by metlin · · Score: 5, Informative
    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.
  6. I RTFA by Anonymous Coward · · Score: 5, Insightful

    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.

  7. Re:If their CS programs are like ours... by illuminatedwax · · Score: 5, Insightful

    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.

    --
    Did you ever notice that *nix doesn't even cover Linux?
  8. Software isn't hard by CrazyJim1 · · Score: 5, Insightful

    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.

  9. Re:If their CS programs are like ours... by kfg · · Score: 5, Insightful

    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

  10. Thanks but no thanks. by Anonymous Coward · · Score: 5, Insightful

    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)

    1. Re:Thanks but no thanks. by booyabazooka · · Score: 5, Insightful

      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.

  11. The Meaning of a "CS" needs to be re-thought by FlyingGuy · · Score: 5, Informative

    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

    --
    Hey KID! Yeah you, get the fuck off my lawn!