Computer Engineering Vs Computer Science

In summary, the individual is trying to decide between a degree in computer engineering or computer science. They are a hardworking student who excels in math, computer science, and computer technology. They are also interested in video games and participate in programming competitions. They are motivated by money but cannot find a significant difference in salary between the two degrees. The conversation discusses the differences between the two degrees and the individual's interests and skills in each area. The conversation also mentions the possibility of pursuing a double degree or gaining work experience in both areas. Ultimately, the individual is advised to use the OSI model as an analogy to understand the differences between computer engineering and computer science.
  • #1
hallowon
37
0
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?
 
Physics news on Phys.org
  • #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/"

So you should make your decision based on which particular field interests you the most.
 
Last edited by a moderator:
  • #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
 
  • #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?
 
  • #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 can't 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!
 
  • #6
mp3car said:
EDIT: Just noticed the age of this post... Oops ;) You've probably already decided by now!
lol very nice
I am admitted to the same school and kinda facing the same problem.
i like web, gui stuff but also want to know how computer truly works.
 
  • #7
hallowon: Take CS if you love programming. You're going to 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.
 
  • #8
Go for CS, and take some courses on computer engineering!
 
  • #9
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 let's 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.
 
  • #10
thanks very much for the inputs, probly go with cs.
 
  • #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" with programming emphasis opens avenues to careers such as system developer, project/program manager, analyst, software architect, technician, etc.
 
Last edited by a moderator:
  • #12
hallowon said:
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).

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.

One of the best things that can influence me is money.

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

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?

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.
 
  • #13
anubis01 said:
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/"

This might be a Canada thing, but here in the states the article is quite misleading.
 
Last edited by a moderator:
  • #14
chiro said:
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.

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.

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.

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.
 
  • #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.

One way I think about it is that your undergraduate degree should give you "basic literacy" skills.
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.
 
  • #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:

http://www.acm.org/education/curricula-recommendations

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:

What is the difference between computer engineering and computer science?

Computer engineering is a discipline that combines principles of electrical engineering and computer science to design and develop computer systems. It focuses on the hardware and physical components of computers. On the other hand, computer science is a branch of science that deals with the theory and programming of computers. It focuses on the software and coding aspects of computers.

Which field has better job prospects: computer engineering or computer science?

Both computer engineering and computer science have excellent job prospects. It ultimately depends on your interests and skills. If you are more interested in the hardware and physical components of computers, computer engineering may be a better fit for you. If you enjoy coding and developing software, computer science may be a better choice.

Can computer engineers and computer scientists work in the same job roles?

Yes, computer engineers and computer scientists can work in many of the same job roles. However, their specific tasks and responsibilities may differ. For example, a computer engineer may focus more on designing and developing hardware systems, while a computer scientist may focus on programming and software development.

Which field has a higher salary: computer engineering or computer science?

The salaries for computer engineering and computer science jobs can vary depending on factors such as location, industry, and experience. Generally, computer engineering tends to have a higher salary due to the demand for professionals with expertise in hardware design and development. However, both fields have high earning potential.

What skills are needed for a career in computer engineering or computer science?

Some essential skills for a career in computer engineering include knowledge of electrical engineering principles, proficiency in programming languages, and problem-solving abilities. For a career in computer science, critical thinking skills, strong math and logic skills, and proficiency in coding languages are crucial. Additionally, both fields require continuous learning and staying up-to-date with new technologies and advancements.

Similar threads

  • STEM Academic Advising
Replies
8
Views
1K
  • STEM Academic Advising
Replies
23
Views
3K
  • STEM Academic Advising
Replies
13
Views
3K
  • STEM Academic Advising
Replies
3
Views
403
  • STEM Academic Advising
Replies
24
Views
2K
  • STEM Academic Advising
Replies
6
Views
1K
  • STEM Academic Advising
Replies
4
Views
1K
  • STEM Academic Advising
Replies
9
Views
3K
Replies
1
Views
787
Replies
16
Views
1K
Back
Top