Computer Engineering Program

Program SummaryProgram CurriculumElective ListsSwitching between programs

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 Curriculum

Second Year
OpenClose
First TermSecond 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.

Third Year
OpenClose
First TermSecond Term
CPEN 331 (4)CPEN 391 (6)
One of MATH 318, STAT 251, 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.

Fourth Year
OpenClose
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.

CPEN students who begin their second year in September 2023 can use the following checklist to track their progress in the program: CPEN Program Checklist

Resources that can help you plan your studies:

  • 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’)
  • For official course descriptions for each of the courses listed above, please visit our ECE Course Listing
  • For assistance with course registration, check out our Undergraduate Registration Guidelines

Computer Engineering Elective Lists

CPEN students can refer to the lists below of department-approved electives when planning their coursework:

Probability/Stats Electives
OpenClose
Check your program checklist
CE Electives
OpenClose
Computer Engineering Elective List
ELEC 202, ELEC 221, ELEC 301, ELEC 315, ELEC 331, ELEC 341
BMEG 310
Technical Electives
OpenClose
Science Electives
OpenClose

Science Elective Checklist

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
OpenClose

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
OpenClose

Free Elective Checklist

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

For any questions about electives or counting a course for credit, students can email u-advising@ece.ubc.ca

For students who entered 2nd Year CPEN in previous years, please see the following course checklists:

Switching Between Computer and Electrical Engineering

Students that wish to switch between the Computer Engineering Program and the Electrical Engineering Program must complete the online application form.