Since a detailed description - or even a list! - of the courses I took while at university would turn out to be exceedingly long, I’m going to focus on the major areas I studied instead. Alternatively, have a look at my periodic table of courses (previewed left), which does list all of the courses I took, grouped by area.
The large majority of courses I took were, unsurprisingly, in engineering. The Electrical and Computer Engineering (ECE) department breaks down their courses into 9 different categories based on the second digit in their course number, so ECE 456 is a fourth-year course (4) in software (5), while ECE 327 is a third year course (3) in hardware (2), and I’ll stick to that categorization to describe these courses.
10s - Communications/Information Systems
My least favourite course category, since it’s all about math: probability, signals, and the like. And the math is not particularly relevant to those interested in software (like me), which also might have had something to do with it.
20s - Computer Hardware
Practical details on how computer hardware is built, from designing circuits and chips to writing low-level software to interact with hardware, with a dash of hardware architecture thrown in. I also took a course in computer networks, which is also in this category.
30s - Devices/Fabrication/VLSI
The physics behind electrical devices, including more details than I cared to know about silicon and the various junctions you can make with it. Interesting, but not particularly relevant to software, so I only took a couple of courses.
40s - Circuits
How electronics actually work, and the source of any promotional photo you see of an electrical engineering student, since building real circuits with a variety of interestingly coloured parts and prodding them with fancy electronics is undeniably cool. Figuring out that things never work out as great in real life, or solving a circuit with a handful of branches and diodes, not so cool.
50s - Computer Software/Software Engineering
Since software is my thing, I focused the bulk of my technical electives here, taking courses on security, operating systems, compilers, distributed systems, databases, algorithms and data structures, mobile systems, and more.
60s/70s/80s - Power, Microwaves/Photonics, Control
These categories are targeted at Electrical Engineers, so I only took a single course - Analog Control Systems - as it was a degree requirement.
Along the way, I also took a small number of other engineering courses, on things like the fundamentals of engineering (covering law and ethics), as well as ones from other engineering departments (like one on user centred design from Systems Design Engineering) in order to fill out the engineering content required for my degree. I also completed a set of courses on professionally developing my engineering skills during my work terms.
Courses Related to Engineering
There were also a number of courses that, while not engineering in the traditional sense, needed to be taken so I might understand the engineering that was to come. These fell into two basic areas: Math (calculus, linear algebra, numerical methods) and Science (physics and chemistry), and were mainly completed during my first year. We also had to take a course on engineering economics, which, though purportedly about engineering, ended up being about the present worth of buying a furnace (it’s a long story).
Courses Not Allowed to be Engineering
Engineering also carries the curious requirement that a certain number of courses must not be engineering, in order to “broaden our horizons”. Since that was the intent, I decided to take it to the limit, taking a course in the history of Christianity, one in macroeconomics, one in information technology in society, one in public speaking, and one about the music used in movies.