What's the difference between a major in Computer Science and Computer Engineering?

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

khtm

Platinum Member
Mar 5, 2001
2,089
0
0
My god so many of you are uninformed.


en·gi·neer·ing (nj-nîrng)
n.

1.
a) The application of scientific and mathematical principles to practical ends such as the design, manufacture, and operation of efficient and economical structures, machines, processes, and systems.
b) The profession of or the work performed by an engineer.


This topic has been hashed and rehashed many times before, but...

Computer Science:
Common courses while taking degree: Programming courses (Java, C++, whatever your university deems appropriate), some math, statistics, usually one english course.
Common work after degree: Programming, coding, whatever you want to call it

Computer Engineering:
Common courses while taking degree: Programming courses, A LOT of math, A LOT of physics, chemisty, A LOT of electrical engineering courses (circuit design, analog / digital circuits, linear systems), Software Engineering courses, properties of materials, english, statistics, technical writing, etc.
Common work after degree: Programming, firmware, software engineering, electrical engineering (semiconductor industry, wireless communications, etc., etc.).

Here's where the differences between Canada and the US comes in. In Canada, all universities which offer engineering degrees MUST be accredited every 4 years by the Canadian Engineering Accreditation Board (which decides what the minimal level of engineering education should be). Also, you're not even an engineer and it is illegal to call yourself and engineer UNTIL you receive a P.Eng (Professional Engineer) standing, which is obtained after 4 years of full-time work in an engineering position and by applying.
In the US, universities/colleges offering engineering degrees don't need to be accredited. And everyone and their uncle can call themselves an engineer (and do). This is why the difference between Computer Science, Software Engineering, and Computer Engineering is so vague.

Basically, Computer Engineering = design, Computer Science = coding.



 

hans007

Lifer
Feb 1, 2000
20,212
18
81
software engineers, are just software guys. engineering is more just a general term for people who build stuff. software engineers do design. they design software. coding isnt something a monkey could do , it takes a lot of brain power to come up with that. from the CE classes i've taken, most designs can be made horribly inefficiently by just using brute force type techniques, the real idea is to make your design not waste too many cycles.

CE is more EE stuff with logic gate design stuff like that, circuit analysis , oscilliscopes the whole deal. CS is software theory, algorithms, data structures that type of stuff.

