The University of Waterloo’s honours software engineering program is an independent, interdisciplinary program supported by both the Faculty of Mathematics and the Faculty of Engineering. The program is collaboratively developed and administered by faculty in Computer Science and in Electrical and Computer Engineering. It is accredited as both an engineering and a computer science undergraduate program.
The program’s technical requirements include a solid foundation in mathematics, computers and networks, computer science, and engineering. Software engineering courses build on this foundation and introduce disciplined development processes, technical documentation, software design principles, project management, and quantifiable analysis. Non-technical requirements include teamwork, technical presentations, reports, peer evaluations, and co-op work experience.