As was foretold, we've added advertisements to the forums! If you have questions, or if you encounter any bugs, please visit this thread: https://forums.penny-arcade.com/discussion/240191/forum-advertisement-faq-and-reports-thread/
Options

Computer Science vs Software Engineering

Mai-KeroMai-Kero Registered User regular
edited April 2010 in Help / Advice Forum
So I'm currently going to Kent State for Computer Science. This is after switching from English to Journalism, and then swapping to Anthropology, before settling last semester on my original post-Highschool plan of CS.

My question is: How do you differentiate Comp Sci from something like Software or Computer Engineering? What exactly is the difference? The only answer I can get out of people here is 'more math.'

Mai-Kero on

Posts

  • Options
    .kbf?.kbf? Registered User regular
    edited March 2010
    I'm not sure about software engineering but, at least at UMass, computer engineering is much much closer to EE then comp sci. It's more focused on the hardware.

    .kbf? on
  • Options
    bowenbowen How you doin'? Registered User regular
    edited March 2010
    One focuses on computers in general and the other focuses on a more specialized form of software programming.

    Don't confuse Software Engineering with programming either, the difference is like comparing a drywaller or general contractor with an architect. That said, if you're going for a Comp-Sci degree, invest the extra money and get a dual major in software engineer, the differences are usually like 5-6 classes and it's easy to get the dual degree.

    bowen on
    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    bowenbowen How you doin'? Registered User regular
    edited March 2010
    Well, slightly more than 5-6 classes depending on degree and the school, but usually to be a software engineer you have to know the hardware stuff anyways.

    bowen on
    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    L Ron HowardL Ron Howard The duck MinnesotaRegistered User regular
    edited March 2010
    Software Engineering, uh, engineers the software. They design the software. They create the requirements that the software needs to fulfill, and then work out how the whole thing works. They create each object and each method/function/procedure in each object, what the inputs are, and what the outputs are, what objects/classes/etc talk to other objects/classes/etc and how, as well as DB interaction.
    Software Engineering is perhaps a bit more specifically applied version of Computer Science.

    Computer Science is just that, the science behind it. Computer Science is, usually, a lot more theoretical. It does deal a lot more with the math on how computers work, instead of an end product. People I know with PhD's+ in CompSci all work at universities and towards various theoretics, such as security (encryption and decryption, very heavy mathematics) or AI.

    A comparison that one might make would be that a computer scientist is akin to a research scientist, usually employed at a university somewhere, whereas a software engineer is someone who goes out and applies it more directly.

    Of course, the two different things are very huge, and it's hard to completely quantify both. I'm only using the most generic and broad terms as possible, because I know someone is going to come in here saying they know so-and-so who does such-and-such and all of my points will be invalid, so take it with somewhat of a grain of salt.

    L Ron Howard on
  • Options
    admanbadmanb unionize your workplace Seattle, WARegistered User regular
    edited March 2010
    Software Engineering, uh, engineers the software. They design the software. They create the requirements that the software needs to fulfill, and then work out how the whole thing works. They create each object and each method/function/procedure in each object, what the inputs are, and what the outputs are, what objects/classes/etc talk to other objects/classes/etc and how, as well as DB interaction.
    Software Engineering is perhaps a bit more specifically applied version of Computer Science.

    Computer Science is just that, the science behind it. Computer Science is, usually, a lot more theoretical. It does deal a lot more with the math on how computers work, instead of an end product. People I know with PhD's+ in CompSci all work at universities and towards various theoretics, such as security (encryption and decryption, very heavy mathematics) or AI.

    A comparison that one might make would be that a computer scientist is akin to a research scientist, usually employed at a university somewhere, whereas a software engineer is someone who goes out and applies it more directly.

    Of course, the two different things are very huge, and it's hard to completely quantify both. I'm only using the most generic and broad terms as possible, because I know someone is going to come in here saying they know so-and-so who does such-and-such and all of my points will be invalid, so take it with somewhat of a grain of salt.

    Well, the main thing is that a lot of schools aren't going to make a distinction between CS and SE. My CS BA required about three pure theory classes and the rest engineering classes.

    If your school does have a distinction it's as you say: CS for academic/theory work, SE for development work. If your school doesn't, you're probably (hopefully) taking a hybrid course with a focus on the SE. The concept of a pure SE degree is, I think, a recent one. Every job posting I've seen asks for a CS or CE degree. I'm sure they accept SE degrees but the fact that they don't mention them shows their rarity. The lack of a common distinction does have its dangers though: there's always a decent bit of hubbub about how to identify people with CS degrees who have absolutely no idea how to write code.

    admanb on
  • Options
    Sir CarcassSir Carcass I have been shown the end of my world Round Rock, TXRegistered User regular
    edited March 2010
    I've been in the CS program at three different universities, and they all had a large focus on SE, but there was no SE degree. The last school I went to, I even took Software Engineering and Software Engineering Project classes. I think the expectation is if you complete a CS program, you'd be able to serve in a SE role.

    Sir Carcass on
  • Options
    RhinoRhino TheRhinLOL Registered User regular
    edited March 2010
    Look at your college catalog, they should have all the classes listed for each major. Those should give you a general idea of what is involved with each. There will be some overlap, but look at the differences.

    Rhino on
    93mb4.jpg
  • Options
    ASimPersonASimPerson Cold... and hard.Registered User regular
    edited March 2010
    I've been in the CS program at three different universities, and they all had a large focus on SE, but there was no SE degree. The last school I went to, I even took Software Engineering and Software Engineering Project classes. I think the expectation is if you complete a CS program, you'd be able to serve in a SE role.

    This, pretty much.

    I was a scientist in college but at my job I'm an engineer.

    Computer engineering, by the way, is a completely different field than either CS or SE and at many schools is electrical engineering with a focus on technologies for processors and other computer hardware components.

    ASimPerson on
  • Options
    samsam7samsam7 Registered User regular
    edited March 2010
    I'm currently doing a B.S. in Computer Science and the concentration I chose was Software Engineering. The 'other' computers major we've got is Computer Systems Engineering which is more hardware based. Most of the required classes are similar though all the way up to 300 level courses, and even then, a lot of 400 level electives were shared between them too.

    Have you asked your adviser about the different concentrations each major has? Maybe that could point you in the right direction.
    admanb wrote: »
    If your school does have a distinction it's as you say: CS for academic/theory work, SE for development work. If your school doesn't, you're probably (hopefully) taking a hybrid course with a focus on the SE. The concept of a pure SE degree is, I think, a recent one. Every job posting I've seen asks for a CS or CE degree. I'm sure they accept SE degrees but the fact that they don't mention them shows their rarity. The lack of a common distinction does have its dangers though: there's always a decent bit of hubbub about how to identify people with CS degrees who have absolutely no idea how to write code.

    That last bit is so true. A lot of CS doesn't require actual coding, and when they do ask you to write some code based on the theory you've been studying, they assume you know how to code, as if you were born with it. Don't be too worried, the first class I took for my major was a simple intro to C++, and a couple other programming classes that upped the ante in terms of difficulty. However, the huge majority of my classes just handed me an assignment and said 'go for it'. And usually good end results is enough for a TA, but actual good coding practices are not emphasized at all when compared to good theory and engineering.

    You'd be doing yourself a favor by reading a few good programming books in your own time on the side while you learn. I'd imagine a CS major who can code well is worth a lot and the 'total package' for someone looking to hire.

    A friend of mine who is a PhD candidate and very passionate about CS basically put it this way when I was moaning and complaining as a sophmore about the lack of actual coding instruction, "If you wanted to learn to code, go to ITT Tech."

    (No offense to anyone who is at ITT Tech)

    samsam7 on
  • Options
    bowenbowen How you doin'? Registered User regular
    edited March 2010
    Well, he's wrong, they don't teach how to code either.

    The only reason I can do my job is because I knew how to do it before I entered ITT. Of the 50 people who were the first people in the degree (first time they offered it) 2 of us passed.

    NIIT books are just peachy.

    bowen on
    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    SaammielSaammiel Registered User regular
    edited March 2010
    ASimPerson wrote: »
    I've been in the CS program at three different universities, and they all had a large focus on SE, but there was no SE degree. The last school I went to, I even took Software Engineering and Software Engineering Project classes. I think the expectation is if you complete a CS program, you'd be able to serve in a SE role.

    This, pretty much.

    I was a scientist in college but at my job I'm an engineer.

    Computer engineering, by the way, is a completely different field than either CS or SE and at many schools is electrical engineering with a focus on technologies for processors and other computer hardware components.

    I wouldn't say they were completelly different. I graduated as a CE and mostly do software work now (if you gave me a circuit at this point and ask me to calculate a voltage I would just stare at you dumbly). But CEs learn a lot of the same crap as Comp Sci people did at my school. The differences were we had a lot more hardware classes, a lot more physics based coursework and more math. Comp Sci had a bit more exposure to languages and the design thereof by default. They also were able to take a more broad courseload. At my school CE was also a fuck of a lot harder than Comp Sci, but that will vary based on the institution I think.

    Saammiel on
  • Options
    SmurphSmurph Registered User regular
    edited March 2010
    Software Engineering, uh, engineers the software. They design the software. They create the requirements that the software needs to fulfill, and then work out how the whole thing works. They create each object and each method/function/procedure in each object, what the inputs are, and what the outputs are, what objects/classes/etc talk to other objects/classes/etc and how, as well as DB interaction.
    Software Engineering is perhaps a bit more specifically applied version of Computer Science.

    Computer Science is just that, the science behind it. Computer Science is, usually, a lot more theoretical. It does deal a lot more with the math on how computers work, instead of an end product. People I know with PhD's+ in CompSci all work at universities and towards various theoretics, such as security (encryption and decryption, very heavy mathematics) or AI.

    A comparison that one might make would be that a computer scientist is akin to a research scientist, usually employed at a university somewhere, whereas a software engineer is someone who goes out and applies it more directly.

    Of course, the two different things are very huge, and it's hard to completely quantify both. I'm only using the most generic and broad terms as possible, because I know someone is going to come in here saying they know so-and-so who does such-and-such and all of my points will be invalid, so take it with somewhat of a grain of salt.

    This is basically what I was going to post. If there is only a Computer Science program, it's probably focused on Software Engineering with a few theory classes. That's the way it works at most universities. Most Software Engineers have Computer Science degrees.

    One thing to pay attention to is what school/department the CS program belongs to. If it's in with the other Engineering programs, it's probably really Software Engineering focused. If it's in with the Math and Physics departments, it's probably a lot more theory focused.

    Smurph on
  • Options
    NamrokNamrok Registered User regular
    edited March 2010
    I got my computer engineering degree at Virginia Tech (since schools do tend to be different).

    Computer engineering there could go down more of a computer science path, an electrical engineering path, or a hybrid of both. You got to choose based on the classes you select, many of which would be computer science classes. One thing I noticed was that computer science people had to take a lot of theory classes. But they seemed to lack an understanding of the raw physics of how a computer actually operated, which can be useful every now and again, but I can see how you wouldn't need it as a programmer.

    Another part depends a lot on the culture of the program. I know computer science at Virginia Tech was...special. A lot of the professors were definitely nerds who were greatly enjoying the ability to lord over their students and rub in how much smarter they were than them. The professors I had in the Engineering track tended to be professionals who came back to teach and share their knowledge of the working world. Application of knowledge was huge in the engineering track, where as the inherent beauty of programming as an art seemed to be big in computer science.

    Your mileage may very and most importantly you should think about what you'd like to get out of your degree, and the culture of your field. If you're looking to be a professional student and stay in college forever as a grad student or whatever, I'd go with computer science hands down. If you want to actually work and make money (money is nice), it's rather a split. Either degree will get you a job perfectly fine.

    I prefered Computer Engineering myself, obviously.

    Namrok on
  • Options
    koconutmonkeykoconutmonkey Registered User regular
    edited March 2010
    I really benefited from this thread! The definition and distinction in software engineering has led me to start looking down that path. Thanks guys.

    koconutmonkey on
    Time to roll the dice.
  • Options
    GothicLargoGothicLargo Registered User regular
    edited March 2010
    From a hiring perspective I can say that they're largely interchangeable. It's really sort of a spectrum.

    Practical Knowledge of How to Use Computers in Business
    • Bachelor's of Business - Information Technology (or similar)
    • Bachelor's of Engineering - Software Engineering
    • Bachelor's of Science - Computer Sciences
    • Bachelor's of Engineering - Computer Engineering
    • Bachelor's of Engineering - Electrical Engineering
    Theoretical Understanding of How Computers Work

    In general, courses tend to overlap with the degrees above and below them simply because colleges try to be efficient about getting the most students into courses that are vaguely related to what they're trying to study. A Software Engineering student for example will probably have to study the basics of computing theory, but not to the extent that a ComSci or ComE would. A ComSci student may have some courses where they program IC chips to do cool things but they won't have projects where they create complex devices like a ComE or an EE.

    IT and SofE majors will probably be assigned coursework involving SQL. An EE won't, but a ComSci might have relational databases as an elective option.

    GothicLargo on
    atfc.jpg
  • Options
    samsam7samsam7 Registered User regular
    edited March 2010
    bowen wrote: »
    Well, he's wrong, they don't teach how to code either.

    The only reason I can do my job is because I knew how to do it before I entered ITT. Of the 50 people who were the first people in the degree (first time they offered it) 2 of us passed.

    NIIT books are just peachy.

    I stand corrected.

    Also OP, some schools offer a Bachelor of Science in Engineering, as opposed to just a B.S., I'm not sure how much of a difference there is between required classes and the curriculum, but I suppose it's worth asking your adviser about.

    samsam7 on
  • Options
    TheGreat2ndTheGreat2nd Registered User regular
    edited April 2010
    I've been in the CS program at three different universities, and they all had a large focus on SE, but there was no SE degree. The last school I went to, I even took Software Engineering and Software Engineering Project classes. I think the expectation is if you complete a CS program, you'd be able to serve in a SE role.

    This pretty much.
    I'm studying CS, but I have a pretty good grasp on software engineering stuff.
    My school concentrates more on the theoretical side though.

    TheGreat2nd on
    BinghamtonUniversity.png
    I'm Jacob Wilson. | facebook | thegreat2nd | [url="aim:goim?screenname=TheGreatSecond&message=Hello+from+the+Penny+Arcade+Forums!"]aim[/url]
Sign In or Register to comment.