Thread: Software Engineering vs Computer Science

  1. #1
    Registered User
    Join Date
    Oct 2004
    Posts
    63

    Software Engineering vs Computer Science

    Topic is fairly self explanatory....which would you go with and why?

    What are the advantages and disadvantages of each?

    Thanks in advance
    -Webmaster-
    http://www.koaworld.com
    Pr0gr4m|\/|1Ng n00b

  2. #2
    5|-|1+|-|34|) ober's Avatar
    Join Date
    Aug 2001
    Posts
    4,429
    Computer Science - It is the standard "programming major". It has been around and defined for ages. When someone hires a computer scientist, they can expect them to know C/C++ or Java or both and most likely other languages. People know what it is and will understand your background without much explaination. You can get a Masters in Computer Science.

    Software Engineering - a new breed of programming major. Not all major schools even offer it. No one is really sure what it means or how it differs from CS other than the people teaching it and the schools offering it. Major companies will be confused by it and they will ask you what sort of classes you took. Several schools don't even have an accredited program for it since it hasn't been around long enough for someone to graduate from those schools with the degree.

    In short, I'm not even sure what Software Engineering is, but I think it's a crappy attempt for people to call themselves "engineers" when they're just programmers. Is there engineering in programming? Maybe.... but if you're strictly programming based off of proven models, I don't think there is much engineering going into it.

    That's my take on it anyways. I'm sure someone will refute it because I think there are a few people here taking Software Engineering.

    EDIT: Further reading... and there are some good articles there.

    EDIT 2: Apparently I forgot to post the link, or the board decided to remove it. http://www.google.com/search?q=compu...utf-8&oe=utf-8
    Last edited by ober; 02-04-2005 at 08:50 AM.

  3. #3
    Mayor of Awesometown Govtcheez's Avatar
    Join Date
    Aug 2001
    Location
    MI
    Posts
    8,823
    I think of Computer Science as your standard code monkey. To me, Software Engineering is actually desiging the programs, and then writing them. The difference is really small-to-none, though, since plenty of CS's design their programs, too.

  4. #4
    Registered User
    Join Date
    Mar 2004
    Posts
    494
    I found this on the net. http://www.comp.lancs.ac.uk/computing/resources/IanS/
    Software Engineering i think is more broad than CS, as it focuses more on hardware than software, maybe thats why they call it engineering.
    When no one helps you out. Call google();

  5. #5
    Registered User
    Join Date
    Mar 2003
    Posts
    580
    Software Engineering also offers extra things that you don't normally get in computer science, i.e embedded systems development.
    See you in 13

  6. #6
    Registered /usr
    Join Date
    Aug 2001
    Location
    Newport, South Wales, UK
    Posts
    1,273
    At my university, Software Engineering earns you a Bachelor of Engineering, whereas CS earns you a BSc. Can't see that much difference, except CSers can expect to go into the theory behind things more often.

    Also the Royal Navy decided I couldn't train to be an Engineering Officer because my course (CS) didn't have engineering accreditation (or something like that, the recruiter was mumbling a bit), even though where I am it gets the same as most engineering courses. Losers.

    Bitter? Me?

  7. #7
    Mayor of Awesometown Govtcheez's Avatar
    Join Date
    Aug 2001
    Location
    MI
    Posts
    8,823
    I think that really depends on where you go. Our CS majors all had to take an embedded systems class.

  8. #8
    and the hat of int overfl Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    39,656
    > you're strictly programming based off of proven models, I don't think there is much engineering going into it.
    If bridges/houses/cars/planes/skyscrapers were built like software, the world would be in chaos. Are you suggesting that all these activities are devoid of any real engineering?

    Knowing how to slap a couple of bricks together for a barbeque doesn't mean you have the knowledge to build a house for example, or laying a tree across a small river doesn't mean you're a professional bridge builder all of a sudden. Engineering answers questions where most people don't even realise there was a question, let alone how to find the answer.

    Computer Science is abstact - you study things like algorithms, data structures, numerical methods for computation, set theory, network theory, logic theory etc. It's entirely possible that you could get through a CS degree without ever learning a real world language. Even if you get taught a language, I've seen way too many professors who still think void main is a good idea to believe that the language taught was anything but a means of getting the students to do the homework (not a solid foundation for future employment). You might end up being able to tell the difference between a C compiler and a slice of toast, but that in itself doesn't make you a competent programmer.
    If the course teaches you how to program, then that at least is more useful than knowing the syntax for a programming language. For once you know how to program, figuring out how to apply that to any programming language isn't that hard.

    Software Engineering is about how to construct large real-world programs using real world languages, which actually do what was intended when you started on the project.
    For example, SE should teach you about Requirements and Design. If you don't master both of these then the chance of delivering bug-free programs the user wanted are about 0%, no matter how good a programmer you are.

    Without Requirements, you'll deliver a bug-free program (you did the design), but it won't be what the customer wanted.
    Without Design, you'll deliver a bug-ridden program (no design), but the bits which do work eventually will be what the customer wanted.

    Then you need all that CS stuff (algorithms etc) which allows you to take the design and produce efficient code which does the right thing. You might be a good software designer, but if you do something dumb like using bubble sort instead of quicksort, you still lose.

    SE should also teach you about how to test your work - like how do you test your requirements to see if they are both complete and consistent, or how to test your design to make sure it reflects the requirements.
    For example, if you'd specified an editor, you'd look a right lemon if your requirements only stated that you could load a file, but omitted to say that you could save a file.
    Then there's actual testing of the software (both static and dynamic tests).
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper.

  9. #9
    & the hat of GPL slaying Thantos's Avatar
    Join Date
    Sep 2001
    Posts
    5,681
    One of the big focuses of SE is proving that a program does what it claims to do. One of my professors was telling us recently of a project going on at a university where they are attempting to prove the entire system works: the program, the compiler, the os, the electronics, everything that is involved in the decision making process.

  10. #10
    Meow Pendragon's Avatar
    Join Date
    Sep 2001
    Location
    Swindon, UK
    Posts
    723
    I'm studying Software Engineering at Soton Uni at the moment. It's identical to the Computer Science course for the first two years (fundamentals of programming, algorithms, discrete maths, hardware, electronics et cetera)... then splits off to focus more on the design and development process for large commercial applications.

  11. #11
    Registered User
    Join Date
    Oct 2004
    Posts
    63
    I think I've decided to go with Computer Science with a minor in Business.

    A lot of what I've read sounds like ultimately, CS and SE will get you to the right place if you play your cards right, but CS has more scholarships at Waterloo :P
    -Webmaster-
    http://www.koaworld.com
    Pr0gr4m|\/|1Ng n00b

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Is a career in computer science promising?
    By yougene in forum A Brief History of Cprogramming.com
    Replies: 15
    Last Post: 03-07-2008, 06:09 PM
  2. Computer Science Major
    By Dark_Oppressor in forum A Brief History of Cprogramming.com
    Replies: 11
    Last Post: 11-20-2006, 09:18 AM
  3. please help me decide between computer science or information system
    By FifthEdition in forum A Brief History of Cprogramming.com
    Replies: 8
    Last Post: 11-07-2004, 06:19 PM
  4. Anyone Ever Taken Computer Science A AP Test?
    By adc85 in forum A Brief History of Cprogramming.com
    Replies: 6
    Last Post: 05-04-2003, 02:33 PM
  5. Best Engineering Developer (Circuits) Software
    By kuphryn in forum A Brief History of Cprogramming.com
    Replies: 4
    Last Post: 01-18-2003, 10:59 AM