Since the tender age of four, I have always been in awe with technology, especially computers. They have been an integral part of my life. I am positive I was not alone when I said, “I would like to do something with computers when I grow up.” And through searching and various single-day research expeditions into the internet, I’m sure we’ve all come up with a single, ominous answer: Computer Science. However, me being the sh** disturber that I am, I will attempt to turn your beliefs upside-down. Try to convert the heathens, so to speak, to a little discipline I like to call Computer Engineering.
Computer engineering is defined as the discipline that embodies the science and technology of design, construction, implementation, and maintenance of software and hardware components of modern computing systems and computer-controlled equipment. Computer engineering has traditionally been viewed as a combination of both computer science (CS) and electrical engineering (EE). It has evolved over the past three decades as a separate, although intimately related, discipline. Computer engineering is solidly grounded in the theories and principles of computing, mathematics, science, and engineering and it applies these theories and principles to solve technical problems through the design of computing hardware, software, networks, and processes. This makes Computer Engineers particularly versatile upon graduation.
With the ubiquity of computers and computer-based systems in the world today, computer engineers must be versatile in the knowledge drawn from standard topics in computer science and electrical engineering as well as the foundations in mathematics and sciences. Because of the rapid pace of change in the computing field, computer engineers must be life-long learners to maintain their knowledge and skills within their chosen discipline. The education for Computer Engineers can be broken up into:
Just from this information alone, it is quite evident that one would receive quite a well-balanced education in all things computer and technology. Which is the goal of Computer Engineering: to create individuals able to stay in sync with recent technological developments pertaining to their field. Of course, a Computer Engineering degree program is completed at an accredited university. However, these programs vary, and I would suggest checking out your university of choice to get the specifics on the Computer Engineering program besides the core curriculum(above). If you would like to register as a Professional Engineer(P.Eng), you should consult your regional regulations, though being a Professional Engineer is not required to work, and in my opinion, pertains more to the other engineering disciplines.
First off, a Computer Engineering degree is compatible to a Computer Science degree. So, you can get any sort of programming or developer or software engineering job that a Computer Scientist could get. Now, since that’s all cleared up, we’ll move into the jobs that are more exclusive to Computer Engineers. These generally involve hardware or hardware-software integration. This can be from making various components for personal accessories (such as that pretty iPhone) to programming firmware or both together. If you look up to our core-curriculum list above, you’ll see what a Computer Engineer is taught, and most of the objectives pertain to a job. Basically, anything that involves applying computer systems to solve a problem is a job for a Computer Engineer. Whether it be working for Google on that next hit web application or at Intel working on that new microprocessor, Computer Engineers are there.
By now, you have an idea of what Computer Engineering is, hopefully. Since you are viewing this Computer Science blog, I do assume you know what Computer Science is. Without further a due, the comparison between Computer Science and Computer Engineering shall begin.
Computer Science has a pure focus on the theory and application of computation. It is generally focused at the more abstract ideas, and focuses on how computation should work and so on.
Computer Engineering uses aspects of Computer Science and Electrical Engineering to solve problems. This is the more “practical” option. It focuses more on the concrete ideas, such as how things actually work.
Basically, if you are more interested in theory and the application of that theory, Computer Science is your choice. If you are more interested in building things and applying everything you learn into a practical setting, Computer Engineering is your choice.
If you wish to read more on the differences, I recommend this discussion.
It would have been quite impossible to include everything on this subject, even just my own opinions and such, on a blog post. However, I feel that I have covered some basic points to spark interest in some people. But, all of you have the opportunity to read up on Computer Engineering and compare it to Computer Science, if you so desire (see the bottom of the post for the main resources I used).
———
Time for a bit about myself. My name is Brandon Skinner, and I am from Newfoundland, Canada. I have been programming since the tender age of 10, and I have branched off in ways I never thought possible. Personally, I will go to university for Computer Engineering. However, I am interested in all aspects of Functional Programming, as well as many AI topics. I do feel that Computer Engineers don’t get the respect and admiration they deserve. Their skills allow them to use their understanding of the underlying system and of algorithms and such to create some crazily efficient code. I know this for a fact, as I did work in the Assembly language and low-level C for quite some time, and the things you can do and control are amazing. I can only wonder what a professional could manage.
———
References made to IEEE Computer Society:
compare Computer Engineering with related fields in 6 Degrees of Computer Science.
Haha I was reading through this and was surprised by some of the wording. I thought to myself “This doesn’t sound like Tony…” (I didn’t read who wrote it at the title).
Great article. I’d like to add that Engineering focuses a lot more on Maths and Sciences and that’s one of the reasons why I didn’t go into it. I like the Comp Sci because you get to work with software and thats what most interests me.
Now I really enjoy hardware and take stuff apart all of the time, I’d probably be in Computer Engineering if it wasn’t for the math and science.
Reply to comment
Heh Adam – well I’m glad that enough of my persona makes it into my writing, that you can tell if I wrote something (or rather did not). Since I can’t be familiar with all of the computer science related fields, I’m getting a few friends to contribute a bit of their knowledge to the blog. I think Brandon has done a fantastic job disecting Computer Engineering.
Reply to comment
Computer Engineering is also a great degree for hardware verification and validation, since you usually need a mix of understand hardware with the capability of created software, scripting, etc.
Reply to comment
right on engtech! I’m thinking all of those video card benchmark type of software. Or any other diagnostic applications.
I would imagine that FPGAs are also very Computer Engineer~ish.
Reply to comment
Computer Engineering cannot be dissected in a single blog post. Its too broad a field, and encompasses all of Computer Science, Electrical Engineering, and Software Engineering. The two resources I used did, however, have the core program of Computer Engineering dissected. As such, it is good for people to read, and to note that there are ones for CS and SE too.
Computer Engineering is the one of the engineering discipline where Sciences and Mathematics aren’t too prevalent in the degree. In fact, a Computer Science degree contains a lot more Mathematics than the Computer Engineering degree. I know if I were to do CS, I’d have to take 2 Chem, 2 Physics, 2 Math, 2 CS, and 2 English for the first year. Followed by many other Math and Mathematics-based CS courses. I’m not saying Computer Engineering doesn’t have Math and Science courses that are core to the Engineering program as a whole(And also to EE and CE), but I am saying that it isn’t any worse than a CS degree.
Computer Engineers are indeed skilled at low-level programming. Its quite a large part of what they are taught. It seems to me that what is looked over is that quite a lot of Computer Engineers end up working in high-level languages. And from a stories and what I have read, they excel at this as well. This is due to their algorithmic training, as well as their low-level affinity.
Also, if you want to read more from me, come to Gnuf Blog(http://theta.xmgfree.com/blog/)
Reply to comment
nice post, was waiting for this, seems like you researched into this information. It all depends on what is appealing to the person, so if CE is more appealing to you, then thats probably the way to go
Reply to comment
I wanted to stop and say hello from your friendly “explosives specialist” – or at least that’s what the career chooser says for me. I am not so sure although I have to admit I do have a little degree in engineering tech so maybe some of those suggestions weren’t so far off.
Reply to comment
heh Z, while your career choices did seem to centre around the theme of Engineering, I just thought that “explosives specialist” was a really cool specialty
Reply to comment
Since i am also an engineering student,after reading your article came to know difference btw c.science and c.engg. but i was wondering then why most of the universities write c.science instead of c.engg. in their course programme.
Reply to comment
Gaurav, your question is not very clear. I would imagine that Computer Science is a more common program than Computer Engineering is, so more Universities would offer the former.
Reply to comment
Actually… Computer Engineering sounds like a really crappy program.
I mean, face it, when you think engineering, you think building. When you think computer, you think PC. You combine them together, and you get building PC. That sounds fairly crappy, and much like some back-ass Diploma program, and not worth the gobs of cash. Not to mention Computer Engineering gets none of the recognition it deserves… If it weren’t for Computer Engineers like Steve Wozniak, we’d be working with PGP-2007 by now, and we definitely wouldn’t have the home computers and laptops we cherish today. If it weren’t for Computer Engineers, we wouldn’t have the programmers who inspire a team with their raw knowledge of all things computer.
However, when you’re faced with a decision between the crappy sounding Computer Engineering degree, and the highly-acclaimed and well documented Computer Science degree, you’d most likely choose the latter. Even though the degrees are compatible, and Computer Engineering is most likely what a lot of CS majors should have chosen.
Reply to comment
“Computer” != “Personal Computer”
The most common computers out there are in embedded devices, and it takes a lot of creativity to not just put a computer together, but to work within constraints not imposed by a typical personal computer. Imagine someone designing a computer system for a car…
“You have to make it do X, Y, and Z. Oh, and it has to do it smoothly even if the driver hits a pothole and bottoms the car out. Oh, and our dashboard is going to be curvy, so you can’t use rectangular components. Oh, and you can’t draw more than 10W of power.”
You not only need knowledge of how far you can push electronic components, but detailed knowledge of another field entirely. This demands the kind of person who can keep a lot of information in their head at once and understand it on multiple levels simultaneously.
Reply to comment
For us, Computer Engineer first gets much higher salary in many places. Most of the time also, Computer Engineer and Computer science work on similar tasks, perhaps with one of them above the other in knowledge. In general, we do lack clear distinction in work nature. No hardware manufacturing, so if you want to go to the extreme, you will work in network or server maintenance. But usually you cant go beyond that.
For me, I think being computer engineer have given me great chance to learn things in college. Things that will serve me as software engineer, I didn’t really get much of knowledge on hardware and electrical part. Sometimes because there just wasn’t any, sometimes because it’s just not my game. And ofcourse I do get higher salary than computer science people in general.
Reply to comment
It really depends on what the CE wants to pursue. CE is about applying computer systems to a problem, which is both a hardware and software side. This means that you will find quite a few CEs working at software as well as hardware. Either leaning one way or the other, or focusing on both. It’s a really broad field that encompasses a lot.
Reply to comment
Besides, salary is usually quite generalized. I’m sure that there are some Computer Scientists that earn more than some Computer Engineers. A degree alone will not guarantee the skills required to make it to the top income bracket of the field.
Reply to comment
Except for the fact that Engineers generally have higher starting salaries.
http://www.bls.gov/oco/ocos027.htm#earnings
http://money.cnn.com/2005/04/15/pf/college/starting_salaries/
http://www.nsf.gov/statistics/infbrief/nsf06303/
Reply to comment
Computer Engineering – $51,496
Computer Science – $51,292
The 0.4% difference is hardly significant. And there are co-op students making more than that in between school terms. My point is that if you choose either of the programs for the money, prepare to be disappointed.
Reply to comment
In our cases in many locations, there is more than $600 difference just because you hold the computer engineering degree.
Reply to comment
Of course you look at one that has the least difference, even though the other two are much more significant, and from the same year.
Its not because of the programs at all that there is a salary difference. Its just that the title of Engineer holds some weight.
Reply to comment
since i’m specialized in hacking softwarez, accounts, business deals, and other computer ,manage other computer outside the country i must say that computer engineering is superb not only superb but much more than that!!! computer engineering is the best and the most intellectual thing on earth!!!! (x_x)!!!
Reply to comment