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:
- 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
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
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.