totally different fields outside of some parts that cross over like operating systems in the kernel and the hardware interact pretty close, so at ucla its required that CS and CSE/EECE both take the OS class (we dont have cs , we have ee with a ce specialty and computer science with CE speciality .
 

CanOWorms

Lifer
Jul 3, 2001
12,404
2
0


<< Here's where the differences between Canada and the US comes in. In Canada, all universities which offer engineering degrees MUST be accredited every 4 years by the Canadian Engineering Accreditation Board (which decides what the minimal level of engineering education should be). Also, you're not even an engineer and it is illegal to call yourself and engineer UNTIL you receive a P.Eng (Professional Engineer) standing, which is obtained after 4 years of full-time work in an engineering position and by applying.
In the US, universities/colleges offering engineering degrees don't need to be accredited. And everyone and their uncle can call themselves an engineer (and do). This is why the difference between Computer Science, Software Engineering, and Computer Engineering is so vague.

Basically, Computer Engineering = design, Computer Science = coding.
>>



Well, accreditation may not be required, but most people wouldn't got to an engineering school that isn't accredited.
 

CSoup

Senior member
Jan 9, 2002
565
0
0


<< im a senior in hs now, in the fall im going to ohio state university and majoring in computer science. i dont really know too much about programming now, im starting to learn vb. do i have to have alot or any programming skills when i go there, or do they assume everyone knows nothing >>



They assume you know nothing. You will take about 2 intro programming courses where you learn a language like java and the basics of data structures. After that you might not have to do much programming again. I was an EE, but like others have said there is some overlap, so I took the CS operating systems class. Not a single line of code was written for the class. I know of CS people who graduated from my school with only 3 classes where they had to code.
 

CSoup

Senior member
Jan 9, 2002
565
0
0
Anyways my suggestion to all y'all who can't decide is to go to a school where CS is in the engineering school and have to satisfy the same core reqs(physics, chem, math, etc.). Then you have about a year to decide while you take classes in both disciplines without losing any credits. It takes about 3-4 semesters to finish the engineering core since you have at least 3 sems of physics and at least 3 sems of math that have to be taken in sequence.
 

brjames

Member
Apr 25, 2001
168
0
0
At my school (Cornell U.), Computer Science is a major in both the College of Arts and Sciences and the College of Engineering. The EE program changed its name a couple of years ago to Electrical and Computer Engineering, so that shows you what Computer engineering is related to. In general the CS department does software and the ECE department does hardware, but thats only a generalization. Both majors are required to take a course where they design a ca. 1985 CPU (tottally awesome course btw). CS doesnt do just algorithms and general programming, a lot of what they do is very related to hardware, such as OS's, compilers, etc. Also the ECE department teaches courses about TCP/IP, so the overlap is significant. If you want to do computer engineering expect to do microelectronics, VLSI design, and computer architecture and expect to use as your programming languages Matlab, verilog, VHDL, and a whole bunch of design packages. If you want to do computer science expect to do programming, algorithms, scientific calculations, and computer architecture anc expect to use Java, C, MAtlab, assembly, and maybe a couple of other wierd languages.
 

JayHu

Senior member
Mar 19, 2001
412
0
0
at University of Waterloo the CS degree is part of the Math Faculty. So you have to fulfilled the usual math requirements, algebra, calculus, stats and combinatorics. as well as the cs degree requirements.
right now in my first second year CS course we are learning.. compiler theory, and ive heard it only gets worse. so basically from what i can see, CS is all about coding theory, algorithms, and we do touch on hardware design, but that is more elective based.
and CE here seems to be more specifically geared towards algorithms, and applying them to problems. i have never taken a CE class, so i could not tell you, but i do know people in CE here have to take the usual Engineering requirements, like chemistry, physics, etc.
 

CSoup

Senior member
Jan 9, 2002
565
0
0


<< At my school (Cornell U.), Computer Science is a major in both the College of Arts and Sciences and the College of Engineering. The EE program changed its name a couple of years ago to Electrical and Computer Engineering, so that shows you what Computer engineering is related to. In general the CS department does software and the ECE department does hardware, but thats only a generalization. Both majors are required to take a course where they design a ca. 1985 CPU (tottally awesome course btw). CS doesnt do just algorithms and general programming, a lot of what they do is very related to hardware, such as OS's, compilers, etc. Also the ECE department teaches courses about TCP/IP, so the overlap is significant. If you want to do computer engineering expect to do microelectronics, VLSI design, and computer architecture and expect to use as your programming languages Matlab, verilog, VHDL, and a whole bunch of design packages. If you want to do computer science expect to do programming, algorithms, scientific calculations, and computer architecture anc expect to use Java, C, MAtlab, assembly, and maybe a couple of other wierd languages. >>



Yes, I'm surprised that Cornell keeps such an amount of overlap considering that CS is also part of the Engineering College. The have combined CS/ECE314 now, but when I was an undergrad there, the EE department had their own version called EE308. Surprisingly, the CS course was a much better course (mostly logic level design of a 5 stage pipelined CPU) while the EE course was mostly assembly programming. Now that 314 is also an ECE course, they need to reform ECE475 (the comp arch class) because the first half of the course has already been covered in 314. Also, there were EE courses in neural nets, computer vision, and networking when CS had similar courses also. It is true that the courses were different, but there are similarities. Interesting thing is that Computer Architecture has always been in the EE department at Cornell even before the name change. At many other schools, computer architecture is considered a CS thing. Hennessy and Patterson are both CS professors (at Stanford and Berkeley).