Table of Contents:
- Introduction and Overview
- A Common Core
- An Example - Robotics
- Making a Decision
- CS and CpE
- What is the Job Situation?
- For More Information
Introduction and Overview
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:
- Highlight the common core shared by both degree programs.
- Point out the differences between the degree requirements.
- Help you as a student understand why you might choose one degree over the other.
- Help you as a student understand the career ramifications of this choice. That is, each degree opens different doors to you as a student after you leave the department and at the same time may close others.
- Point out to you as a student when you need to decide which degree program you wish to take.
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.
Computer Engineering (CpE) grew out of Electrical Engineering (EE) and so it should come as no surprise to you that the two degree programs share much in common. To start with, we will discuss the common courses between the two degree programs to show this commonality. Then, we will discuss the degree-specific courses as a way of helping you see how they differ.
|Common Core||EE Specific||CpE Specific|
|CS 142, 235
Programming & Data Structures
|Math 112, 113
Math 343, 334
&n Linear Algebra
Stats & Probability
Calculus of Several Variables
|Physics 121, 220|
|Chemistry 105 or 111|
|ECEn 240, 340
Electronics I & II
Signals & Systems
|ECEn 400 Tech Electives
Digital Signal Processing
Adv. Analog Electronics
Other 400-level courses
|CpE 400 Tech Electives
Integrated Circuit Design
400-level CS courses
Comments on the Table
- The requirements outlined in the above table include only required courses.
- Both degrees require the same number of credits. The difference is in the 400-level electives courses.
- The use of technical electives means that neither degree will lock you out of courses from the other degree program (provided you satisfy the prerequisites). However, built into the requirement structure are limitations on how many courses you can take from the other degree program.
A Common Core
Both degree programs follow a common core of physics, mathematics, statistics, chemistry, digital electronics, linear circuits, electronics, and introduction to computer programming.
After finishing either program you will have received an introduction to computer programming and data structures, and you will have built a solid foundation of mathematics, statistics and probability, physics, and chemistry. You will have completed three courses in circuit design, a course in linear system theory and signal processing, and will have completed a significant engineering project as a part of the Capstone course.
If you were to choose CpE, however, you would have received additional training in computer programming, computer architecture and organization, and networking. The technical electives you would likely have taken would have further focused on digital computing systems, the circuits that go into them, and the software that runs on them. If you took technical elective courses outside the department they would likely have come from Computer Science (CS).
If you were to choose EE, you would have received additional mathematics training. You would have then focused your studies on electromagnetics (electromagnetic waves) followed by a variety of topics such as control system theory, communication theory, advanced analog electronic circuits, and advanced electromagnetics (including antennas and fiber optics). If you took technical elective courses outside the department they would likely have come from Physics or possibly Mechanical Engineering.
As you can see from this description, after receiving the foundation, Computer Engineers focus to a large extent on using that foundation to help them design and analyze digital computing systems. These systems might consist of custom digital circuits to perform some task, or they might be software-programmable computing systems consisting of digital circuits combined with software.
In contrast, after receiving the same foundation, Electrical Engineers focus less on digital or computing systems and more on other topics including electronic circuits, electromagnetics, optics, signal processing, and semiconductors.
All of these sub-topics are important in their own right. The choice of which to pursue largely comes down to your interests.
An Example - Robotics
To help make this a bit more concrete, consider the design of a robotic system such as a mobile ground robot.
- Most obviously, such robots are constructed from physical components such as a frame along with levers, gears, cables and pulleys, etc. The design of those components may be done by Electrical or Computer Engineers, but more commonly would be done by Mechanical Engineers.
- Robots are typically powered by electric motors powered by batteries. The design and analysis of those motors would likely be done by Electrical Engineers.
- A robot needs the ability to sense its surroundings using cameras, RADAR, Laser rangefinding, etc. The design of those actual physical sensors would typically be done by Electrical Engineers.
- At the heart of a robot is typically a full-fledged computing system which runs a specialized operating system and multiple applications programs. The design of that specialized computing system would likely be done by Computer Engineers.
- One such set of application programs would take data in from the cameras and other sensors and operate on that data. For example, the software might process the data to identify obstacles in the path of the robot or identify other features from the camera feed. It might also combine that information with the processed RADAR data to determine the distance to obstacles and notify other software running in the robot system of those obstacles. The design of the actual algorithms to do that obstacle identification or RADAR processing would likely be done by an Electrical Engineer, but the implementation of those algorithms in software is often done by a Computer Engineer or Computer Scientist.
- Other layers of software are responsible for controlling the robot by planning its path through its environment. This high level control is based on sophisticated mathematics techniques and is typically developed by Electrical Engineers (although, in recent years, control theory is increasingly found in Computer Science, Computer Engineering, and Mechanical Engineering).
- It is possible that the robot may need to wirelessly communicate with either other robots or with a base station. The design of the antenna for producing the radio waves used for this communication is done by Electrical Engineers. The development of the means of encoding those communications onto radio waves is also done by Electrical Engineers. The development of the silicon chips to transmit and receive that information is done by a combination of Electrical Engineers (for the analog circuits) and Computer Engineers (for the digital circuits and overall circuit organization). The programming of the communications protocols used is typically done by Computer Engineers.
Making a Decision
Much of the above discussion may not make sense to you until you have had some experience in the core classes for these two majors. Don’t feel badly if this is the case with you. The good news is that if you are a student at BYU, you generally may not have to decide which path to follow until you have been in your program of study for a few semesters. The key thing is to meet with the department advisor and map out a path to graduation in one of the majors. Early on you will be taking core classes that are required for both majors. As you take courses in electronics, digital logic, computer organization, and signals and systems you hopefully will begin to understand what parts of these two degrees are attractive to you and can then pursue the corresponding major. You can often make the switch between degrees with minimal penalty for a number of semesters. Eventually, the cost of switching will become prohibitive as you realize you have taken a number of classes which will not apply to the other major. Happily, however, that will likely not happen until your 3rd or 4th semester of study.
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.
Remember: The Line is Fuzzy at Best
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 Employability Depends on Your Course Selection - A Lot!
Your choice of courses can have a dramatic impact on your career path. If you have taken no Computer Architecture courses, 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 (or be interested in doing).
Plan your path carefully. Talk to potential employers, talk to the faculty, talk to the department advisor, talk to family friends. In short, use every means available to understand what is entailed in the various sub-disciplines of Electrical and Computer Engineering. Then, you have a better chance of making a good decision.
Be Aware of Multiple Meanings
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 term VLSI itself refers to a broad range of topics including:
- Integrated circuit manufacturing (also called fabrication or processing). This is what we do in room 487 CB in those white bunny suits.
- Sub-micron device (transistor) development, modeling. This draws heavily on physics, particularly solid-state physics.
- VLSI integrated circuit design - circuit level. This is very electronics- and circuits-intensive design work. Circuit complexities are lower (fewer transistors) because the goal is to develop integrated circuit building blocks with nearly optimal speed/size/power characteristics. These building blocks include logic elements (gates and flip flops) as well as analog components (amplifiers, DACs, ADCs, static and dynamic memory cells).
- VLSI integrated circuit design - logic level. This is not quite as circuits intensive as above, the goal being to design large building blocks (arithmetic units, memory interfaces, control units). Often, this is done using canned building blocks (gates and flip flops) developed by circuit level VLSI designers. The emphasis here is more on dealing with the complexities of higher transistor-count chips.
- VLSI integrated circuit design - system level. At this point the emphasis is clearly on managing complexity of chips or systems containing many millions of transistors. This higher level of abstraction precludes much attention to the physical detail in the building blocks employed. "Getting it right" is a big concern due to the complexity of the task involved. Large, complex, and sophisticated computer-aided design (CAD) tools are required to accomplish this work. These kinds of engineers are also the architects of the system being built and so require a very broad training in most areas of EE and CS.
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 and Item 5 being more of a CpE topic. As you see, there is a definite continuum with few precisely defined boundaries.
Some Skill Sets Cross Over the Boundary
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 the design they are manufacturing and that the designer does not sufficiently understand the silicon technology being used.
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.
CS and CpE
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 ways 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) to make computing systems 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 modeling and analysis, etc.
That said, remember the point above - the lines are fuzzy at times and there are certainly exceptions to this statement. Some CS programs are decidedly CpE-ish and some are not. Conversely, some ECEn programs are decidedly CS-ish - BYU's current ECEn Department includes 4 faculty with PhDs in Computer Science from other universities.
What is the Job Situation?
The current job market is very strong for both Electrical Engineers and for Computer Engineers. Thus, your choice should not depend so much on that as on what you want to do. However, you should educate yourself about the jobs market and desired skills. Talk to recruiters and see what skills they are looking for in candidates. Then compare those to what you will learn in the various courses in both programs of study as well as what you find interesting.
For More Information
Department advisers and faculty members can help answer many of your questions. Meet with them regularly. The BYU ECEn department publishes flowcharts on its website (ece.byu.edu) that can help you understand its two degrees’ requirements and map out a course of study. Find those resources and carefully study them to help you make the best decision possible.