Computer Science or Software Engineering, what's the difference?
16 replies, posted
Hi there,
I'm graduating highschool this year, and I have always said that I was going to take computer science, but I also saw software engineering, and am not sure what the difference really is.
From what I can gather, Comp Sci is
-More Broad and in depth
-More theory
-Can be related to other sciences (Bio, Chem, Physics)
And from what I gather, Software Engineering is
-More applied
-Learn more about specific languages
-Learn how to program, good programming techniques and solutions for specific problems
-More desirable if you want to graduate and work right away ???? (correct me if i'm wrong)
-Learn less topics than Comp Sci, but comp sci doesn't cover some programming aspects software engineering does
Please help me understand the difference and guide me which one I should choose...
Basically, I eventually want to be in video game design, but I want to get a good base first and get Comp Sci before I go and take a video game design course.
However I do not know that after university taking comp sci or software eng whether or not i'll still have a passion for game design, but I know that I still want to work with computers and programming, so at least i'll have some computer degree.
Thanks
I don't know about other universities but my first year in software engineering so far has been mainly engineering based units (Mechanics, Electronics, Maths, Communications, Materials, etc.) and we have one programming unit which is C in Linux.
Next year if I continue with software I believe all my units will be based around programming rather than just one.
Also, I believe a software engineer has a higher salary than a programmer.
[editline]10th March 2012[/editline]
And it also takes longer to become one
My university (in the UK) offers both Comp Sci and Soft Eng, and they are pretty much the same. The major difference being some optional modules in years 2 and 3, and one required maths module being dropped. The Soft Eng course also doesn't have a Masters level degree, or a year abroad/ in industry version.
But the second and third year modules focus more on the project management, and design of a system, rather than the concepts and theories behind the computer system as a whole.
I'm finishing my sophomore year in CS, for me at least the difference is just a couple of classes such as SE takes software testing and CS takes compiler theory.
Comp. sci. is actually about programming, theory, and computers. Software engineering is about the process of developing software, specifically.
So as a CS major you might spend lots of time on graph theory and approaches to different problems, whereas an SE major would spend lots of time on things like software development methodologies and project planning.
Well that's the gist of it I got from the one SE course I took.
[QUOTE=Hruhf;35078131]I don't know about other universities but my first year in software engineering so far has been mainly engineering based units (Mechanics, Electronics, Maths, Communications, Materials, etc.) and we have one programming unit which is C in Linux.[/QUOTE]
That's actually pretty neat. At my school it isn't even part of the same college.
I'm in my final year of computer science and here we shared the entire first year with the software engineering students. Our second year was almost entirely the same except where we had to do "theoretical computer science" which is all this theoretical computing maths stuff, the software engineers had to do a group development project. Now it's the final year I don't think we share any units with the software engineers apart from the final year engineering project.
Overall there isn't much difference, though I'm glad I did CS instead of SE for 2 reasons -
1. I would not want to have to do team work as part of my degree - why should my grades be dependent on others?
2. From what I've seen, computer science is considered more of a big, mainstream subject, like maths, physics, etc.
[QUOTE=Jallen;35079471]1. I would not want to have to do team work as part of my degree - why should my grades be dependent on others?[/QUOTE]
Most unis don't mark you as a group. They mark you separately, and you can tell your lecturers if your team did shit all. Plus if you actually document everything correctly it's easy to see who did what. My first Computer Systems module left me in a god awful group where I ended up developing the entire system basically, and fixing everything the other two members did such as simple HTML because it wasn't standards compliant HTML. My lecturers marked the other two down for that.
[QUOTE=hexpunK;35079749]Most unis don't mark you as a group. They mark you separately, and you can tell your lecturers if your team did shit all.[/QUOTE]
This is why I've always hated group work. Not everybody is equally skilled at everything, so what happens is that I end up carrying some groups because they have difficulty with the subject (which I totally understand) and I don't make a big deal about it because I feel that such conflict is always counter-productive, then on the rare occasion where I'm having some difficulty myself, all the others are completely merciless. Passive-aggressive comments right from the start, and sometimes they even go so far as to undermine your attempts to catch up or shun you outright. They end up expending more time asserting their dominance or assigning blame than actually working on the assignment, and the worst part is they are actually [i]rewarded[/i] for such behavior. The biggest asshole wins.
OP, what country are you in, and what university are you looking at attening? This sort of stuff varies from country to country.
[QUOTE=hexpunK;35079749]Most unis don't mark you as a group. They mark you separately, and you can tell your lecturers if your team did shit all. Plus if you actually document everything correctly it's easy to see who did what. My first Computer Systems module left me in a god awful group where I ended up developing the entire system basically, and fixing everything the other two members did such as simple HTML because it wasn't standards compliant HTML. My lecturers marked the other two down for that.[/QUOTE]
Even if they mark you as individuals, it sucks that you would ever have to compensate for others inability.
The lectureres for the couple of teamwork units in my first year argued that it's always teams in industry, but it's not the same. In industry, you go to work at fixed times, you don't have to worry about organising meetings with others, their availability and whether they'd rather be getting pissed. In industry you shouldn't have to worry about the ability of others and you shouldn't have to do other peoples jobs because they can't.
Most important of all however is not the issues of the team work, but the fact that when you do a degree in Computer Science, it should be a CS degree, not a degree in software development for industry.
That's my 2 cents anyway.
I found [URL="http://users.csc.calpoly.edu/~djanzen/secsdiff.html"]this resource[/URL] to be quite helpful. It breaks down the differences between Computer Science, Computer Engineering, and Software Engineering.
I disagree with you Jallen. Teamwork in industry isn't magically any easier. Having salaried coworkers doesn't change the fact that you have to coordinate with each other and work cooperatively to achieve the task given. Your classmates [I]should[/I] have the motivation to work together; if it doesn't work out that way then the problem likely lies with the leadership of the team.
I'd argue that an engineering degree (in this case either Computer Engineering or Software Engineering) would be more valuable than a plain Computer Science degree. The difference is alluded to in the name. There is a substantial difference between a scientist and an engineer; primarily an engineer deals with solving practical problems whereas a scientist will typically perform research into a given area. An engineering degree (of any variety) teaches its students the methods and tools necessary to develop products/solutions. That is not to say a person with a CS degree is incapable of creating products, it is just not the focus of the CS field.
I live in Southern Ontario, I want to go to the University of Guelph, because it's closer than Waterloo, and I don't think I have much of a chance surviving the maths at Waterloo, so I chose Guelph, so I know it was a secure investment for my money.
I worked as an IT Assistant for a building in the UoG as a co-op student last semester, (i'm in second semester grade 12 now), and it's a nice university, I like the vibe. I had to go every day and go to the uni's cafeteria and eat the same food everyone else is, and people thought I was just in university, it was awesome.
It was way better than highschool :D
So yeah I got set on Guelph.
[QUOTE=ChristopherB;35082638]I found [URL="http://users.csc.calpoly.edu/~djanzen/secsdiff.html"]this resource[/URL] to be quite helpful. It breaks down the differences between Computer Science, Computer Engineering, and Software Engineering.
I disagree with you Jallen. Teamwork in industry isn't magically any easier. Having salaried coworkers doesn't change the fact that you have to coordinate with each other and work cooperatively to achieve the task given. [B]Your classmates [I]should[/I] have the motivation to work together; if it doesn't work out that way then the problem likely lies with the leadership of the team.[/B]
I'd argue that an engineering degree (in this case either Computer Engineering or Software Engineering) would be more valuable than a plain Computer Science degree. The difference is alluded to in the name. There is a substantial difference between a scientist and an engineer; primarily an engineer deals with solving practical problems whereas a scientist will typically perform research into a given area. An engineering degree (of any variety) teaches its students the methods and tools necessary to develop products/solutions. That is not to say a person with a CS degree is incapable of creating products, it is just not the focus of the CS field.[/QUOTE]
That is naive. A lot of people would rather have others do their work for them, would rather be doing other things (it constantly amazes me how people seem to always leave things to the last minute), and a lot of people don't have the ability to do the work.
Also, the fact that a problem in leadership could in fact affect peoples grades is in itself a problem IMO. A degree in a subject should grade you on that subject, not your ability to work in a team.
[QUOTE=Jallen;35090355]That is naive. A lot of people would rather have others do their work for them, would rather be doing other things (it constantly amazes me how people seem to always leave things to the last minute), and a lot of people don't have the ability to do the work.
Also, the fact that a problem in leadership could in fact affect peoples grades is in itself a problem IMO. A degree in a subject should grade you on that subject, not your ability to work in a team.[/QUOTE]
We have a whole unit devoted to communication and working in teams. As our lecturer said, It is very rare to be part of a good team and that throughout her life, most of her team projects in the work place have had horrible teams. So blaming your team is pointless. We've been told that if your team isn't working, you do something about it yourself. If people don't work, you make them work. Besides, after their first 0 (They can tell when someone hasn't been doing their part) they should buckle up. That's how it works here.
[QUOTE=Hruhf;35090541]We have a whole unit devoted to communication and working in teams. As our lecturer said, It is very rare to be part of a good team and that throughout her life, most of her team projects in the work place have had horrible teams. So blaming your team is pointless. We've been told that if your team isn't working, you do something about it yourself. If people don't work, you make them work. Besides, after their first 0 (They can tell when someone hasn't been doing their part) they should buckle up. That's how it works here.[/QUOTE]
I don't like that idea.
Like I said, a degree in a subject should grade you on that subject, not your ability to work in a team.
Besides, if you are part of a project in your job and someone in the team isn't doing what they should be for whatever reason, it shouldn't be your problem to solve unless you are the project manager, which isn't relevant to Computer Science.
[QUOTE=Jallen;35092446]I don't like that idea.
Like I said, a degree in a subject should grade you on that subject, not your ability to work in a team.
Besides, if you are part of a project in your job and someone in the team isn't doing what they should be for whatever reason, it shouldn't be your problem to solve unless you are the project manager, which isn't relevant to Computer Science.[/QUOTE]
A degree is not intended to just "grade you on a subject". The idea is to train individuals to have the skills necessary to work in the companies they get hired by. Those skills go beyond just the basics (in this case, mathematics, programming, algorithms, etc); you need to be able to communicate and work with teams. Most businesses aren't looking for a "lone wolf" and frankly, anyone looking to be one need not attend college. If you're that headstrong about your own abilities, and the incompetence of others, then you should have no trouble training yourself in the discipline.
As Hrufh said, you're rarely held accountable for the failings of your teammates and even then there are a myriad of ways to get your team functioning correctly that [I]don't[/I] involve just doing all the work yourself. In my experience, the guy that always claims his team isn't doing anything, and that ends up doing all the work, is usually to blame; they take control of the project, they don't share the decision-making process, and they don't bother with including every team member. Instead, they assume leadership just means delegating tasks to "minions" and they end up being an ineffective slave-driver.
I've seen it happen many times before and I've learned that leadership is a difficult subject to grasp. I find it to be more art than science. You think working with teammates on a class-assigned project is hard? Try doing it on a voluntary, extracurricular project. It isn't easy, and not everyone makes a good leader.
[QUOTE=ChristopherB;35095685]A degree is not intended to just "grade you on a subject". The idea is to train individuals to have the skills necessary to work in the companies they get hired by. Those skills go beyond just the basics (in this case, mathematics, programming, algorithms, etc); you need to be able to communicate and work with teams. Most businesses aren't looking for a "lone wolf" and frankly, anyone looking to be one need not attend college. If you're that headstrong about your own abilities, and the incompetence of others, then you should have no trouble training yourself in the discipline.
As [b]Hrufh[/b] said, you're rarely held accountable for the failings of your teammates and even then there are a myriad of ways to get your team functioning correctly that [I]don't[/I] involve just doing all the work yourself. In my experience, the guy that always claims his team isn't doing anything, and that ends up doing all the work, is usually to blame; they take control of the project, they don't share the decision-making process, and they don't bother with including every team member. Instead, they assume leadership just means delegating tasks to "minions" and they end up being an ineffective slave-driver.
I've seen it happen many times before and I've learned that leadership is a difficult subject to grasp. I find it to be more art than science. You think working with teammates on a class-assigned project is hard? Try doing it on a voluntary, extracurricular project. It isn't easy, and not everyone makes a good leader.[/QUOTE]
This, you also can't go up to your boss and say your team isn't doing anything because either, they wont care, or they'll just make you sort it out yourself. They won't go to the effort of changing your team.
Also, on almost every prerequisite for relevant jobs (in my case at least), it lists communication skills which is all this and more. That's why we have this unit.
Sorry, you need to Log In to post a reply to this thread.