Link to the University of Waterloo home page
2021-2022

The Undergraduate Calendar

 

 

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

Faculty Options

Computer Engineering Option

The Computer Engineering Option is available to all students in the Faculty of Engineering (including Architecture), except students in Computer Engineering. It requires a total of eight courses:

  • Two of:
Course Title
ECE 320 Computer Architecture
ECE 327 Digital Hardware Systems
ECE 423 Embedded Computer Systems
ECE 455 Embedded Software
  • Five 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 Requirements for Engineering Students 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 pursuing this Option are recommended to select courses in the areas of logic, digital hardware, operating systems, computing systems, databases, networks, and security and privacy.

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 Software 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

Course Title
AE 121 Computational Methods
BME 121 Digital Computation
CHE 120 Computer Literacy and Programming for Chemical Engineers
CIVE 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
ENVE 121 Computational Methods
GEOE 121 Computational Methods
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

Course Title
BME 122 Data Structures and Algorithms
CS 136 Elementary Algorithm Design and Data Abstraction
CS 146 Elementary Algorithm Design and Data Abstraction (Advanced Level)
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

Topics

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

Logic

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

Databases

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

Operating Systems

Course Title
ECE 350 Real-Time Operating Systems
MTE 241 Introduction to Computer Structures & Real-Time Systems
SE 350 Operating Systems

Computing Systems

Course Title
ECE 252 Systems Programming and Concurrency
ECE 351 Compilers
ECE 454 Distributed Computing
ECE 455 Embedded Software
ECE 459 Programming for Performance

Networks

Course Title
ECE 358 Computer Networks
MSCI 445 Telecommunication Systems: from protocols to applications

Digital Hardware

Course Title
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

Course Title
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

Course Title
MSCI 343 Human-Computer Interaction
MSCI 541 Search Engines
MSCI 543 Analytics and User Experience
SYDE 542 Interface Design
SYDE 543 Cognitive Ergonomics
SYDE 548 User Centred Design Methods

Security and Privacy

Course Title
ECE 409 Cryptography and System Security
ECE 458 Computer Security

Pattern Analysis and Machine Intelligence

Course Title
ECE 417 Image Processing
ECE 457A Cooperative and Adaptive Algorithms
ECE 457B Fundamentals of Computational Intelligence
ECE 457C Reinforcement Learning
MSCI 436 Decision Support Systems
MSCI 446 Introduction to Machine Learning
MSCI 546 Advanced Machine Learning (available September 2022)
SYDE 522 Foundations of Artificial Intelligence
SYDE 552 Computational Neuroscience
SYDE 556 Simulating Neurobiological Systems
SYDE 572 Introduction to Pattern Recognition
SYDE 575 Image Processing

Numerical Methods

Course Title
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 and ECE 204B Numerical Methods 1 and 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