Skip to main content

Frequently Asked Questions (FAQ)

What SWE Stream Should I Do?

In Software Engineering, you have to choose one of the three offered streams: General, Big Data and Security. You will take the stream-specific classes in your 3rd and 4th year, so I'd say pick stream once you finished most of your 2nd year classes, so you'd get an idea on what to pursue.

General

Unlike in Big Data and Security, you get to pick three EECS courses of your choice (based on what your course checklist tells you), such as databases, machine learning, networks, digital and mobile communications, computer vision, computer security, etc. However, as there is a catch. You will have to take two other (difficult and mostly useless) classes in return: Signals and Systems (EECS 3451) & Control Systems (ENG 4550/EECS 3452). These courses are mostly applicable to niche subfields like communications, signal processing, etc. In my honest opinion, I don't recommend pursuing this stream.

Big Data

The flagship stream. With the whole AI race currently, this stream might be worth looking into. You take some cool courses like machine learning, data mining, big data systems, etc. You also take courses like databases (EECS 3421), which I think every developer should take. Heads up that these courses are also challenging and require prerequisites from difficult courses like EECS 3101.

Security

This is the stream I took. You take very specialized courses related to computer security such as networks, cryptography, forensics, computer security labs, etc. In all honesty, I took this stream because it has the easier set of classes. This is so I have more time for finding Coops/Internships, graduate ASAP and making projects like this! Despite that, I found these classes to be pretty fun and interesting. If you want to get into your computer security, don't limit your knowledge to just these classes. There are still many things to do and learn out there as well (side projects, CTFs, penetration testing, etc). I recommend checking out this video by NetworkChuck.

What Electives Should I Take?

Firstly, if you are in 1st or 2nd year, I wouldn't worry about electives/complementary studies yet, finish your core courses first. If you've seen your program checklist, typically they'll usually state electives in 3rd or 4th year, so follow that (unless of course you need to raise your GPA or need a 2000-level course for your first coop work term).

My general advice for taking electives is try taking courses that you may knowledgeable in or interested in taking, but also lighter compared to other courses you're taking. At my time at York, the complementary Korean courses would fill up instantly. This is primarily because of: the huge popularity of Korean culture (K-Pop, K-Dramas, Korean Cuisine, etc.) in the West, plus they were mostly fully online or hybrid with good professors. Moreover, they are mostly a semester long (3 credits) unlike other humanities/social science courses that are a year long (6 credits).

There also exists courses that are known to be extremely light, even if the course doesn't sound interesting to you (who knows, you might like the course when you finish it). I would be however skeptical about these class, because course difficulty is subjective and may be outdated, especially from online forums like Reddit or Discord and even face-to-face. For example, when I took Intro to Religion Studies, it was known to be an easy course, additionally being fully online. However, some of my friends found it tedious (peep a 48-hour online exam) and the final course average isn't what you'd expect from an easy elective (~70%-73%). Fast forward today to 2024, it's no longer considered an "easy" course. I however found it quite interesting and ended up with a pretty good grade.

So my rule of thumb for electives is: interest ≥ difficulty!