Computer Engineering

Computer engineering

Why Computer Engineering?

As a student in Computer Engineering you will learn about hardware, software and computing principles in the context of important devices and systems – systems that control phones, cars, planes and robots. Every automated device has a computer engineer who helped to create it.

Between labs and lectures, you'll gain experience with all aspects of computers, from chips and wiring to software, networks, and communications. You’ll graduate ready for a career as a software developer, hardware engineer, IT specialist, systems designer, and more, in a wide range of industries such as enterprise software, automotive, aerospace, automation and robotics, networks and databases, health care, and security.

Remote video URL

Courses in Computer Engineering

You’ll take a mix of foundational engineering, programming, and mathematics courses in first year. After first year, most of your classes will be Computer Engineering courses covering topics such as communication systems, digital hardware, real-time operating systems, machine learning and AI, and analog control systems.

Sample first-year courses

This is a sample schedule. Courses are subject to change.

1A Term 1B Term

ECE105 - Classical Mechanics

ECE150 - Fundamentals of Programming

ECE190 - Engineering Profession and Practice

ECE198 - Project Studio

MATH115 - Linear Algebra for Engineering

MATH117 - Calculus 1 for Engineering

COMMST192 - Communication in the Engineering Profession

ECE106 - Electricity and Magnetism

ECE108 - Discrete Mathematics and Logic 1

ECE124 - Digital Circuits and Systems

ECE140 - Linear Circuits

ECE192 - Engineering Economics and Impact on Society

MATH119 - Calculus 2 for Engineering

Upper year courses

For information about courses past your first year, check out the Undergraduate Academic Calendar.

Customize your degree with options and specializations

Options

Options are a way to provide you with a path to expand your degree and get a secondary emphasis in another subject or area. Students should decide if they are interested in taking options as they enter second year. Some available options are:

Specializations

A specialization is recognition of selected elective courses within your degree. Specialization offerings are unique to your engineering program and are listed on your diploma. Specializations that are available to Computer Engineering students include:

Co-op for Computer Engineering students

You’ll have an unrivalled opportunity to gain paid work experience before you even graduate. We’ll help you navigate job applications, résumés, and interviews; you’ll have the added benefit of trying out different roles and/or industries to find the one that fits you while building your work experience and reinforcing your in-class learning out in the real world. It all adds up to a competitive advantage after graduation.

Your first work term will be halfway through first year

Year September to December (Fall) January to April (Winter) May to August (Spring)
First Study Co-op Study
Second Co-op Study Co-op
Third Study Co-op Study
Fourth Study Co-op Study
Fifth Co-op Study -


or after first year.

Year September to December (Fall) January to April (Winter) May to August (Spring)
First Study Study Co-op
Second Study Co-op Study
Third Co-op Study Co-op
Fourth Study Co-op Study
Fifth Co-op Study -


There are two options for co-op sequences. You can request your preference if you receive an offer of admission. Learn more about co-op.

Example co-op positions for Computer Engineering students

  • Software developer
  • Hardware engineer
  • Full stack web developer
  • Data engineer
  • Data scientist
  • iOS developer
  • Infrastructure engineering intern
  • QA developer

Previous Engineering co-op student of the year

Rupa Vemulapalli, Computer Engineering student

  • Recognized for her Winter 2020 term, Rupa Vemulapalli served as a junior energy analyst for Rushby Energy Solutions Inc.
  • Pitched the idea of creating a revenue-generating iOS app, that will assist “Electric Vehicle (EV) suppliers quantify long-term gains in establishing EV-charging stations in designated locations.”
  • Rupa successfully created a prototype for the app and was given the approval to continue developing the final product. The iOS app is now in the process of being placed in the App Store. 
  • Attended frequent site visits, reviewed energy audit reports, and evaluated building performance.
  • Given the opportunity to represent Rushby Energy during a tradeshow that brings together energy experts.  
rupa vemulapalli

Example careers for Computer Engineering graduates

  • Firmware engineer
  • Software engineer
  • Network administrator
  • Innovation technical lead
  • Microprocessor design
  • Robotics engineering

Capstone design projects in Computer Engineering

Capstone Design is the culmination of the engineering undergraduate student experience, creating a blueprint for innovation in engineering design.

Supported by numerous awards, Capstone Design provides Waterloo Engineering students with the unique opportunity to conceptualize and design a project related to their chosen discipline.

A requirement for completion of their degrees, Capstone Design challenges students teams to push their own boundaries, and apply the knowledge and skills learned in the classroom and on co-op work terms.  It reinforces the concepts of teamwork, project management, research and development. 

For a full list of previous capstone design projects, see our Capstone Design website.

Braille Radar (Capstone 2024)

Braille Radar

Justin Mendes, Andrei Paraschiv, Harsh Patel, Raven Sim, Zeen Wang

