Software Engineering at the University of Waterloo

Software engineering is a systematic and disciplined approach to developing software. It applies both computer science and engineering principles and practices to the creation, operation, and maintenance of software systems.

At the University of Waterloo, Software Engineering is an independent, interdisciplinary program supported by both the Faculty of Mathematics and the Faculty of Engineering. Graduates of this program will earn a Bachelor of Software Engineering (BSE) degree.

Future undergraduate

Our undergraduate program not only include a solid foundation in mathematics, science, engineering, and computer science, but will also cover fundamental concepts of the software development process, project management, and proper technical documentation.

Future graduate

Despite the lack of a graduate program, those interested in Software Engineering can pursue software-related graduate degrees offered by The David R. Cheriton School of Computer Science and the Faculty of Mathematics or the Department of Electrical and Computer Engineering.

Faculty of Engineering

Courses provided by the Faculty of Engineering show students how to design and how to solve problems in digital hardware and software.

Faculty of Math

Courses provided by the Faculty of Math give students the background they need to understand computing fundamentals and to model and reason about software behaviour.


SE2024 student Ryan Dancy will present at the Lunary and Planetary Science Conference in Texas next month, based on his project from EE-584 Spacecraft Design and System Engineering, taken while on exchange at EPFL in Switzerland. This project applies the decision-oriented approach to systems architecture to design a mission concept for an explorer probe to Europa.

Europa is a moon of Jupiter that was discovered by Galileo in 1610, and is known to have water and ice. NASA has existing plans to send a probe to Europa, and this project considered a different point in the design space. 

Ryan has also had three co-op internships in the aerospace field. In summer 2022 he worked on AR/VR applications for lunar rovers at the European Space Agency's European Space Operations Centre (ESOC) in Darmstadt, Germany. He is currently on his second co-op internship at Mission Control in Ottawa, which is on track to be the first company to ever demonstrate deep learning AI software on the moon.


Jeromy Carrière (UWaterloo alumni and recipient of the J.W. Graham Medal in Computing & Innovation) gave a guest lecture on software architecture. The talk discussed how the decision-oriented approach to software architecture could provide leverage in systems design. Carrière is currently Senior VP Engineering at Datadog, and has had technical leadership roles in industry for twenty years. Prior to joining industry, Carrière was a researcher at the Software Engineering Institute at Carnegie Mellon University, where he worked on software architecture reconstruction and analysis.

Bilal Akhtar, SE2019, is tackling the GTA housing crisis as part of MNTO (More Neighbours Toronto):