Link to the University of Waterloo home page Advanced Search or
The Undergraduate Calendar

Computer Science


Software Engineering Option
Printable Version Printable Version

The Software Engineering Option is available for both the Bachelor of Computer Science (BCS) and the Bachelor of Mathematics (Computer Science) (BMath) plans. This option is offered jointly by the David R. Cheriton School of Computer Science and the Department of Electrical and Computer Engineering. The rationale for the plan is described in the engineering section of Faculty Options. Given that the option involves two faculties, it has slightly different realizations in those faculties. Students who complete this option do not qualify for the professional engineering designation. The course requirements are the same as for the BCS and BMath with the following constraints on upper-year CS courses:


All of

CS 445/ECE 451 Software Requirements Specification and Analysis
CS 446/ECE 452 Software Design and Architectures
CS 447/ECE 453 Software Testing, Quality Assurance and Maintenance
CS 492 The Social Implications of Computing


Two of

CS 343 Concurrent and Parallel Programming
CS 348 Introduction to Database Management
CS 349 User Interfaces

Two of

CS 444 Compiler Construction
CS 448 Database Systems Implementation
CS 449 Human-Computer Interaction
CS 450 Computer Architecture
CS 452 Real-time Programming
CS 454 Distributed Systems
CS 456 Computer Networks
CS 457 System Performance Evaluation
CS 458 Computer Security and Privacy
CS 484 Computational Vision
CS 485 Machine Learning: Statistical and Computational Foundations
CS 486 Introduction to Artificial Intelligence
CS 488 Introduction to Computer Graphics


Office of the Registrar
University of Waterloo
2nd Floor, Needles Hall
200 University Avenue West
Waterloo, Ontario, Canada N2L 3G1
519 888 4567

contact us | UWaterloo home | privacy | powered by InterGlobal Solutions