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, 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?

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

Yes for the computing option, which means that you only have to take four additional courses.

No for the computer engineering and software engineering options, which require eight additional courses above and beyond the two used to declare these options.

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?

The following List A CSE courses are eligible:

  • 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.  A web-based tool for auditing course completion plans is under development, and you can access the Beta version here.  Sample course completion plans are presented below for reference.

Example A: Computing Option for Management Engineering student

  1. Introductory programming: MSCI 121 (core)
  2. Introductory data structures and algorithms: MSCI 240 (core)
  3. Course from topics lists: ECE 358 (elective)
  4. Course from topics lists: MSCI 446 (elective)
  5. Course from any list: MSCI 541 (elective)
  6. Course from any list: MSCI 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)
  9. Course from topics lists: MTE 241 (core)
  10. Course from topics lists: MTE 262 (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)
  9. Course from topics lists: ECE 208 (core)
  10. Course from topics lists: ECE 252 (core)