The use of the term vs. in the title of this document is misleading --- there is no competition between the degree programs. They simply represent different emphases in your course of study. The purposes of this document are the following:
The last point is perhaps the most important in that you need to understand that if you are uncertain, you can postpone your decision (with minor modifications) until you are well into the program of study within the department. At that (later) time you likely will have enough experience with the curriculum to make an informed decision.
In this document the following terms will be used:
The EE degree is the older and more established of the two programs. Since the advent of the computer and the microprocessor the field of digital electronics and computers has grown to become a major component of EE.
BYU has traditionally had a very strong digital electronics program within this department. Major recruiters of our students have been companies who specialize in the design and manufacture of digital components and systems (medical, computing, instrumentation).
For at least two decades the department curriculum has contained a digital or computer option. In 1987 the department's name was changed to the Department of Electrical and Computer Engineering to reflect the growing importance of the digital option.
In 1995 the department applied to the University and was given permission to institute a Computer Engineering degree program. The first students graduated during Sp/Su 1996 from that program.
The philosophy for the new program was to provide the flexibility for students to specialize more in digital systems and computer design than was possible if they were to adhere to the full EE curriculum requirements.
So, what is a computer engineer? In short, in computer engineering we strive to prepare students to work in the area of digital electronics and computing systems design and analysis. That said, an important feature of CpE graduates is their breadth. If you choose to major in CpE you will end up learning something about everything that goes into digital and computing systems from solid state physics to CMOS VLSI design to computer architecture to computer programming to operating systems to compiler theory to language theory. In short, the area between EE and CS is extremely broad - you will be trained to try to cover it all as well as parts of EE and CS. By training you will be well suited for system level tasks, having a good understanding of both the hardware and software components of computing systems.
The above discussion of philosophy leads to the first similarity between the two programs:
The specializations occur mostly (but not completely) in the upper division courses as shown in the following table.
For Illustrative Purposes only.
| Common Core | EE Specific | CpE Specific |
|---|---|---|
| ECEn 191 | ||
| CS 142, 235 | CS 236, 240 | |
| Math 112, 113 Math 343, 334 Stat 441 or ECEn 493R |
Math 214 | |
| Physics 121, 220 | Physics 281 | |
| Chem 105 or 111 | ||
| ECEn 124, 224 | ||
| ECEn 212 ECEn 313, 317 |
||
| English 312, 316 | ||
| ECEn 490 |
||
| ECEn 360, 361 | ECEn 362 | |
| Complete classes from at least 3 of the 4 areas |
3 of: ECEn 324 ECEn 425 ECEn 427 ECEn 451 |
|
| 20 ECEn 4xx credits | 6 CS credits 4 ECEn 4xx credits |
|
You generally may not have to decide which path to follow until your 4th semester. At that point you must decide whether or not to take Physics 281, Math 214, or ECEn 360.
So, what are some things you might use to make this decision? Following, in no particular order, are points you might take into account for your decision.
Any given person familiar with EE, CS, or CpE may take issue with the insights provided here. They may simply feel they are not representative of what that person has encountered in the work force. Remember, the line between EE and CpE is fuzzy at best. For example, the statement that the goal of the CpE degree program is to prepare students to design computing systems does not imply that having an EE degree rather than a CpE degree will preclude you from doing so. On the contrary. You may simply find it easier to fill out your study list with the courses you want to take, based on your career goals, if you choose one degree over the other.
Your choice of courses can have a dramatic impact on your career path. If you have taken no Computer Architecture don't expect to find employment designing the next generation CPUs for Hewlett Packard. Likewise, if you have taken no Control Theory, you won't be attractive to recruiters looking for that skill.
Numerous recruiters have mentioned that the course selection a student shows on a transcript is crucial. The label CpE or EE is insufficient to tell a recruiter what you may be qualified to do.
Plan your path carefully. Talk to potential employers, look at graduate school brochures, talk to the faculty, talk to family friends. In short, use every means available to understand what is entailed in the various sub-disciplines of Electrical Engineering (of which CpE is one). Then, you have a better chance of making a good decision.
As you investigate the field, be careful using terms you are not very familiar with. For example, assume you have heard of company X and you understand they do the design and manufacture of VLSI integrated circuits and you decide you are interested in that field for whatever reason. When you visit a faculty member to get some counsel on your program of study the first question asked will be: "what do you want to do?" While seemingly a step in the right direction, an answer of "VLSI" is not much more helpful than "something technical having to do with circuits". The reason is that the VLSI itself refers to a broad range of topics including:
Item 1 above can be the task of physicists, chemists, chemical engineers, or manufacturing engineers, as well as electrical engineers. Item 2 may be done by electrical engineers but also by physicists. Items 3, 4, and 5 are very much within the scope of both EE and CpE with Item 3 more of an EE topic with Item 5 being more of a CpE topic. As you see, there is a definite continuum with few clearly defined boundaries.
Using the above VLSI example again, it is clear that if you eventually decide that VLSI (at any of the 5 levels given) is where you want to work, you will benefit greatly by taking courses across the whole range. A common complaint is that the process engineers don't really understand what the widget they are manufacturing does. Conversely, the design engineer will be handicapped without a clear understanding of the basic materials and manufacturing technology involved in producing the design.
Faculty can be a great aid in helping you understand the bounds of your interest area and devising a program of study to help prepare you in that interest area if you choose to do so.
The focus of the CpE degree program is the engineering of computing systems. One way to describe what this means is to contrast it with traditional CS and EE programs.
CS curricula can be said to concentrate more on the computational process at an abstract level as opposed to how the computation is accomplished with metal and silicon (wires and transistors). Thus, Computer Scientists often view a computing system in terms of what it can do rather than how. They often employ sophisticated abstract mathematical or logic-based models of computing systems as way to understand their capabilities. A significant theoretical branch of CS is concerned with proving properties and limits of computing systems using these abstract models. Other branches of CS are concerned with the use of computing systems to solve a vast array of problems from managing airline reservations to computer animation to producing systems software (languages, compilers, operating systems) for computing systems to make them usable.
Does this mean CS doesn't include the study of computer architecture and digital logic? Of course not. It does.
You just won't find the skills required to construct a working computer system taught in most CS curricula. You will find them taught in CpE and in EE. They include things such as advanced digital systems design and testing, electronic circuits, electromagnetics, VLSI design, CAD tools, systems performance modelling and analysis, ...
That said, remember the first point above - the lines are fuzzy at times and there are certainly exceptions to this statement. Some CS curricula are decidedly CpE-ish and do contain some of the above topics. On the other hand, BYU's current ECEn Department includes 4 faculty with PhDs in Computer Science from other universities.
As mentioned above, the motivation for the creation of CpE degree programs around the country has been to provide a mechanism for students to specialize more in computing systems design than possible with conventional EE curricula. For example, a computer engineer ought to know something about the operating systems which will run on the computing system he or she designs. If majoring in EE, for this person to take a course in operating systems without lengthening out their course of study requires that something be dropped from their EE program of study.
The CpE degree program contains approximately one-third traditional EE courses, one-third CpE courses, and one-third CS courses.
Thus, one way to differentiate EE and CpE is to note what CpE students drop from the EE program of study to make room for more CS courses. From the table given earlier, it can be seen the CpE students are not required to take EE 360/361 (electromagnetics) or Math 214 or Physics 281. Instead, they take CS 236/240 (programming languages, data structures, discrete mathematics, algorithm analysis).
CAUTION: The problem with carrying this analysis on to the other required CpE courses shown in the table above is that the EE program provides great flexibility on what students take at the 400-level while the CpE program prescribes closely what will be taken. Since the table only shows required courses you might be misled. The CpE program certainly allows all of the EE courses to be used as electives. And, the additional CpE required courses with ECEn numbers (425, 427, 450, 451) are all part of the restricted electives requirements for EE.
After separating the computer engineering (CpE) portion of the Electrical Engineering from the major discipline, what is left in electrical engineering (EE)? There are actually several remaining areas such as
Most of these areas overlap with other areas of EE and several overlap with CpE.
There are two ways to look at what the CpE degree might do for your post-graduation employment opportunities.
First, what doors might it close compared to an EE degree? This depends on the EE courses you don't take. If you were to take ECEn 360 for your technical electives then your program of study would be almost identical to that previously taken by the EE Computer Option students. Thus, you should see no impact on what jobs you are qualified for. In fact, you will be more qualified for some due to the stronger CS background you will have (due mostly to recent changes the CS department has made to their curriculum and how it dovetails with the needs of our students).
On the other hand, if you choose in your CpE program to avoid all of the non-required upper-division EE courses and take all CS electives instead then some doors will close for you. These would be for positions which expect (in addition to your digital hardware background) more training than you have in control systems, communications theory, digital signal processing, electronics, analog IC design, solid state...
Finally, the presence of the added CS in the CpE curriculum means that you simply will not be able to have as broad an EE background as an EE graduate. For example, you will have room in your schedule to take advanced electronics. But, you won't have room for advanced electronics AND electromagnetics AND control systems AND digital signal processing AND solid state AND analog IC design AND ... It turns out the EE major will have room for most if not all of them.
Second, what doors might a CpE degree open for you? Once again it depends on the courses you take. In general, the added CS in the CpE core requirements along with the flexibility to take further CS courses in your electives means you can become more of a software specialist than the EE curriculum would allow. Thus, an array of programming positions may open up to you which EE graduates are not qualified for.
On the other hand, compared to a CS graduate a whole other set of positions may become available to you based on your background. That is, your background in differential equations, probability, and thermodynamics (along with your general engineering training) may prove to be a great advantage to you if you choose to work in the broad area of scientific computing and visualization. Or, your electronics and circuits background will qualify you to work in the area of electronic design automation (CAD). It seems logical that a top programmer who has a background in the applications area is always preferable to a top programmer who has no such background (both are always preferable to a mediocre programmer).
CpE is an established program. The department has further information you can obtain. You should visit the College of Engineering and Technology Advisement Center to inquire about how to declare CpE as a pre-major. Then, when you have taken the necessary foundation courses, you may apply (see the Advisement Center for a form) for formal admission into the program.
Above all, make an informed decision. Good luck in your studies!