1. Not finding help here? Sign up for a free 30min tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Computer Engineering Vs Computer Science

  1. May 25, 2010 #1
    After many many many....many posts, salary comparisons, opinions,descriptions, and different type of jobs I have read in regards to both degree programs, I still cannot choose between computer engineering and computer science(both been accepted to Uwaterloo).

    A little about myself:
    I am a person who enjoys math and science and computers,of course. I have relatively high marks in the area of Math and Computer Science, and the Computer Technology course.
    My Physics, Chemistry and English marks are in the mid 80's. I am a student who does homework and studies from 6pm-10pm on my easy semester and 6pm-11pm and even 5pm-11pm on a hard semester(I get home from school at around 4:30 pm.In essence, I am a hardworker. One of the best things that can influence me is money. Yet, I cannot find a big difference between computer science and computer engineering degree salaries. In my extra curriculars, I enjoy playing video games, and fascinated by the design of GUIS and websites that is associated with these said games. I also partake in the provincial wide DWITE programming competition since Grade 11 year. With this in mind, which degree could potentially suit me?
  2. jcsd
  3. May 25, 2010 #2
    Here is a nice article giving some information on the differences between computer science and computer engineering

    http://compsci.ca/blog/6-degrees-of-computer-science/" [Broken]

    So you should make your decision based on which particular field interests you the most.
    Last edited by a moderator: May 4, 2017
  4. May 25, 2010 #3
    I am quite familiar with that particular article. The article is not only informative but concise. However, I found the article to still have left me at a standstill in my choice between computer engineering and computer science. I appreciate the help:D
  5. May 26, 2010 #4
    Sounds like you're more of a programmer than an EE guy. Remember, compE is about half EE, so are you into circuit design, digital logic, E&M, and all that jazz?
  6. May 12, 2011 #5
    I have an EE degree with a focus on Computer Design, which is essentially very similar to a computer engineering degree... As I didn't graduate with a CS degree, I can't speak with 100% certainty of what they did, but I doubt they had the grasp of the software-to-hardware interface that EE folks have. I personally would recommend computer engineering, b/c it seems like you could more than likely fill a lot of CS positions with a computer engineering degree. At my employer (a large aerospace company), engineers are "higher" (both in pay and other benefits) than someone with a CS degree... You say you're motivated by money, and I am inclined to say engineering is a "higher" degree, but I'm biased, and I know plenty of CS majors who make similar salaries to what I make... I also know a coworker who majored in finance that makes about the same as I do... just throwing that out there...

    Here's a question... have you ever used a soldering iron? Do you know what a resistor is? I'm not implying you cant do well in a computer engineering (or EE) field if you haven't, just wondering, b/c as story645 said before me, from your post it does sound like you may be more of a programmer than EE, and like he/she said, compE is half EE... you learn HOW a bit is stored in memory and HOW a processor performs operations... I am probably an exception, but ask about soldering b/c I was soldering and building circuits in middle school and high school, radio shack was my favorite store... Your hobbies do seem more like programming, where my biggest hobby was building computer systems in my the cars I had in HS and College, with a 10.4" touchscreen in the dash to play mp3s (this was back in the mid/late 90s when the only way to play mp3s was on a computer, and it was back when installing a computer and large touchscreen in your car got you in magazines rather than just being the "norm" as it has become now).

    you sound dedicated to schooling, so whatever you choose you will probably do well... Good luck!!!

    EDIT: Just noticed the age of this post... Oops ;) You've probably already decided by now!!
  7. May 15, 2011 #6
    lol very nice
    I am admitted to the same school and kinda facing the same problem.
    i like web, gui stuff but also wanna know how computer truly works.
  8. May 17, 2011 #7
    hallowon: Take CS if you love programming. You're gonna have one hell of a time!
    mp3car: They do teach how a bit is stored in a memory and how processors work to a CS major. That's why they have courses like Digital Logic Design -> Computer Architecture -> Computer Organization and Assembly Language. But of-course if someone's more into hardware than he should prolly chose CE.
  9. May 17, 2011 #8
    Go for CS, and take some courses on computer engineering!
  10. May 17, 2011 #9


    User Avatar
    Science Advisor

    That article was a good read.

    I know this is probably over-simplified, but the best advice I can give you is to look at the OSI model (for networks). That model lists different layers from the bare bones hardware level, all the way up to the individual application network protocol layer.

    In a sense you'll get an idea of the differences between computer science, computer engineering and so on. The lower levels are dealing more with physics, material science, and electrical engineering in comparison to the application network protocol layer where software design dictates what happens here.

    You could probably get exposure to each area of the OSI by doing a double degree or getting deep work experience, but nowadays the spectrum of knowledge for each "layer" is quite large and diverse and therefore its kind of hard to become a specialist in "every layer".

    Use the OSI analogy and apply it different areas (other than networking). For example computer scientists will no doubt recognize how logical gates are used to implement arithmetic, memory storage and so on, but probably (maybe not in MIT though) won't have a clue how they really work. So you pick a domain and depending how deep you will go you'll take some things for granted and build on top of that knowledge.

    If you become a programmer you will probably get used to the fact that you don't know everything about what you're using (think software libraries), but you will understand enough about "how they kind of work" at a high level and what they are used for.

    As an example lets say you're doing numerical calculations and you use a math library. You may not have enough knowledge of numerical calculus, but you know enough about numerical calculus such that you give it a few arrays and it spits out a result that you need. That's pretty much what I mean in that regard: you may not have deep enough knowledge required to implement the functionality yourself, but given an implementation, you know enough of what it does and how to use it.

    There's no reason why you can't in depth knowledge about something, but in the world of nowadays complex projects, heaps need multiple well design professional quality libraries to work (think of modern games, graphical programs like 3DSMAX or AutoCAD, and complex simulation platforms), and having in depth knowledge across the whole domain is a pretty big call even for the most dedicated individual.
  11. May 17, 2011 #10
    thanks very much for the inputs, probly go with cs.
  12. Jul 21, 2011 #11
    Based on what you have said, I think you would be best suited to a Computer Science degree. Computer Science is a pretty broad field, which means that once you graduate, you can gauge the market for the most lucrative industry/profession, and apply your skills there. For someone interested in programming, getting a http://www.cc-sd.edu/information-technology/bachelors/computer-science-programming-emphasis" [Broken] with programming emphasis opens avenues to careers such as system developer, project/program manager, analyst, software architect, technician, etc.
    Last edited by a moderator: May 5, 2017
  13. Jul 21, 2011 #12
    I really don't think it makes that much of a difference. One thing is that there are so many different types of computer related degrees and the terminology is different enough from school to school that most employers don't care about the details of your degree name.

    That can work both for and against you. In a typical technical interview, you will be given coding problems, and if you bomb those, it doesn't matter what degree you have.

    If your goal is maximum pay for minimum work, do not go into science or engineering.

    Pretty much both. Or physics, or math, or mechanical engineering, or biomedical
    engineering..... Also, you might consider being a technical writer or a commercial artist or go into project management.

    One thing about computer related things is that most of what you learn isn't in the classroom.
  14. Jul 21, 2011 #13
    This might be a Canada thing, but here in the states the article is quite misleading.
    Last edited by a moderator: May 5, 2017
  15. Jul 21, 2011 #14
    One consequence of this is that you will always be learning new stuff. The way this happens is that you use a library. It turns out to be too slow by a factor of 10x. At this point you start going deep to figure out why, and before you know it, you are talking about L1 caches and memory layouts.

    One way I think about it is that your undergraduate degree should give you "basic literacy" skills. If you vaguely know something about numerical algorithms, and something weird happens, then you can work until you figure out what is going on. If you take someone with zero computer experience, they aren't going to know where to start.

    The other thing to realize is that most of what you learn in college as far as how computers work will be obsolete in ten years.

    And then the management challenges in figuring out how to organize a team of thousand programmers are pretty amazing, and then you have test coordinators, documentation writers, commercial artists, sales and marketing people, technical support.

    The other good thing about computer jobs is that they are "toilet fixing" jobs. One problem with physics is that you don't need that many physicists. If you have one Stephen Hawking or Albert Einstein, they do their genius thing, and we are done. Computer jobs aren't like that. They are more like fixing toilets. It doesn't matter how brilliant a plumber you are, you can only fix one toilet at a time, which is why there ends up being a lot of jobs for plumbers.

    This also means that you don't have to be hyperparanoid about what degree to get. You have a broken toilet, all of the other plumbers are busy, you might not be an expert, but here is a mop and figure out what to do.
  16. Jul 22, 2011 #15
    I can't believe that when I find this thread through Google someone has made new response. I actually need to decide between CpE and CS, since I am a raising Junior.

    I used to think that CpE will give you the a very good overview of how digital system operate, and it was the reason that put me into engineering (beside thinking that "engineering" sounds more prestige than "science".)

    I have completed all the necessary engineering core courses (all math requirements, basic EE stuff).

    I do like enjoy learning new things - who doesn't? I want to learn how to design the digital circuitry, knowing more about the hardware, even though I see myself lending toward the software side as a career. But embedded system is pretty interesting and in high demand. I do want a strong background in CS (theoretical computer science, numerical issues, database, they are not covered in the CpE).

    But college is not high school - I can't just take classes for fun because most of them have pre-reqs.
  17. Jul 23, 2011 #16
    I think the acm curricula recommendations documents provide a good introduction to the various bodies of knowledge, professional characteristics and, of course, typical curricula of all computing disciplines. Anyone who is interested in computing should give them a look:


    I'd advise anyone who has a choice to go to computer engineering however, because you learn a fairly lot of computer science (at least enough to figure out anything else if need arises) plus some analog and digital electronics, as well as physics. It is a more well rounded degree and opens many more doors in the industry and research. It also depends on:

    What you want to do in life But how one can know that in his late teens/early twenties is beyond me. So I'd still go for the more versatile/comprehensive degree, whatever I THOUGHT I wanted to do in life. Besides, the extra hardware knowledge helps in computer science.

    The school you go to Which for me is the most important. Unfortunately it seems that the most prestige a school has, the higher the chances you get the better jobs/research after graduation, no matter the educational quality of the school. Its natural, in a way, since an employer can't know what has been done in class and its easier and quicker for one to trust the reputation of the school. Another aspect is that "Computer Science" and "Computer Engineering" have different meanings in different schools. One should check the curriculum of the school one wants to attend to make sure they teach the subjects they want.

    Sources: My professors, being a final year undergraduate in Computer and Telecom Engineering, websites like the one I linked above. I researched the matter a lot myself some years earlier.
    Last edited: Jul 23, 2011
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Similar Discussions: Computer Engineering Vs Computer Science