Computer engineering vs. computer science

ETA: Googling “college confidential computer engineering vs computer science” produces multiple hits, so please disregard my message. I will read those threads.

My son is thinking of applying to programs in computer engineering or computer science. He has done a lot of programming and some robotics. What are the pros and cons of the two majors? A computer engineering major will take a number of CS classes, and it may be easier for a computer or electrical engineer to move into a developer position than the reverse. So maybe flexibility points towards computer engineering?

Look up the 4 year curriculum for the schools you are interested in. At some schools there can be a big difference in courses which could sway your son in one direction or the other.

The oversimplified version I hear a lot (and my kid is a chem e so take this with a grain of salt) is the CS is more for students who want to program/code, and ECE is more for students who want to work with the electronics/hardware. That said, both have great job outcomes and opportunities so I really think the decision should be based on your student’s strengths and interests.

Many of the big flagships are set up with first year engineering programs with a competitive transition to major so something additional to consider. My D is at Purdue. The ECE majors in the college of engineering have the same first year engineering curriculum with all the other engineering disciplines. They’ll take a CS class as their elective but otherwise they will be in the same engineering design classes, physics, calc, comm, etc… They also go through the transition to major process at the end of the first year which can be very competitive, especially for ECE. There are also more physics and math requirements for ECE in the college of engineering than CS in the College of Science. The CS majors in CoS are directly admitted and don’t have to worry about transitioning to their major. That said, it’s more difficult to get accepted to CoS than CoE right now at Purdue.

In the world of modern technologies, often it isn’t easy to delineate some closely related fields. They overlap to some, sometimes significant, degree, with their own emphases. As @momofsenior1 has pointed out, a computer engineering degree focuses more on the hardware engineering aspects of computer systems, networks, etc. A CS degree, on the other hand, could be much more than software development/engineering (to include such subfields as artificial intelligence, quantum computation, etc.), depending on the college.

At the college I went to, the Computer Engineering major was essentially almost identical to an electrical engineering (with a focus on hardware) and Computer Science double major, and many Computer Engineering majors there even double major in computer science because there is such a big overlap between the two major curriculums that it is easy to do so. Also, at the career fairs I went to, software internships seemed to accept both computer engineering and computer science majors, and I know someone who is a computer engineering major that now works at a software job. Therefore, at least at the college I went to, computer engineering is a pretty flexible major that prepares students for both software and hardware positions.

However, like @momofsenior1 said, you should really research the 4 year curriculums of the schools your son is interested in because at other colleges the computer engineering major might teach more hardware and not that much software. If your son is interested in doing a career in robotics though, I would definitely recommend a computer engineering major with a good balance of CS and ECE classes over a CS major because it will give him more flexibility of what he can do in robotics.

what’s the difference between a software engineer and a computer scientist? or are they the same thing?

@moonlitpoems, there’s a lot of overlap, with many people with CS degrees doing SE jobs. In general, and others who know more should expand, SEs organize and use existing code to actuate what they want to achieve, be it UX, back end, etc. CSs are more theoretical, doing things like using algorithms to reduce throughput speed or even developing new languages. That’s my rudimentary understanding. Again, there is quite a bit of overlap.

It’s important to look at the curriculum. This is the best description I’ve seen (@eyemgh - how 'bout the Cal Poly link? :)).

http://catalog.calpoly.edu/collegesandprograms/collegeofengineering/computersciencesoftwareengineering/#undergraduatetext

IMO Computer Science is a bit broader than Software Engineering. With Software Engineering, you’ll get some classes on the software development life cycle. Computer Engineering gives you the EE side combined with the CS side. The nice thing about Computer Engineering is the flexibility to go on the hardware or software side. It’s the toughest of the 3. Employers looking for software engineers will be fine with any of the 3.

If you’re confident you’re not interested in hardware or don’t like it, then stick with Computer Science or Software Engineering. Hope that helps.

@ArcDad, I try not to always beat the drum of my son’s school. :wink: That’s a great link though!