Computer Engineering is a discipline that is focused on developing computing systems. The goal of our program is to develop in students an ability to design complete systems that include hardware and software elements. Computer Engineers focus not just on how computers work but how to integrate them into larger systems.
The Computer Engineering Program begins in the second year of undergraduate studies, after completing the required first year engineering courses. Students will graduate with a Bachelor of Applied Science in Computer Engineering. Students in the Computer Engineering Program may choose their electives to focus on computer hardware design or the design of software-intensive computer systems.
See our video below for a brief introduction to the Computer Engineering program!
How does Computer Engineering differ from Computer Science and Electrical Engineering? And what is Software Engineering?
Computer Engineering is a discipline that focuses on developing computing systems. The goal of our Computer Engineering program is to develop in students an ability to design complete systems that include hardware and software elements. Computer Engineers focus not just on how computers work but how to integrate them into larger systems.
There is a some overlap between Electrical Engineering and Computer Engineering and this overlap is typically related to the design of digital circuits and systems. Electrical Engineering is more broadly concerned with electronic devices, electrical motors and machines, generation and transmission of electricity, communications, signal processing, and control of such systems. A computer engineer should understand how a transistor works and how it plays a role in digital circuits but questions related to improving the behaviour of the electronics is mostly an electrical engineering activity.
Computer Science programs evolved from Mathematics as it became necessary to express computation and develop algorithms as opposed to obtaining closed-form solutions for problems. In that sense, one could argue that the core of Computer Science as a discipline is about computation as an abstraction, not necessarily about computing systems. In the early days of computing, the design of programming languages to express computation and the development of algorithms to solve problems drove the discipline. However, for such ideas to be useful, computing systems were needed as well as the programming tools to actually carry out information management and computation. For example, there is much engineering that goes into the design and implementation of, say, operating systems and compilers. This is where “Computer Engineering” comes in.
Software Engineering is a discipline that covers the entire span of software development: from the gathering of requirements to specification, implementation, testing, deployment and maintenance. It also requires project management and risk assessment. No one expects a software engineer to build hardware. For example, a Software Engineer, in practice, may need to know about the properties of a data structure and be able to choose a data structure to use in a particular project, but rarely would such a person design a new data structure or prove correctness of algorithms and data structures.
What are some examples of typical work that a student does in Computer Engineering?
From the get-go, the Computer Engineering program strikes a balance between concepts and hands-on experience.
In CPEN 211, by the end of the course, students typically implement their own microprocessor (on an FPGA board) that can run a subset of ARM assembly language. In CPEN 221, students work on several mini-projects that may involve processing audio files or working with large graphs that represent social networks or a game that utilizes some AI. They also learn some of the key ideas that help us develop compilers for programming languages.
In CPEN 291, which is the Computer Systems Design Studio, students will work on projects that involve hardware and software design. The projects often to relate to robotics and controlling a small autonomous vehicle.
Computer Engineering Program Guide
Please note that it is the responsibility of the student to ensure that the correct courses are being completed to meet degree completion requirements. For any questions or assistance in selecting courses or planning your degree, please reach out to your ECE student services advisors through u-advising@ece.ubc.ca.
To assist you with your course planning in Workday, we have created program checklists for you to follow, as well as a typical program guide in the tabs below. For logging into Workday, and accessing tutorials on how to use the new Workday system, students can visit: https://workday.students.ubc.ca/
- CPEN students who begin their second year in September 2024 can use the CPEN 2024 Program Checklist to track their progress
- For up to date program checklists, elective updates, and frequently asked questions by other students, please visit our Piazza ECE Advising platform (join using access code ‘ask-us-at-ece’)
- 2024W Second Year CPEN Students: To assist with registering for your 2nd year courses in Workday Student, please refer to the following visual guides for the course schedule options you have for completing your term 1 and 2 courses: 2nd Year CPEN Schedules (2024W)
First Term | Second Term |
CPEN 211 (5) | CPEN 212 (4) |
CPEN 221 (5) | CPSC 221 (4) |
CPEN 281 (3) | ELEC 201 (4) |
MATH 220 (3) | MATH 256 (3) |
MATH 253 (3) | Elective* |
Total Credits = 38
*Make sure to check the CPEN Program Checklist for tracking your elective requirements.
First Term | Second Term |
CPEN 331 (4) | CPEN 391 (6) |
One of MATH 318, MATH 302, STAT 302 (3) |
CPSC 320 (3) |
Electives (16) – To be chosen based on Department-approved list of Computer Engineering electives* |
Complementary Studies Electives (6)* |
Total Credits = 38
*Make sure to check the CPEN Program Checklist for tracking your elective requirements.
APSC 450 (2) |
CPEN 481 (3) |
CPEN 491 (10) |
Electives (20) – To be chosen based on Department-approved list of Computer Engineering electives* |
Science Elective (3)* |
Total Credits = 38
*Make sure to check the CPEN Program Checklist for tracking your elective requirements.
For official course descriptions for each of the courses listed above, please visit our ECE Course Listing
Computer Engineering Elective Lists
CPEN students can refer to the lists below of department-approved electives when planning their coursework:
- Probability/Stats Electives
- CE Electives
- Technical Electives
- Science Electives
- Complementary Studies Electives
- Free Electives
Check your program checklist |
Computer Engineering Elective List |
ELEC 202, ELEC 221, ELEC 301, ELEC 315, ELEC 331, ELEC 341 |
BMEG 310 |
CPEN students should complete 3 credits of Science Electives
Please note: The allowed science electives are chosen in such a way as to provide an introduction to the practice of the scientific method. If you plan to ask for permission to replace one of the allowed science electives with another course, you need to prepare a one-page (500 word) explanation detailing why the course you propose will serve as an adequate introduction to the scientific method for future scientists. Please also provide a detailed definition of what a scientific method entails.
Complementary Studies Electives Checklist
CPEN Students should complete 6 credits of Complementary Studies – Humanities and Social Studies, and 3 credits of Complementary Studies – Impact of Technology on Society. Typically, students complete 3 credits from the Humanities and Social Studies credits in their first year before selecting 2nd Year CPEN.
Please note that a maximum of 3 credits in a language course can be used towards the humanities and social sciences requirement
For all information on what courses are eligible for your “Humanities and Social Studies” and “Impact of Technology on Society” credits, please see the EAS Course Planning Page |
Free electives are intended to allow students to explore a breadth of coursework that can extend beyond engineering or science coursework. Other courses cannot be applied to more than one ECE requirement, but free elective coursework can be applied towards ECE requirements and towards requirements of Minors (e.g., Mathematics Minor, Commerce Minor).
CPEN students should complete 6 credits of Free Electives