Internal Transfers

Direct Entry vs General Entry

  • Direct Entry: highschool students apply to specialized engineering programs directly. Waterloo does this. This system has advantages, but can make switching between programs challenging.
  • General Entry: highschool students apply to engineering, and then choose a specialized program after first year. Some other universities do this. This system usually makes it easier to switch between specialized programs. 

Programs with Software Content

While Software Engineering is the only program at Waterloo with software in the name, it is far from the only program with software in the content. There are many programs with significant software content, including:

Consider what aspects of software you are interested in, and which other programs might also be good fits for your interests. Check out the slides at this link:


Ways to Add Software to Your Current Engineering Degree

There are three options, revised for the 2021-22 calendar, to add software-related content to your current engineering degree:

Speak to your academic advisor about enrolling in one of these options.

A good strategy to prepare to transfer into SE is to enrol in one of these options and then take courses necessary to join an SE cohort in 2A or 2B when some space has typically opened up.

Advice for Third Year Students

  • Add one of the SE, CE, or Computing Options described above.
  • Consider a masters degree in ECE or CS. 
    • You could complete your current degree and get a masters in the same amount of time as it would take to switch programs from third year.
    • There are two kinds of masters degrees: research and professional. 
      • Research: You write a thesis, take a few courses, and get paid a small stipend (enough to cover your tuition and a bit more).
      • Professional: You take 8-10 courses (depending on the program). You pay your own tuition.
      • Both ECE and CS offer both kinds of masters degrees. 

Ways to Add Software Engineering to your Bachelor of Computer Science Degree

The School of Computer Science offers a number of specializations that are similar to aspects of the BSE degree:

Requirements for Applying to SE

  • Capacity in the cohort you are applying to join. This is beyond your control. Limited Capacity for 1B, 2A, and 2B.
  • Explanation of why SE seems like the right fit for you.
  • Resume describing some experience with software development, ideally also showing some experience with version control.
  • Grades: Typically 87% cumulative average and 90% average in software-related courses.
  • Courses:
    • MATH135 / ECE108 Discrete Math: must have if applying to 2A or 2B. Recommended to take on co-op prior to applying, if necessary. These courses provide an important foundation for any future study in software/computing.
    • MATH115/117 or equivalent: must have before 1B.
    • MATH119 or equivalent: must have before 2A.
    • STAT206 or STAT230: must have before 2A.
    • ECE124 / MTE262 / SYDE192 / BME393 Digital Circuits: must have before 2A SE.
    • SE212 / ECE208 / CS245 Logic: must have before 2B SE.
    • CS241 / ECE351 Compilers: must have before 2B SE.
    • Programming: whatever programming courses are reasonably available to you in the program you are in. Must have CS137 concepts before 1B and CS138 concepts before 2A.
    • These courses also count towards at least one of the SE / CE / Computing Options in Engineering, or the BCS Degree or the Digital Hardware Specialization in SCS.
    • Everything else in first year Software Engineering is also very important, but you can pick up the missing pieces a later. See the Software Engineering Class Homepages for all the courses in the SE curriculum for the cohort you are applying to join (or see the Undergraduate Calendar for the year that cohort started 1A).

Timeline for Applying to SE

Joining Term Time to Apply Where to Apply
1A SE Fall February Engineering Admissions
1B SE Winter End of 1A SE Director
2A SE Fall End of May SE Director
2B SE Spring End of January SE Director