Read These First
- Slides giving an overview of how to choose electives
- Spreadsheet analyzing electives that check multiple boxes for you
- Suggestions to consider for your 2B elective slot:
- Towards Sustainability Diploma
- ENVS205 --- counts for either List A or List C (keeps future open)
- Towards HCI or Cognitive Science
- PYSCH101 --- counts for CogSci and List C
- PYSCH207 --- counts for HCI and Natural Science Elective
- PSYCH261 --- counts for HCI or CogSci, and Natural Science Elective
- Towards Machine Learning or Quantum Computing
- MATH235 --- fundamental prerequisite for upper year courses
- Towards Computational Math or Combinatorics
- CO250 --- fundamental prerequisite for upper year courses
- General science
- SCI238 Astronomy
- Towards Sustainability Diploma
UWaterloo offers many enrichment opportunities beyond your core curriculum --- the challenge is really finding ones that fit in with the demanding Engineering schedule. The key is to choose your elective slots strategically:
- CSE: Complementary Studies Electives. SE students need 1 List A Impact and 1 List C Humanities. List B is satisfied by ECE 192 in the SE core.
- ATE: Advanced Technical Electives. SE students need 1 from CS, 1 from ECE, and a third from either.
- Open. SE students get 2 or 3 Open elective slots, depending on calendar year.
Approval: You will need approval from the SE Office to add any of these enrichments, and possibly also from the place offering the enrichment. See our rules about overloading if your chosen enrichment does not fit within your elective slots.
Kinds of Enrichment Opportunities
|Specialization||Students in Program||4-8 courses||Often fits within SE elective slots|
|Option||Students in Faculty||4-8 courses||Sometimes fits within SE elective slots|
|Diploma||Any student at UW||4-8 courses||Sometimes fits within SE elective slots|
|Certificate||Any student at UW||~4 courses||Sometimes fits within SE elective slots|
|Minor||Students outside Program||8-10 courses||Usually requires overloading 4-6 courses|
|Joint Honours||Students in Faculty but outside Program||+12 courses||Usually requires an extra 2 academic terms|
- The AI Specialization offered by CS is only available to students within CS (which includes SE students). It is not available to other students in the Faculty of Mathematics.
- The AI Option offered by Engineering is available to any student in the Faculty of Engineering (which includes SE students).
- The Sustainability Diploma, offered by the Faculty of the Environment, is available to any student at UW.
- The Japanese Language I Certificate offered by the Department of East Asian Studies is available to any student at UW.
- The Economics Minor, offered by the Economics Department, is available to any student outside the Economics Department.
- Joint Honours with Pure Math is available to any student in the Faculty of Mathematics who is not in the Pure Math Department (so is available to SE students).
List of Minors, Options, Diplomas and Certificates across the entire university.
List of course offerings for next term.
Combining Multiple Opportunities
Yes, you may do multiple plans. Plan is the university's technical term for a degree, joint honours, minor, option, certificate, and diploma.
But #1: You cannot triple-count any courses. For example, you cannot count ECE222 towards your BSE degree + option1 + option2. This is a university-level rule.
But #2: Specializations do not count as plans, so they are excluded from the no-triple-counting rule. So, for example, you may count CS492 as your List A elective in your BSE degree, as well as towards both the HCI Specialization and the AI Specialization. Note: the AI Option from Engineering is an option, and therefore a plan. But the AI Specialization from CS is a specialization and therefore not a plan.
By now you should be thinking CS247 thoughts about how to model these abstractions in your code, and SE212+CS341 thoughts about the computational complexity of the no-triple-counting rule. (Solution: capstone team Maestoso from SE2016 presented a reduction from SAT in their SE490 project to show that it is NP-complete.)
When to Declare + Getting Permission
Permission: To declare a minor/option/specialization/etc. you need permission from both:
- the department/school/etc offering the minor/option/specialization/etc; and
- the SE Associate Director.
General guidance: Declare after you have taken a couple of courses towards the minor/option/specialization/etc. This gives you enough experience to know if you are serious about it. Also, you can probably get access to those beginning courses without having declared.
Special Case #1: In some cases, you will need to declare in order to get access to the necessary upper year courses.
Special Case #2: In some cases, you can wait until you have completed all of the required courses and then declare.
Opportunities that Fit Within SE Elective Slots
- Sustainability Diploma. Choose four of your elective slots to earn a diploma in Sustainability from Faculty of Environment. A diploma is a second piece of paper that you will receive at graduation, in addition to your Bachelor of Software Engineering degree. This is a great opportunity to learn about climate change and other aspects of sustainability.
- Required: ENVS 205 is on List A (Impact) and List C (Humanities), and is a pre-req for GEOG 203
- Environmental Science (choose 1): EARTH 270, and ENVS 200 qualify as Natural Science Electives (NSE).
- Social Wellbeing (choose 1): ENVS 105 or ERS 215 are both on List A (Impact)
- Economic Prosperity (choose 1): GEOG 203 is on List A (Impact) and List C (Humanities)
- There are many other interesting courses that can count towards the Sustainability Diploma that would fit in your open elective slots. The courses above are noted because they fit into the more restricted NSE or CSE elective slots.
- Exchange Study Abroad. This can often be done with no additional courses, if the exchange university offers a similar curriculum to UWaterloo. Sometimes it requires taking a few extra courses here in Waterloo due to differences in the curriculum between schools.
- Computer Engineering Option.
- Choose two ATEs out of these four:
- ECE 320 Computer Architecture
- ECE 327 Digital Hardware Systems
- ECE 423 Embedded Computer Systems
- ECE 455 Embedded Software
- Choose two more technical courses (3rd ATE slot + open elective) that are either on the option list (very long) or approved by the option coordinator.
- List A elective related to computing
- Choose two ATEs out of these four:
- Management Sciences Option
- Several option courses are on List C
- Some of the courses count as ATE
- 2-3 Open elective slots
- Ask to switch from ECE192 to MSCI261
- Entrepreneurship Option
- List C slot for BET 100
- 2 Open slots for BET 320 and BET 340
- 2 ATEs that are relevant to your project and approved by the option coordinator.
- Another BET course (might be an overload course)
- Society, Technology, Values Option
- List A Impact Elective: many STV choices [STV Option Requirement A]
- List C Humanities Elective: all STV courses [STV Option Requirement B]
- Two Open Elective Slots [STV Option Requirement C]
- Capstone/FYDP or STV400 [STV Option Requirement D]
- Human-Computer Interaction Specialization.
- CS 349 in in SE core
- CS 449 is an ATE
- CS 492 is List A Impact
- SE 463, SE464, SE 465 are SE core
- PSYCH207 + PSYCH261 are Natural Science Electives
- Computational Math Minor
- CS 370 [3rd ATE slot]
- SE 212 = CS 245 [BSE core]
- CS 247 = CS 246 [BSE core]
- CO 250 (or pick another course from the three-of list) [open elective]
- BIOL 382 [open elective for now; might be approved as NSE in future ...]
- CS 341 [BSE core]
- CS ATE from: CS 451, CS 466, CS480, CS485
- Combinatorics & Optimization Minor
- MATH 115, MATH 135, MATH 117, MATH 239 are SE Core
- CO 250 is an Open Elective
- Many of the courses on the three-of list are ATE-ALL
- 1 additional Open Elective
- 1 Extra Course
- Cognitive Science Minor
- PHIL 256 / PSYCH 256 [open elective]
- PSYCH 261 [NSE -- ask SE office for approval]
- CS 486 or ECE 457B [ATE]
- PHIL 447 / PSYCH 447 [open elective]
- CS 349 [SE core]
- CS 449 or CS 484 or CS 485 [ATE]
- ECE 457B or ECE 486 [ATE]
- PSYCH 101 [List C]
- Artificial Intelligence. SE students can take one of:
- Advanced versions of Math Courses. The Faculty of Mathematics offers advanced versions of many courses. For example, MATH 145 is the advanced version of MATH 135. Each year there are around 1-2 SE students who pursue these courses. Most SE students stick with the regular math courses. Substituting an advanced course in place of a regular course does not increase the number of courses you take, but does in practice increase the workload (because the advanced versions are more challenging). Upper year SE students generally recommend sticking with the regular math courses.
Some Extra Work (1-4 extra courses)
Extra courses can be done by overloading an academic term, taking them online during co-op, sacrificing a co-op term for an academic term, or doing a "4C" term the summer after 4B.
- Computational Fine Arts Specialization. 1 extra course.
- CS 349 is in SE core
- CS 488 counts as an ATE
- FINE 101 can count as List C Humanities
- 2 Open Electives
- 1 extra course.
- Business Specialization. 4 extra courses.
- CS 348 is in SE core
- CS 454 counts as an ATE
- CS 490 open elective
- Six business courses:
- Many of these can count as List C Humanities.
- Your second open elective slot.
- Four extra/overload courses.
- Minor in Economics. Nominally 8 courses, but good overlap with elective slots, so probably about 4 extra courses.
- Minor in Peace and Conflict Studies. Nominally 8 courses, but good overlap with elective slots, so probably about 4 extra courses.
- Minor in English. Nominally 8 courses, but good overlap with elective slots, so only 4 extra courses.
- Minor in Technical Writing. Nominally 8 courses, but good overlap with elective slots, so probably about 4 extra courses.
Significant Extra Work (4-8 extra courses)
Engineering does not have a formal concept of "double major", but these are similar to that general idea:
- Concurrent BA. Get two degrees (BSE + BA) at the same time. Less work that doing them one after the other, but more work than doing just one degree.
- 3 year BA: 15 courses required, 4 of which fit in SE elective slots, and probably 3 of which your SE courses can count as BA electives, so probably 8 extra courses on top of your regular BSE degree.
- 4 year BA: 20 courses required, 4 of which fit in SE elective slots, and probably 4 of which your SE courses can count as BA electives, so probably 12 extra courses on top of your regular BSE degree.
- Joint Honours [Math]. Alternatively, a Minor in one of these areas is less work than Joint Honours -- as is the Mathematics Option. If you want to pursue any of these, then we can replace some of your core math courses with ones from the Joint/Minor/Option (because the latter requires courses of greater mathematical depth).
- Knowledge Integration Minor
- List C Humanities Elective: several INTEG choices
- Two Open Elective Slots
- Five additional courses
Software Engineering at Waterloo is an undergraduate program taught jointly by the Cheriton School of Computer Science (CS) and the Department of Electrical & Computer Engineering (ECE). Both CS and ECE have graduate research programs, which are natural choices for SE students who wish to continue their technical education and engage in research. Both also have accelerated masters programs for students doing their undergraduate degree at UW. The best strategy is to find a professor that you want to do research with during your SE degree, and then continue on with them for your masters.
A small number of SE students also have interests in other areas. Some other graduate opportunities that might be of interest include:
- Cognitive Science Graduate Diploma. This is something you add on to a graduate degree. For example, you could do a masters degree in ECE or CS, and add this Cognitive Science Graduate Diploma on to it.
- MA in eXperimental Digital Media (XDM). This is a masters program offered by Waterloo's English Department that looks at technology from different perspectives than the SE program.
- The Institute for the History and Philosophy of Science and Technology at the University of Toronto has an excellent masters program.
There are many clubs and other extra-curricular activities on campus. Here are a few that SE students have participated in.
- UW Blueprint. A club that writes software for non-profits. Founded by students from SE2018.
- Citizen Hacks. A hackathon series organized by students from SE.
- Watonomous. A design team constructing an autonomous electric vehicle. Derek Rayside is a faculty advisor, and many SE students have participated.
- UW Game Development Club. Affiliated with the UW Games Institute.
- Intra-mural sports and exercise. Lots to choose from, at all ability levels. Get active!
- Waterloo Engineering Competition. Includes debates, technical speaking, programming, technical design, etc.
- Student government: