Link to the University of Waterloo home page
2023-2024

The Undergraduate Calendar

 

 

Bachelor of Applied Science and Bachelor of Software Engineering Specific Degree Requirements

Faculty Options

Software Engineering Option

The Software Engineering Option is available to all students in the Faculty of Engineering (including Architecture), except students in Software Engineering.

This Option is offered jointly by the Faculty of Engineering and the David R. Cheriton School of Computer Science in the Faculty of Mathematics.

For students in the Faculty of Engineering, this Option requires a total of eight courses.

  • Three required courses:
  • Four additional courses from the topics list below, one of which may be substituted with a course from the data structures and algorithms list.
  • One course from List A Complementary Studies Course Lists for Engineering that considers application of computing technology, or an alternative approved by the option co-ordinator.

The courses chosen to satisfy this Option must satisfy four additional constraints:

  • They must satisfy Canadian Engineering Accreditation Board (CEAB) requirements.
  • They must be approved by the option co-ordinator.
  • Five of the courses must be considered elective (that is, not core requirements) in the student's academic plan. For the purposes of this Option, a course that a student could choose to graduate without will be considered elective.
  • The student must have earned a minimum average of 75% in the selected courses in order to have earned the Option.

Students may not declare this Option until they have completed both an introductory programming course and a data structures and algorithms course. Students must have a minimum average of 75% in these two courses in order to declare this Option.

The lists below are intended to be the same as for the Computing Option and the Computer Engineering Option. These lists are also intended to include courses that are normally part of the Computing Minor offered by the Cheriton School of Computer Science. Other courses from Computer Science may be used towards this Option with permission of the option co-ordinator. Students may declare at most one of the Computing Option, Computer Engineering Option, or Software Engineering Option. Students may change which of the three Options they declare by contacting the option co-ordinator(s).

Introductory Programming

  • AE 121 Computational Methods
  • BME 121 Digital Computation
  • CHE 120 Computer Literacy and Programming for Chemical Engineers
  • CIVE 121/ENVE 121/GEOE 121 Computational Methods
  • CS 115 Introduction to Computer Science 1
  • CS 116 Introduction to Computer Science 2
  • CS 135 Designing Functional Programs
  • CS 145 Designing Functional Programs (Advanced Level)
  • ECE 150 Fundamentals of Programming
  • ME 101 Introduction to Mechanical Engineering Practice 2
  • MSCI 121 Introduction to Computer Programming
  • MTE 121 Digital Computation
  • NE 111 Introduction to Programming for Engineers
  • SYDE 121 Digital Computation

Data Structures and Algorithms

  • BME 122 Data Structures and Algorithms
  • CS 136 Elementary Algorithm Design and Data Abstraction and CS 136L Tools and Techniques for Software Development (see Note)
  • CS 146 Elementary Algorithm Design and Data Abstraction (Advanced Level) and CS 136L Tools and Techniques for Software Development (see Note)
  • CS 231 Algorithmic Problem Solving
  • CS 234 Data Types and Structures
  • ECE 250 Algorithms and Data Structures
  • ECE 406 Algorithm Design and Analysis
  • MSCI 240 Algorithms and Data Structures
  • MTE 140 Algorithms and Data Structures
  • SYDE 223 Data Structures and Algorithms

Note: Students who take CS 136 or CS 146 will also be required to enrol in CS 136L which is graded on a CR/NCR basis. However, passing CS 136L is not a requirement for the option and the course may be coded as NRNA.

Topics List

The following list of topics are organized into specific areas for readability.

Logic

  • CS 245 Logic and Computation
  • ECE 208 Discrete Mathematics and Logic 2
  • SE 212 Logic and Computation

Databases

  • CS 338 Computer Applications in Business: Databases
  • ECE 356 Database Systems
  • MSCI 245 Databases and Software Design

Operating Systems

  • ECE 350 Real-Time Operating Systems
  • MTE 241 Introduction to Computer Structures and Real-Time Systems
  • SE 350 Operating Systems

Computing Systems

Networks

Digital Hardware

  • BME 393 Digital Systems
  • CS 230 Introduction to Computers and Computer Systems
  • ECE 124 Digital Circuits and Systems
  • ECE 222 Digital Computers
  • ECE 224 Embedded Microprocessor Systems
  • ECE 320 Computer Architecture
  • ECE 327 Digital Hardware Systems
  • ECE 423 Embedded Computer Systems
  • ME 262 Introduction to Microprocessors and Digital Logic
  • MTE 262 Introduction to Microprocessors and Digital Logic
  • MTE 325 Microprocessor Systems and Interfacing for Mechatronics Engineering
  • SYDE 192 Digital Systems

Software Engineering

  • 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
  • MSCI 342 Principles of Software Engineering
  • SE 463 Software Requirements Specification and Analysis
  • SE 464 Software Design and Architectures
  • SE 465 Software Testing and Quality Assurance

Human-Computer Interaction

Security and Privacy

Pattern Analysis and Machine Intelligence

Numerical Methods

  • BME 411 Optimization and Numerical Methods
  • CHE 322 Numerical Methods for Process Analysis and Design
  • CIVE 422 Finite Element Analysis
  • EARTH 456 Numerical Methods in Hydrogeology
  • ECE 204 Numerical Methods
  • ECE 204A Numerical Methods 1 and ECE 204B Numerical Methods 2
  • ENVE 225 Environmental Modelling
  • ME 559 Finite Element Methods
  • ME 566 Computational Fluid Dynamics for Engineering Design
  • MTE 204 Numerical Methods
  • NE 336 Micro and Nanosystem Computer-aided Design
  • SYDE 411 Optimization and Numerical Methods

Special topics courses as approved by the option co-ordinator.


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