We help lead the blind to the braille. Our phone app and sensor combination allows blind users to better navigate unfamiliar indoor spaces and locate nearby braille signage. This increases their independence and confidence in navigation, without sacrificing braille literacy. The app will beep or vibrate with increasing frequency to indicate proximity. Building owners can use the companion admin app to set up and manage all of the tags within their building.

WatSat: The Satellite Smartphone Add-On (Capstone 2024)

WatSat: The Satellite Smartphone Add-On team

Ruqayyah Ali, Simon Bell, Jacob Crocker, Daniel Croos, Sara Habib, Bhavya Jain

Canada's major telecom providers only cover less than half of the country, resulting in inadequate coverage for remote regions. Natural disasters further exacerbate communication challenges, as cell service is often disrupted. To tackle these issues, our project aims to develop a smartphone add-on for reliable satellite communication in areas with limited or no internet or cellular service.  The goal is to offer affordable alternatives, ensuring accessible communication for all with efficient energy usage.

Student design teams

The Sedra Student Design Centre consists of over 20,000 square feet of space dedicated to design teams and student projects. There are more than two dozen design teams, all of which are student-led, and many of which represent Waterloo internationally.

Some examples include:

Electrium Mobility

Electrium mobility

Electrium Mobility is a student design team dedicated to building sustainable, portable, and electric transportation solutions in the form of electric skateboards, bikes, scooters, and other portable electric mobility options.

Waterloo Hacker Fab

Waterloo Hacker Fab

Waterloo Hacker Fab is establishing Canada’s first open-source microchip fabrication lab, with all equipment engineered from scratch. Our goal is to develop reliable processes to build NMOSFET chips with a 10-micron gate length in a 24-hour turnaround.

Reality Labs

UW Reality Labs

UW Reality Labs is a student design team at the University of Waterloo that specializes in XR (extended reality) and spatial computing. Our team offers students hands-on experience with cutting-edge VR and AR (augmented reality) technologies, as well as experimental spatial experiences.

Computer Engineering alumni

Ugo Landry-Tolzszcuk

Ugo Landry-Tolzszcuk

Ugo (class of 2009), "I really liked all my co-ops because they were so varied. From ATI to working for JSI Telecom who built products for legal intercepts, to being at Research in Motion when the Apple iPhone came out."

Read more about Ugo's time in Computer Engineering.

Karim Al-Atrash

Karim Al-Atrash

Karim (class of 2024) "Waterloo gave me a chance to apply my learning within industries, ranging from highly technical robotics sensing to mass marketing of Internet of Things (IoT) devices.”

Read more about Kartim, valedictorian of his graduating class.

Andrew J. Clinton

Andrew J. Clinton

Andrew (class of 2005), received a Technical Achievement Academy Award for inventing micro-voxels. His ground-breaking work has had a tremendous impact on the way visual effects are done in movies today.

Read more about Andrew's work changing the movie industry.

Frequently asked questions (FAQ)

What's the difference between Computer Engineering, Software Engineering and Computer Science?

Computer engineering, software engineering, and computer science are all crucial fields in the realm of computing and technology. While they share some commonalities, each has its own distinct focus and applications.

Computer engineering integrates electrical engineering and computer science to develop computer hardware and software. It focuses on the design, development and testing of computer systems and components. The focus is on the design and development of computer hardware and the integration of hardware with software. Ideal for those interested in electronics and computer systems.

Software engineering is concerned with the design, development, testing and maintenance of software systems. Topics include software design, software development methodologies, testing, quality assurance, project management and user experience design. The focus is on applying engineering principles to software development. Best for those interested in creating reliable and efficient software solutions and managing software projects.

Computer science is primarily concerned with the theoretical foundations of information and computation. It focuses on algorithms, data structures, software development and the principles of computer operation. The focus is on the theoretical and mathematical foundations of computing. Ideal for those interested in algorithms, programming and the theoretical aspects of computer systems.

What's the difference between Computer Engineering and Electrical Engineering?

Computer Engineering and Electrical are closely related fields, but they focus on different aspects of technology. Electrical Engineering is broader and deals with the study, design, and application of electrical systems, including power generation and distribution, electronics, control systems, and telecommunications. It involves a lot of work with circuits, electromagnetics, power systems, signal processing, and control systems, and graduates may find careers in industries like energy, telecommunications, electronics, and automation.

In contrast, Computer Engineering is a specialized branch that combines elements of electrical engineering and computer science, focusing specifically on the design and development of computer systems, hardware, and software integration. It focuses more on digital systems, microprocessors, computer architecture, software development, and embedded systems, and graduates might find careers in designing and developing computer hardware, software, networking, and cybersecurity.

Both fields share a strong foundation in mathematics, physics, and basic electronics, and both may involve programming and digital design, but Computer Engineering delves deeper into computer-specific topics.