Link to the University of Waterloo home page
2023-2024

The Undergraduate Calendar

 

 

Computer Science

Specializations

Software Engineering Specialization

The Software Engineering Specialization is available for both the Bachelor of Computer Science (BCS) and the Bachelor of Mathematics (BMath) (Computer Science) academic plans. This Specialization is offered jointly by the David R. Cheriton School of Computer Science and the Department of Electrical and Computer Engineering. Students who complete this Specialization do not qualify for the professional engineering designation. The course requirements are the same as for the BCS and BMath (CS) with the following additional requirements:

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 442 Principles of Programming Languages
    • CS 444 Compiler Construction
    • CS 448 Database Systems Implementation
    • CS 449 Human-Computer Interaction
    • CS 450 Computer Architecture
    • CS 451 Intensive Distributed Computing
    • 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 480 Introduction to Machine Learning
    • CS 484 Computational Vision
    • CS 486 Introduction to Artificial Intelligence
    • CS 488 Introduction to Computer Graphics

Office of the Registrar
University of Waterloo
Ira G. Needles Hall
200 University Avenue West
Waterloo, Ontario, Canada N2L 3G1
519-888-4567