Computer vs Electrical Engineering for the Science Enthusiast

<p>I've been struggling with which to declare in my applications for a while now. I have gone through MIT's OCW for programming, passed and was certified for Coursera's Computational Neuroscience Course, and I'm taking the top level AP Calculus/Physics classes at my school.</p>

<p>I'm applying to Cal Poly SLO, UC Berkeley, Davis, Santa Barbara, and, for the heck of it, Stanford.</p>

<p>My question is, which degree would be best for somebody who loves science and is completely fascinated by robotics? Specifically the robotics part; I've heard that Computer Engineering is more for robotics but a lot of people say that since EE delves more into the physics side of science it'd be better for robotics.</p>

<p>Robotics needs work from computer scientists, computer engineers, electrical engineers, and mechanical engineers.</p>

<p>I understand that; but the emphasis in EE and CompE is described differently on different (college) sites. EE seems to have an emphasis on power systems and (waves, I guess; anything dealing with waves/involving signals), and CompE is either described as a literal emphasis on computers or as an EE course reconciled with Computer Science…and it’s really hard to decide on the two based on these differences…</p>

<p>For most common mortal robotics projects where you’ll be using standard components (stepper motors, Raspberry Pi type boards, sensors, servos, and the like), the ‘glue’ is mostly software and integration work, which is more CE than EE in my view. The question is only whether CE includes standard classes (lab) that teach basic board /project building and troubleshooting skills, which I would think they all do (digital design etc). </p>

<p>Hardcore EE work may be more appropriate in things like the actual components (sensor design, controls design) but unless we’re talking Mars Lander type project work these are all standard components give or take so that suggests more CE than EE.</p>

<p>Either was better than CS doing robotics hardware (I did) with no logic design design class and barely knowing which end of the soldering iron to use. Worked pretty well all things considered :smiley: but I got lots of stares asking fundamental digital design questions (gee what’s an OpAmp) all while breezing thru the software components which the EE’s dreaded.</p>

<p>

Well, robotics is a complex field and has contributors from a variety of disciplines, but I would recommend EE - while CompE covers a lot of the needed skills, EE covers all of them, including the types of programming you will need for this kind of work.</p>

<p>

EE covers all engineering skills involving electricity or magnetism, including but not limited to power systems, communications, computers, remote sensing, and controls. The field is so wide that specialization is all but necessary even at the undergraduate level.</p>

<p>CompE is essentially a specialization of EE focusing on computer systems, combined with a bit of computer science. </p>

<p>The relationship between CompE and EE is similar to the relationship between Aerospace and Mechanical engineering - substantial overlap, sacrificing the breadth of the latter degree in return for more depth in a narrow focus area.</p>

<p>Thanks for all of your responses. Really of the two main schools I’m thinking of (Berkeley SLO) only SLO offers Computer Engineering. The EE program at SLO, unlike Berkeley, has practically no required programming courses, and implies that all the projects and whatnot will be physical/physics/hardware based, instead of software. So…there’s a huge curricular difference between the two, and CE seems ideal.
Except the first couple quarters/semesters of CE at SLO would be intro to CS/programming, which I kind of already know the basics of, so I’d be bored out of my mind, which I shouldn’t be…right? But at the same time, the projects at SLO’s CE program do kind of revolve around robotics, while the projects in the EE department revolve around (as turbo93 said) parts.
So…is it worth having a few easy, boring “why am I paying for this” classes to be in CE, or because of what my knowledge (which isn’t extensive, I’m just saying I know a fair bit) of programming is should I take EE?</p>

<p>I’ve heard that some schools are creating a robotics major to solve this problem. I’ve read an article in Times magazine a few weeks ago.Do some research.</p>

<p>Neither Cal Poly nor Berkeley (my main two) say anything about a robotics major; Berkeley has EECS, Cal Poly has both EE and CE majors.
UC Santa Cruz has a Robotics major, but honestly I’d rather go to SLO then UCSC</p>

<p>

EE is more versatile, and is largely shaped by the electives you take. That there are not many required programming courses is intentional - if you want a CompE-like EE degree, you take those electives. You will do a lot of software projects in your courses regardless - just because a course is not a CS course does not mean you will not be programming, it just means that the programming will be focused.</p>

<p>

Very, very few people honestly have ANY genuinely easy, boring “why am I paying for this” required classes, much less enough of them to be an issue - you will almost certainly find that there are things that you do not know, or that you need to do better. And if you really do already know the material, you may find that you can either skip many of the lectures and/or test out of the course entirely. So I would not consider this a problem.</p>

