Software Engineering

Because today, even your fridge is full of software.

Whether you want to create a VR training program for surgeons, the next “swipe right” dating app, or an autonomous car, software engineers have endless career options in today’s tech-enabled world.

At Waterloo, you won’t just write code. You’ll also analyze software architecture, apply algorithms, understand digital hardware systems, and design human/ computer interfaces. Plus, you’ll learn how to work in teams and manage projects.

Then, during your co-op, you’ll put those skills to work at leading companies like Snapchat or Facebook or hot new startups. When graduate, you’ll be ready to create reliable, affordable, and faster software for all kinds of different purposes.

Study in a high-tech hub

Waterloo Region is home to Google, Kik, and more than 1,000 other technology companies, providing lots of co-op and career opportunities.

Calling all hackers

Bring your ideas to life at Hack the North — Canada’s biggest hackathon — which attracts more than 1,000 students from around the world each year.


Female student working on laptop

Through co-op, Software Engineering students work at leading software design firms even before they graduate.

About the Software Engineering program

breifcaseGain 2 years of experience in the co-op program

clickApply directly to this program on your application

grad capEarn a Bachelor of Applied Science degree


#1Engineering school in Canada (US News & World Report 2018)

GearsOffered through the Faculty of Engineering and the Faculty of Mathematics

Money flowerStudents earn $17,800 on average per co-op term


Software Engineering admission requirements

  • Ontario students: 6 Grade 12 U and/or M courses including
    • Advanced Functions (minimum final grade of 70% is required)
    • Calculus and Vectors (minimum final grade of 70% is required)
    • Chemistry (minimum final grade of 70% is required)
    • Physics (minimum final grade of 70% is required)
    • English (ENG4U) (minimum final grade of 70% is required)
    • Recommended courses: Grade 11 U Introduction to Computer Science, Grade 12 U Computer Science
  • Admission averages: Individual selection from the mid-90s
  • Not studying in Ontario? Search our admission requirements

Experience in developing well-structured, modular programs is required. Applicants will be asked to explain programming experience on the Admission Information Form that is required for admission.

Strong performance in a programming contest, such as the Canadian Computing Competition, is helpful. You're also strongly encouraged to write the Euclid Mathematics Contest

First-year Software Engineering courses

September to December

CS 137 - Programming Principles
ECE 105 - Classical Mechanics
MATH 115 - Linear Algebra for Engineering
MATH 117 - Calculus 1 for Engineering
MATH 135 - Algebra for Honours Mathematics
SE 101 - Methods of Software Engineering

January to April

CS 138 - Introduction to Data Abstraction and Implementation
ECE 106 - Electricity and Magnetism
ECE 124 - Digital Circuits and Systems
ECE 140 - Linear Circuits
MATH 119 - Calculus 2 for Engineering
SE 102 - Seminar


After first year

Sample upper-year courses

SE 212 – Logic and Computation
SE 464 – Software Design and Architectures

SE 350 – Operating Systems
SE 465 – Software Testing and Quality Assurance


Gain relevant work experience through co-op

By alternating school terms and paid co-op work terms throughout your degree, you can explore new career areas and types of employers as your career interests evolve.

Sample co-op job titles

  • Tools and automation engineering intern
  • Data scientist
  • Mobile developer
  • Software developer
  • iOS developer
  • Production engineering
  • Algorithims engineering

Sample co-op employers

  • Kik Interactive
  • Mozilla Corporation
  • Bloomberg
  • LinkedIn
  • Waterloo Regional Police Service
  • Element AI
  • ContextLogic


Recent graduates

  • Software Developer, IBM Canada
  • Consultant, PureFacts Financial Solutions
  • Software Manager, Arius Software Corporation
  • Head of Technology and Engineering, Sydus
  • Software Engineer, VistaPrint USA
  • Implementation Consultant, Desire2Learn
  • Software Engineer, Harris Corporation
  • Software Developer, Accenture

Possible professional designation

Learn more about Software Engineering