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.

13 of 521 comments (clear)

  1. What is CS Anyway? by tymbow · · Score: 1, Informative

    I find many people don't even know what CS is anyway. Most people I meet seem to lump anything do with computers under the CS banner.

  2. Re:British Computer Society is a joke by Crosma · · Score: 2, Informative

    You are right, of course. I'm just bitter. I was one of the more adept programmers (let's say, top 5%) in the year, but my degree does not reflect that, because I sucked at everything else. C'est la vie.

  3. 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.
  4. Re:If their CS programs are like ours... by Rakishi · · Score: 2, Informative

    Almost everything in quantitative AI is math - machine learning, neural nets and the like.

    Just a note: There are tons of jobs right now for people who can do machine learning or statistics on very large datasets (ie: the type which you can't load into memory at once and sometimes which are continually being lengthened).

  5. Re:no subject by MBCook · · Score: 4, Informative

    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.

    --
    Comment forecast: Bits of genius surrounded by a sea of mediocrity.
  6. From Computer Science to Abstraction Physics by 3seas · · Score: 2, Informative

    Perhaps we are just getting tired of pretending the obvious doesn't exist --- or in other words we are becomming so accustomed to computer in general that we are naturally quantizing its purpose and functionality?? Or from another perspective, let's up gear and find a better way to calculate with more then just the numerical subset of abstraction, but with what ever abstractions we might come up with.

    Lets try try this other perspective!

    A course in: Abstraction physics

    Introduction:

    The physics of abstraction (abstraction physics)is of an outside looking in perspective, where rather than creating another abstract language (inside), instead sees the underlying action machinery enabling the ability to create languages (outside looking in). Since Abstraction is a human mental characteristic, there is an inherent subjectivity to the topic. However, through the use of computers we can be more objective about abstraction physics. See: Abstraction (computer science)

    Abstraction enters the picture of computing with the representation of physical transistor switch positions of ON '1' and OFF '0' or what we call "Binary notation". However, computers have far more transistor switches in them than we can keep up with in such a low level or first order abstract manner, so we create higher level abstractions in order to increase our productivity in programming computers. From Machine language to application interfaces that allow users to define some sequence of action into a word or button press (ie. record and playback macro) so to automate a task, we are working with abstractions that will ultimately access the hardware transistor switches which in turn output to, or control some physical world hardware.

    Programming is the act of automating some level of complexity, usually made up of simpler complexities, but done so in order to allow the user to use and reuse the complexity through a simplified interface. And this is a recursive act, building upon abstractions others have created that even our own created abstractions/automations might be used by another to further create more complex automations. In general, if we didn't build upon what those before us have done, we then would not advance at all, but rather be like any other mammal incapable of anything more than, at best, first level abstraction. But we are more, and as such have the natural human right and duty to advance in such a manner.

    Abstraction action constants:

    There is an identifiable and definable "physics of abstraction" (abstraction physics), an identification of what actions are required and unavoidable, in order to make and use abstractions. Abstraction Physics is not exclusive to computing but constantly in use by ... well... us humans. Elements or facets of abstraction physics include the actions of abstraction creation and use, such as:

    0) Defining a word to mean a more complex definition (word = definition, function-name = actions to take, etc.)

    1) Starting and Stopping (interfacing with) of an abstraction definition sequence.

    2) Keeping track of where you are in the progress of abstraction sequence usage (moving from one abstraction to another).

    3) Defining and changing "input from" direction.

    4) Defining and changing "output to" direction.

    5) Getting input to process (using variables or place holders to carry values).

    6) Sequencially stepping thru abstraction/automation details (inherently includes optionally sending output).

    7) looking up the meaning of a word or symbol (abstraction) so to act upon or with it.

    8) Identifing an abstraction or real item value so to act upon it.

    9) Putting constraints upon your abstraction lookups and identifications -When you look up a word in a dictionary you don't start at the beginning of the dictionary, but begin with the section that starts with the first letter then followed by the second, etc., and when

  7. Re:Blame employers by SkyDude · · Score: 4, Informative

    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.
    --
    == First cross river, then insult alligator.
  8. Re:British Computer Society is a joke by Anonymous+Brave+Guy · · Score: 2, Informative

    CS grads with first class degrees got them by being good at everything.

    If only that were true.

    And no, that isn't bitterness. I was pretty high up in the year group in my CS studies. But a few years later, I also now mentor new starters at work, and there are plenty of guys out there who got great qualifications but still don't get it.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  9. 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?
  10. Re:Market forces by Axe · · Score: 2, Informative

    Then why it is so hard to find somebody half decent for a very competitive salary?

    --
    <^>_<(ô ô)>_<^>
  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!
  12. Re:I RTFA by zhrinze · · Score: 2, Informative
    What a ludicrous statement. Yes universities provide education in law and medicine, but there is a broader amount of education going on. A doctor must be able to adapt to new diseases, diagnose combinations of diseases, differentiate between the unique symptoms a person comes in with. Medical technicians are trained at a vocational school.

    And lawyers - lawyers must not only know the law, but be prepared to go to trial and apply psychology, dispute or prove evidence, make use of precendents, and adapt to variables that cannot be trained. A paralegal can be trained to search for cases and to find possibly relevant material with great competency, but the lawyer must decide how it can be applied to the case.

    Do people go to college to get jobs? Sure. Few people have the luxury to attend college for purely edifying reasons. Do colleges play to that? Sure. Unfortunately, many schools are required to provide educational tracks that are narrow in order to receive their funding or in order to stay fiscally viable.

    Many universites and colleges are even DIRECTLY tied to technical schools. They provide those services as well and they are forced to offer similar tracks at the tech school part that are offered in the academic part.

    The reality is that some colleges are caving to student demands for fiscal reasons, but medicine and law aren't good examples. I'd hate to be operated on by a "tech school surgeon."

  13. Re:Grand theft auto vs. circles by Anonymous Coward · · Score: 1, Informative

    Speaking as a former professional game developer, and as an active participant in open source 3D engine efforts, I want to point out that powerful 3D game development kits can be downloaded for free, and you can make games with easy scripting languages like Python. Maybe something like Blender or Panda 3D would be good for your case, both of which can be programmed with Python.

    Then, if your son wants to make GTA3, make a simple level file with some buildings and a car model, then tell your son "OK, now make the car move in circles".

    Probably your son wants to see cool graphics first. You can download free high-quality models and textures if you search. For instance, you can get a free car model from http://www.blendernation.com/2006/12/03/using-blen ders-game-engine-for-more-than-just-games/ , and see http://lowpolycoop.com/ for some other high-quality models.

    Show your son the graphics, then show him that HE can control the graphics by programming the scripting language.

    The bar has been raised since we were kids (when we were excited just to control pixels on the screen), but there _are_ tools available that allow fancy graphics to be controlled with simple programs.

    Best of luck.