<p>So my choice, ideally (and for SLO), would be either an EE major with an emphasis on CE/CS electives, or a CE major with EE classes as electives, then?</p>

<p>More or less. You might want to look at it this way - either way, you are going to have a block of courses that you can pick for your specialty, so really what you need to decide is what other breadth courses you want to take. You are going to take robotics courses regardless, to the extent that they are available - beyond those, would you prefer to study the broad field of electrical engineering or the narrow field of computer engineering?</p>

<p>Well as far as study goes, EE. Though I have to say, the CompE projects seem infinitely more enjoyable at SLO then the EE projects; but versatility is pretty important. Thanks a ton CosmicFish, I guess I’ll start revising my declared majors.</p>

<p>Berkeley puts all of EE, CS, and computer engineering into its EECS major.</p>

<p>

. This is not necessarily true if you are working in a manufacturing environment meaning your producing a product then a CS will not usually be involved. Now there are instances where code maybe farmed out to a firm in which CS do some coding but EE and CompE usually are the Robotics Engineers. Keep this in mind when it comes to programing for EEs and CompEs your hardware dictates what software tools you use. it’s usually low-level HDL sort of languages. its nothing really that advanced mapping out I/O ,A/D conversion.</p>

<p>“a lot of people say that since EE delves more into the physics side of science it’d be better for robotics.”</p>

<p>Esteemed engineer who sits next to me would argue that robotics is mostly mechanical/structural engineering work with support from EE & CS.</p>

<p>Mathematician in me would argue that once a robot is built, it is all math that is needed to make it do anything useful - inverse kinematics, adaptive control, computer vision, speech recognition, artificial intelligence, blah, blah, blah.</p>

<p>IMHO, automation systems used in manufacturing lines are not robots. </p>

<p>On a lighter note: </p>

<p>“but I got lots of stares asking fundamental digital design questions (gee what’s an OpAmp)”</p>

<p>hmmm, I guess it is possible to build digital circuits using OpAmps.
(turbo, I know what you meant. :slight_smile: )</p>

<p>Computer Science, Computer Engineering and Electrical Engineering are all places on a spectrum (no pun intended, but I’m an EE) and all have a significant degree of overlap.</p>

<p>I would start in computer engineering and as you learn more and hone your interests, you’ll be able to veer in whatever direction you find most interesting.</p>

<p>

</p>

<p>I firmly disagree with this a “Structural Engineer” really. a subset of civil. electrical signals are very important in Robotics i don’t think a structual engineer could map out I/O designs, integrate analog sensors and digital senors together. </p>

<p>

This is also not true when buying parts for automation systems you will find that they use the same technology as robots and the schematics read the same. </p>

<p>

I dont know how useful or if i have ever seen a design in the digital world without OPAmps especially if anything analog is needed. What about noise?</p>

<p>

</p>

<p>IIRC it was 1986 or 1987, I was doing a class in microprocessor applications and had this idea to build a robot arm. The controlling board was an MC68HC11 that drove a bunch of OpAmps via discrete I/O lines to control higher voltage stuff (who needs stepper motors?). It was a kludge to end all kludges, but with enough software (FORTH :D) it kind of worked. I remember I literally took TTL-level voltage out of the HC11 I/O ports and ran it thru the OpAmps…</p>

<p>The hardware design was awful but I had this super-cool wirewrap gun and precut wirewrap wires from work, and it came together pretty quickly. After some more FORTH I actually developed verbs for everything like OPEN-CLAW, CLOSE-CLAW, ROTATE-LEFT(n), and so on. </p>

<p>And that’s what happens when you let CS people design hardware :D</p>

<p>Good old days! Robot Arm I worked on was from Cincinnati Milacron. It was long before 68HC11 came into being. By the way, I still have the dev kit for Motorola 68HC11!</p>

<p>My class had a few students (grad school @ Oakland University in the suburban Detroit area) who were working either for Cincinnati Milacron or Fanuc. They were polite enough to not sneer… We did some very cool projects, including a couple of vision projects, all in FORTH. The professor absolutely loved FORTH and knew it inside and out. </p>

<p>I spent about a decade writing software tools for microprocesors. Nobody can say they understand assembly language until they understand all 100+ addressing modes of some of the monster micros of the era :D. Even worked on a compiler with HC11 target. Nice micro.</p>

<p>To the rest of our anxious audience, there’s a big gray area between CS and EE. 30 years ago it was a bit strange to actually deal with such things, CS was CS, EE as EE, and that was it, today it is expected that they mix. So, hedge your bets accordingly.</p>