View Full Version : Computer science vs computer engineering?
virgilaug
Feb 3rd, 2012, 08:21 PM
Can anyone tell me the difference between the two? Thank you
Mark77
Feb 3rd, 2012, 09:11 PM
CompE = first year is mostly in common with other more traditional 'engineering' fields (Mech, Civil, Electrical, Chem). 2nd year is mostly in common with EE.
CS = first year is in common with most other Arts and Science students.
CompE is probably more rigorous and structured at most places. However, the amount of applications software classes you take will be somewhat less. More of a 'hardware' emphasis while normal CS has basically no hardware (and most CS grads probably couldn't even describe to you how a computer works from a physical point of view, or even at a low-level).
"Hardware" can mean anything from systems engineering, integration, networks, to chip design, and even power supply design, among other things.
Job market has been better for CS, than it has been for CompE throughout the past decade, especially since firms like Nortel that made hardware, tended to hire more guys aligned with hardware (and Nortel doesn't exist). Outfits like Google/Facebook have extremely few CompE's, and mostly hire CS grads because they deal almost exclusively in software (up until 2006, only 2 EE's actually worked in EE roles with Google!).
I have degrees in both, so feel free to fire me any questions.
cwb27
Feb 3rd, 2012, 09:15 PM
I work with a CS grad.... Can talk my ear off about programming in various languages but can barely explain the difference between Layer 2 and Layer 3 in the OSI model.
Anonymouse
Feb 3rd, 2012, 09:53 PM
Basically, with one degree you are a member of a respected profession and have a scholastic career that proves to employers you know how to work hard. With the other, you can program a computer to solve Sudokus and friends/relatives will ask you to fix their Windows problems for free, because who pays for that?
Any CompE can do the job of any CS grad, but the reverse is not true. My university offered an additional degree in Computing to any engineer who was willing to stick around an extra year. The takeup rate was not high.
Mark77
Feb 3rd, 2012, 10:00 PM
Any CompE can do the job of any CS grad, but the reverse is not true. My university offered an additional degree in Computing to any engineer who was willing to stick around an extra year. The takeup rate was not high.
I disagree, the level of rigour in software development and software engineering in a CS program is significantly different than what is present in a CompE program.
The hardware emphasis of CompE definitely has to end up removing software engineering-type topics from an overall program to fit it in a 4 year program.
Anonymouse
Feb 3rd, 2012, 10:07 PM
I have both degrees as well (well, not exactly, EE and CS), and believe me the extra formal methods and such is a waste of time. Software engineering is such a nascent field that there ain't that much to learn, and any CompE can get it out of a book. (Actually, my EE program had a mandatory Software Eng course.)
Aznsilvrboy
Feb 4th, 2012, 03:45 AM
I work with a CS grad.... Can talk my ear off about programming in various languages but can barely explain the difference between Layer 2 and Layer 3 in the OSI model.
Networking courses in CS programs are generally optional and are taken as electives. A CS grad who did not take the elective will not know the OSI model. CS focuses on the theory of computing rather than one specific area.
Basically, with one degree you are a member of a respected profession and have a scholastic career that proves to employers you know how to work hard. With the other, you can program a computer to solve Sudokus and friends/relatives will ask you to fix their Windows problems for free, because who pays for that?
Any CompE can do the job of any CS grad, but the reverse is not true. My university offered an additional degree in Computing to any engineer who was willing to stick around an extra year. The takeup rate was not high.
I disagree. CompEs do not learn the rigorous theory required to write good software. They would not be able to tell you an efficient algorithm. They do not know what problems can be efficiently solved and which ones are impossible and therefore you must settle for a mediocre solution. Computer Scientists are the ones that come up with these things and CompEs wouldn't have a clue.
DrXenon
Feb 4th, 2012, 10:30 AM
I disagree. CompEs do not learn the rigorous theory required to write good software. They would not be able to tell you an efficient algorithm. They do not know what problems can be efficiently solved and which ones are impossible and therefore you must settle for a mediocre solution. Computer Scientists are the ones that come up with these things and CompEs wouldn't have a clue.
I disagree. CompEs at my school take courses like:
CMPE 322 Software Architecture 3-0-1 4
CMPE 332 Database Management Systems 3-0-0 3
CMPE 333 Introduction to Data Mining 3-0-0 3
CMPE 365 Algorithms I 3-1-0 4
CMPE 422 Formal Methods in Software Engineering 3-0-0 3
CMPE 432 Advanced Database Systems 3-0-0 3
CMPE 454 Computer Graphics 3-0-0 3
SOFT 325 Human Computer Interaction (Also designated as CISC 325) 3-0-0 3
SOFT 423 Software Requirements (Also designated as CISC 423) 3-0-0 3
SOFT 425 Advanced User Interface Design (Also designated as CISC 425) 3-0-0 3
CompEs learn everything you need to know to be a good programmer, which by the way is something that comes from experience, not book learning.
Metagame
Feb 5th, 2012, 12:59 AM
Basically, with one degree you are a member of a respected profession and have a scholastic career that proves to employers you know how to work hard. With the other, you can program a computer to solve Sudokus and friends/relatives will ask you to fix their Windows problems for free, because who pays for that?
Haha. If they are so respected, then why are so many of them unemployed and having their jobs outsourced? IMO, if some foreigner could do your job for a fraction of the pay that a Canadian factory worker earns, then your job is truly not respected. :lol:
Any CompE can do the job of any CS grad, but the reverse is not true. My university offered an additional degree in Computing to any engineer who was willing to stick around an extra year. The takeup rate was not high.
Computer scientists are heavily sought in cryptography, quantum computing research, computational fluid dynamics (with some physics background seeing as mechanical and aerospace engineers fail miserably when it comes to this field), and quantitative finance. How come the unemployed computer engineers playing WoW in their parents' basements are not being heavily sought for those positions as are computer scientists? Every computer science prof in my university has many offers by big finance firms to do quantitative analysis and most have worked in finance before coming to academia.
You can continue to clutch to the outdated notion that engineering is "respected", but reality will soon hit you in the face when your job is outsourced and you soon don a Mcdonalds uniform and ask a computer scientist after he orders with his child, "would you like some fries with that"? :lol:
Aznsilvrboy
Feb 5th, 2012, 05:07 AM
I disagree. CompEs at my school take courses like:
CMPE 322 Software Architecture 3-0-1 4
CMPE 332 Database Management Systems 3-0-0 3
CMPE 333 Introduction to Data Mining 3-0-0 3
CMPE 365 Algorithms I 3-1-0 4
CMPE 422 Formal Methods in Software Engineering 3-0-0 3
CMPE 432 Advanced Database Systems 3-0-0 3
CMPE 454 Computer Graphics 3-0-0 3
SOFT 325 Human Computer Interaction (Also designated as CISC 325) 3-0-0 3
SOFT 423 Software Requirements (Also designated as CISC 423) 3-0-0 3
SOFT 425 Advanced User Interface Design (Also designated as CISC 425) 3-0-0 3
CompEs learn everything you need to know to be a good programmer, which by the way is something that comes from experience, not book learning.
If you don't have book knowledge, you wouldn't even know where to start programming, let alone be a good programmer. You would start trying out random things until it works and settle with it. You wouldn't know which data structures to use, and what algorithms to apply and etc. Experience won't teach you those things, you're still going to write inefficient code after 10 years.
DrXenon
Feb 5th, 2012, 10:33 AM
If you don't have book knowledge, you wouldn't even know where to start programming, let alone be a good programmer. You would start trying out random things until it works and settle with it. You wouldn't know which data structures to use, and what algorithms to apply and etc. Experience won't teach you those things, you're still going to write inefficient code after 10 years.
Certainly some minimum amount of theory is required, but you would be surprised at how little you really need to function in a real workplace. The core courses in CS are algorithms, OSes and data structures. The rest just fills up the 4 years so they can call it a real degree. (Ever notice how, strangely, every single field at your university takes exactly 4 years to earn a degree in? They don't all require it, y'know.)
What is far more valuable is encyclopedic knowledge and experience in MFC, Java core API and C standard library. This is not taught in universities, or at least it wasn't 10 years ago. If new grads are as productive as folks with 5 years' experience, why are they paid so much less? Pure age discrimination?
Aznsilvrboy
Feb 5th, 2012, 06:25 PM
Certainly some minimum amount of theory is required, but you would be surprised at how little you really need to function in a real workplace. The core courses in CS are algorithms, OSes and data structures. The rest just fills up the 4 years so they can call it a real degree. (Ever notice how, strangely, every single field at your university takes exactly 4 years to earn a degree in? They don't all require it, y'know.)
What is far more valuable is encyclopedic knowledge and experience in MFC, Java core API and C standard library. This is not taught in universities, or at least it wasn't 10 years ago. If new grads are as productive as folks with 5 years' experience, why are they paid so much less? Pure age discrimination?
What's the point of memorizing APIs and libraries when they're meant as references that you look up when you need them? In fact most programming books would say the same thing. Universities today still don't teach MFC, Java core API and C std lib. They only use them as instructional tools to achieve a purpose (apply the theory learned in class). Taking the intro courses in the first two years paves the way for the so-called "core courses" you mention. You don't just teach someone Dijkstra's, dynamic programming, greedy, threads, synchronization, memory management, all different kinds of trees right off the bat.
damnos
Feb 5th, 2012, 08:41 PM
CS = first year is in common with most other Arts and Science students.
Lol nah ... at least in Waterloo CS first year is nothing close to Arts & Science.
CS is math through and through.
Any CompE can do the job of any CS grad, but the reverse is not true..
Engineering complexity much?