Computing, Computer Engineering, and Software Engineering Options

Where do I begin?

You must complete an eligible introductory programming course and an eligible data structures and algorithms course (see List 1 and List 2 in the Academic Calendar entry for your option), earning an average grade of at least 75% in these two courses.

Does the required 75% grade apply to each course individually, or to a collection of courses?

It applies to a collection of courses.  The average is initially computed over the two introductory courses required to declare the option.  It's OK if one of the two grades is below 75% as long as they average to 75% or higher (e.g., 70% in programming and 80% in data structures).

I have completed the required introductory courses with an average grade of 75% or higher. What do I do next?

Contact your program advisor to declare the option.

Can the two courses taken to declare the option be counted among the courses required to earn the option?

Yes for the computing option, computer engineering, and software engineering options.  (New rules for 2024-2025.)

Can the option coordinator help me enroll in a course that is eligible/required for one the options?

No, sorry.  The option coordinator does not have any special privileges in that regard.  You are responsible for resolving any enrollment issues, particularly missing prerequisites and enrollment caps, in the usual manner (e.g., by approaching course instructors for overrides). 

When can I take the courses eligible for the option?

Pretty much any time.  Some of the eligible courses are likely already part of your degree program, and you will typically use your technical elective slots to complete the others.  You can also overload or take courses during co-op terms, subject to the usual policies (e.g., you many need to obtain permission from your program advisor).  You can count eligible courses that you completed before you declared the option, and you can declare the option as late as the beginning of your fourth year.

Which List A Complementary Studies Electives are eligible for the CE and SE options?

Only the following List A CSE courses are eligible (see List 4 in the Academic Calendar entry for your option):

  • STV 205: Cybernetics and Society
  • STV 208: Artificial Intelligence and Society: Impact, Ethics, and Equity
  • STV 210: The Computing Society
  • STV 302: Information Technology and Society
  • HIST 212: The Computing Society
  • SOC 324: Digital Cultures
  • MSCI 442: Impact of Information Systems on Organizations and Society
  • CS 492: The Social Implications of Computing

Can I complete more than one option?

Yes, but beware that one course can be counted toward at most two credentials.  If you are using a course to earn a BASc degree then you can use the same course to earn at most one engineering option.  In other words, you can double-dip but you cannot triple-dip.  Completing two engineering options is possible if you take sufficiently many courses, which may require substantial overloading.

Can you suggest a specific set of courses for a particular option?

It is difficult to make personalized suggestions due to the diversity of both undergraduate engineering programs and engineering options.  Sample course completion plans are presented below for reference.  You can also try using my experimental option auditing tool to explore alternative course completion plans.

Example A: Computing Option for Management Engineering student

  1. Introductory programming: MSE 121 (core)
  2. Introductory data structures and algorithms: MSCI 240 (core)
  3. Course from topics lists: ECE 358 (elective)
  4. Course from topics lists: MSE 446 (elective)
  5. Course from any list: MSE 541 (elective)
  6. Course from any list: MSE 245 (core)

Example B: Computer Engineering Option for Mechatronics Engineering student

  1. Introductory programming: MTE 121 / GENE 121 (core)
  2. Introductory data structures and algorithms: MTE 140 (core)
  3. Required course 1: ECE 327 (elective)
  4. Required course 2: ECE 423 (elective)
  5. List A CSE: MSCI 442 (elective)
  6. Course from topics lists: ECE 351 (elective)
  7. Course from topics lists: ECE 457A (elective)
  8. Course from topics lists: MTE 204 (core)

Example C: Software Engineering Option for Computer Engineering student

  1. Introductory programming: ECE 150 (core)
  2. Introductory data structures and algorithms: ECE 250 (core)
  3. Required course 1: SE 463 (elective)
  4. Required course 2: ECE 452 (elective)
  5. Required course 3: ECE 453 (elective)
  6. List A CSE: STV 210 (elective)
  7. Course from topics lists: ECE 351 (elective)
  8. Course from topics lists: ECE 124 (core)