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:
Foundations
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
Applications
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