Is Computer Science Dead?

  • Computer Science Logo

    There are less people entering Computer Science in colleges and less people interested in traditional computer science practices. There's concern among adademians and one questions: "Is Computer Science Dead?"

    I heard something similar from my brother-in-law about 8 years ago. At the time he was a mail admin for a large company in Texas, running multiple mail servers handling somewhere in the 50,000 account range. At the time, that stressed a lot of the mail servers out there and it was a challenging job. But he worried about advances in automation and better software and thought that sysadmins would be mostly outdated in the next 5 years.

    It's 8 years later and I see DBAs and even SMS guys finding work in companies with less than 100 employees. So much for automation.

    I took computer classes in high school in the early 80s and spent 2 years in a Comp Sci degree and two additional years in computer engineering and while I haven't done a lot of programming, I've written enough software and been involved with developers to know that most of the fundamentals I learned with BASIC and Pascal still apply. Some of the C techniques involved with optimizing code and being very structured in your development still apply today in .NET, Ruby on Rails, or LISP. Even LISP, which I've never used outside of a academic world, still taught me how to program better.

    Because it taught me to think about computing. And algorithms, and how things are processed.

    I think CompSci is still a good major, as good as any other. I also think that we should require C programming to incoming students, force them to work with memory, understand pointers, solve the Tower of Hanoi, and other things without all the benefits you get from frameworks like .NET and J2EE. I don't believe that much has changed in computer programming in 30 years. We have Procedural and OOP programming and the concepts in either can be applied to any environment. Maybe you could learn relational logic and SQL on top of that, but everything else is new ways of combining these old techniques.

    All the rest is just syntax.

  • The problem with most programming courses today is scope exceeds depth. I can still write a program at machine level, but frankly that skill is presently of little real value as a core study in any course. Focusing on what tools should be learned broadens scope, but doesn't imply inherent value. Forcing anyone to learn a specific language is probably counterproductive at some level, even if the language is C.

    When I think of what should be learned, I can sum it up in two words: logic & structure. Those are skills unrelated to any specific language, and almost none of the recent graduates I deal with have a significant foundation in basic logic or basic structure to be effective out of the gate. They often have a smattering of many languages, tend to be efficient in only their particular passion, and only truly effective in a narrow range. (And that isn't a reflection on the individuals, but on the fact these two fundamentals are not stressed enough, and not even the genius crowd can know everything.)

    Think of coding as similar to auto repair: mechanics don't manufacture engine blocks, or any of the myriad of parts they combine to make a car run; realistically most coders today don't fashion those parts. Yes, for kernel coders and the like there are specific skill requirements, but these people breathe the code. For most general programmers, it is far better they learn to combine tools and components well, rather than carry around some ill-formed and often incorrect views about pointers and the like.

    As for CS in general, it would benefit greatly if the people in the programs were the ones with the greatest latent talents. Just like all folks cannot be great doctors, not all folks can be great programmers. The standards in our industry are reflected by the standards of these programs.

    Of course, I'm getting old, it's late, and I'm pretty sure I lost track of my own point many minutes ago.

  • I particularly agree with the statement "All the rest is just syntax". Programmers who have gone through and done justice to the basics of computers have no problem with programming well in any language or learning new technologies and tools.

    But what I would like to highlight here is that I have even come across many programmers who have graduated in Computer Science but have no grasp on the fundamentals (it could be a problem with the graduation courses in my country).

    I have recently realised that the bigger the organisation I have worked in, the more dissatisfied I have been with the developers. The percentage of people with their fundamentals in place is decreasing day by day.

    And so the problem is not just the undermining of computer Science but also the decreasing emphasis on the quality of people that organisations hire, which of course is due to the increase in demand of IT/software workers.

    The impact of this is that the more talented people are no longer attracted to this field of work because it appears that any and everyone with a crash course in a programming tool/technology can do what other  computer science graduates are also doing.

    I can totally relate to this feeling as I am increasingly thinking of changing my field of work owing to my frustration with people around me.

  • Computer Science isn't dead, it just needs to evolve - like the rest of the programming world has already.

    At university, I was taught the theory on how to develop software, with many different languages used purely as examples. In my opinion, that's the way we should be going.

    Paul

  • I recently had a discussion with my son who was going through doubts about his degree course (Entertainment Technology) and felt it did not relate to the real world. I explained that degree courses are to show your ability to learn the theory and are a necessary ticket to the world of practical work.

    My own computer science course some thirty years ago fitted this model with focus on such gems as Turing machines, AI and simulation, none of which I have directly used again. However the indirect benefits are there every day - an ability to switch between languages readily and design and develop using basic concepts amongst others.

  • This is a good question and an interesting discussion, but I think it might possibly be too limited in scope. If you step back and look at all fields, it seems there is a reduction in the number of thinkers in any field. Most people today appear to be fine with just learning how to do something so that they get the job done. Very few people care anymore about doing something the best or most efficient way. So now we have employers who have this mindset who hire staff with the same mindset.

    To further this problem, educators find it difficult to identify objective ways of testing the ability to think through problems. For the most part, our educational system is built around providing a correct answer by following the correct method and thought pattern. This doesn't really teach anyone how to think, so instead of really learning how to think through problems, students are learning how to think through the problem they need to answer for the class they are in and stop there.

    So until employers start caring and looking for people who think well and educators figure out ways to teach their students to think through problems and not just recite previously learned thoughts, we will continue to see degree programs, including computer science appear to take a downward turn.

     

  • I don't think CS is dead as a major, I do think since the dotcom bubble burst years ago the field doesn't attract as many people since the crazy megabucks aren't here anymore. When I was a student 10 years ago I knew a few people who admitted the only reason they were in the major was to make money. They didn't like being in the computer lab late at night like the rest of us, found programming dull and boring, etc. Once these people realize the kind of work involved with computer science they eventually bolt.

    I work at a university and I don't notice any decrease in the number of people in the major. There are still plenty of programming jobs around my area that pay quite well too. Maybe the situation's different for DBAs and system administrators though, I only focus on programming jobs.

  • Probably Not. I have to agree with the need to learn low-level coding. I got into this game with a two year degree from a state tech college. At the time they were churning out business programmers to go into the IBM 360/370 world. We took business type courses (lot's of accounting and managerial courses). BUT.... although we learned cobol,rpg and fortran as programming courses there was also a REQUIREMENT for THREE semesters of 360/370 assembler. That particular requirement taught me how computers work internally...then 15 + years of primarily c coding...these are the things that make it possible today for it to be 'just a matter of syntax'.

    And... I am of the opinion (all have one, all stink) that all the logic courses in the world can't teach someone to 'be' logical. That's something that we're born with (left brain/right brain stuff!). I can't draw a stick figure, but i seem able to look at any mess and see the process in it. This makes me (opinion again) a pretty good analyst, which is the ability that really makes a good computer professional. I'm doing VB.NET stuff now (and, admittedly, getting more coding done quicker than in the 'C' days), but underneath all the CLR, Java Runtime, whatever, there's still a computer with 1's and 0's!

    Michael Comperchio

    mcmprch@yahoo.com

  • Computer Science isn't dead, it isn't even sick. It is growing and expanding and finding new areas to invade. With Gates and others trying to put more and more computer technology in everything from phones to pets, from TV to your coffee machine, and probably soon to be in your food and drink, the trend to automate will continue. The field will expand. 

    News?  Over 30 years back we were told that computer programming would soon be solved and there would be no need for programmers. The promise and the silver bullet is not here yet and are not in development. We have not been put out of business yet and no one will do it soon.

    Let me reduce this to a little pseudocode:

    Ai = Pi + N + Sky;

    string silverBullet = "";

    selfDevelopingProgram stupidIdea = new Wild.eyed.dream();

    self.Maintaining.System.Code bogus = old wishful.thinking.gone.to(seed);

    Have a great day. This is kind of fun.

     

    Not all gray hairs are Dinosaurs!

  • This is exactly the trouble that i've observed in the last 10 years. lots of so called developers are not from formal training which for my opinion must include those CS subjects such as logic, algorithm, programming language, basic computing maths. 

    too bad, the market demand for programmers badly, and the managers are looking for tool specific skill set, such as vb.net c#, asp.net.  but not demanding for good problem solver.  I've seen university graduates who cannot program with vb but have very good logic and design.  it takes them a few weeks to learn and program vb.  on the other hand, those graduate with 2 years diploma or even some 6 month cram course (MCSD), they can program in vb but with very bad logic and even cannot use the if then else effectively. 

    I guess the training in CS is very valuable, one thing that i'd comment on is that some professor stand very strong on using the C,C++ or Java, linux. and try to exclude the microsoft tools.  That is something should be changed, the tools in market demand should be used so that the university graduate will have the adv edge.

    finally, an example... CS training is to train the thinker designer of a table, those "instant" developer training is to train not even a carpenter but a labor who can use very advanced new tool to build a table. these skilled labor may not necessary understand why a table has 4 legs. 

     

    rgds

  • I don't think its dead, but its unnecessary. My degrees are in Forest Management. During grad school I spent more time making databases, writing FORTRAN, building COBOL reports and sysadmin duties than any of my peers getting CIS degrees. I think college gives you the pieces to think critically and build a framework (as well as life lessons about sticking to it till its done). As long as you are able to learn and apply developmental lessons from college it really doesn't matter if you degree is in sociology or CS.

  • It's not dead, but it's not absolutely vital, if, and it's a big if, the person actually loves doing this stuff. Some of the best I've dealt with are self-taught, and while there are hurdles for those types in the beginning, most soon realize that a lot of the best practices that they didn't teach themselves actually have a true benefit, at which point they adopt them. Things like strong typing, explicit conversions, self-documenting code, version control, etc., aren't necessarily important initially to a self-taught developer, but after dealing with the repercussions of blowing those things off a few times, the good ones come around very fast.

    I also agree with the above posters who noted that learning a machine language (or assembly), on any processor for that matter, can help you greatly in many small ways in the future, whether self-taught or through formal training. I haven't coded in anything that low level in decades, but I find that the understanding of what's going on behind the scenes helps me frequently understand new concepts or issues more quickly.

    Edit: I see bnordberg made some of the same comments as I did. Simulposts are fun.

  • I don't think that computer science degrees are dead, but I do think they are "sick" (to extend the metaphor).  I think most people entering college today are sensitive to their employment opportunities after college.  A few years ago there was a huge rush to outsource IT to off-shore sites/countries.  If I were an American college freshman today, it would seriously not consider getting a degree in CS, because I would be very concerned that there wouldn't be a job for me when I graduated.

     

    Kindest Regards, Rod Connect with me on LinkedIn.

  • Are you off your prozac or something? What's with the depressing topics lately?

    Computer science will not die, unless people let it. As long as folks like me are out here, I think we will continue to push the science to its limit, and that requires further study. If kids today aren't interested in it, I don't really care. More money for me later on.

  • If you are going to require a programming language, then it should be Fortran.

    Punching cards will either make you a better programmer by getting more work out of each instruction or become a better typist.

    CS is not dead.

    We will still need coffee pots that need programming.

    Or VCR's

     

     

     

     

Viewing 15 posts - 1 through 15 (of 42 total)

You must be logged in to reply to this topic. Login to reply