UW ECE – 3A Review (Spring 2026)

Published: 2026-08-19

 

Spring terms remain undefeated when it comes to vibes. Summerloo makes the challenging academic life more bearable. Some of the events let you get out and touch grass, you get to see the sun more often, and the profs seem to tend to be happier too — these all combine to make excellent conditions for an academic term. Pictured above is the view from a day trip to Grand Bend beach run by EngSoc. Grand Bend is beautiful, and I recommend that anyone in the region during the summer should make the trip if you have the chance.

 

Of course, we tend to tell younger ECE students that the academic side of things never gets easier. I think this term mostly reinforced that belief, but I will say that having less ECE core courses makes a huge difference. Sure, the ECE courses I took this term were difficult in terms of their content, but only having 4 of them meant for a massive reprieve compared to the chaos and stress of some previous terms. Plus, the 3A schedule has Fridays off! So, to any younger ECEs out there, don’t worry, it gets (kinda) better.

 

EARTH 121 – Introductory Earth Sciences

Instructor: Prof. John Johnston

 

This was my first ever real elective! It’s hard to believe that it took three years before we had a choice at picking a course (PD courses don’t count), but it also was a sign that I’ve come pretty far in this degree. Anyways, to describe the course itself: it’s an online natural science elective which isn’t overly difficult. My offering was 100% online with no final exam. The content was semi-interesting to me. I had completely forgotten the basics of rock classification from science classes years prior (good ol’ igneous, metamorphic, and sedimentary), so I found it kinda cool to learn about the rock cycle and make guesses at identifying rocks as I was walking around campus. The course covers a lot more than just rock types though. It goes over the basics to all parts of the Earth system, including water resources, natural disasters, and much more. The assessments consisted of a few online quizzes, some discussion posts, a weekly-ish “Field Notes Journal” activity, and a large three part “Study Site Assessment.”

 

I would recommend this course as a Natural Science Elective if you’re looking for something that isn’t too difficult and can be done at your own pace. This course wasn’t something you could completely brush off – it required a good chunk of effort (especially those Study Site Assessment reports) – but it was relatively easy to get a couple weeks ahead and forget about it for a while. I can’t say much for the instructor other than that he seemed quite competent in terms of administering the course and that the content was relatively well designed. My only critique was the complete lack of feedback on some of the high value written deliverables.

 

ECE 318 – Communication Systems

Instructor: Prof. Weihua Zhuang

 

I loved this course! Prof. Zhuang made me realize that communication systems is a field I seriously want to consider for future co-ops and my career. The overall idea of the course is to introduce you to the fundamentals behind modern communication systems, including analog systems (AM and FM radio, for example), and the basics behind digital modulation schemes (like those used in 5G). This is done through a lot of math (you’ll learn to love cosine and some of the more common trig identities) and occasional interludes into the ideas that motivate the design of these modulation schemes and the hardware used in their receivers and transmitters. The mathematical tools used aren’t too difficult to grasp – it’s mostly multiplication, addition, or integration of cosine waves as well as some basic Fourier transforms to analyze things in the frequency domain. It’s really just the pace of the course (particularly post midterm) which you have to look out for.

 

 

Prof. Zhuang is, in my opinion, an excellent professor. She is pictured above having just said, “as you can see, the derivation is not so difficult” (after speed running some pretty challenging content). I present this as an example of her lecture style. It is quite fast, but it is manageable with 100% concentration. She can only write on the board so fast, after all. I thought she was able to convey the material in a way that felt like I was brought along for each step of the process. She derived most things from scratch on the board and encouraged as many questions as possible from the class. I found that she was able to strike a balance between the hardcore math and conceptual background that made things make sense. She even enhanced my conceptual understanding of the prerequisite concepts, like the Fourier transform, which I’ve been using for almost 2 years at this point and never appreciated in the same way. In all, this turned out to be my all time favourite course so far.

 

There are some reviews on UW Flow which say ECE 318 is “useless for computer engineering students.” I would suggest to these people that their kind of CE and my kind of CE look very different, and that’s the beauty of this program. One could decide to go down a software or AI systems route, in which case this course probably wouldn’t be very fun for them. Or, like me, you could be more interested in the design of embedded systems, including those for communication applications, in which case the knowledge that this course provides may be indispensable. I hope that all can find some part of this course interesting, as we use devices that employ this theory so incredibly often.

 

ECE 327 – Digital Hardware Systems

Instructor: Prof. Andrew Boutros

 

ECE 327 was a very challenging, but also quite rewarding, course. The content covers a variety of techniques for designing digital hardware. The Hardware Description Language used is SystemVerilog. The course feels mostly like a logical extension to ECE 124, often relying on the theory learned there, but far more practical. The techniques covered are very commonly used and relevant to things that people interested in digital hardware will see on co-op. These include generalized pipelining, FIFO-based and latency-insensitive design, and more. Towards the end of the course, Boutros also covered things like FPGA architecture and the analysis of timing and power consumption in digital circuits. The lab for the course is also very practical and connected to the lectures (which can’t always be said). It used a Xilinx Zynq SoC as the platform to implement several designs, which I was actually familiar with from a co-op term of mine, reinforcing how relevant the skills you build in this course are should you choose to go out and apply them. Our last lab had us design and test part of a commercial AI accelerator, which is obviously very relevant to the direction of this field. Boutros is also very connected to several AI hardware startups and includes information about them and case studies in his lectures.

 

Boutros sure knows how to make a cooked exam. He told us, evidently quite honestly, that he aims to test not only your grasp of the content, but your “fluency” in it. This means some tough time constraints on the exam, and you’ll likely feel like you need to rush through some questions to complete the exam in the allotted time. Our midterm average was 59.6 and the final was 58.1, though he’s not afraid of doing some adjustments to the grades at the end of the course. Exam questions range from writing SystemVerilog to design some circuits to more conceptual questions. Overall, I found him to be an excellent instructor. He engages the class by asking the room lots of questions (and getting answers through bribery with candy in our case) and keeping the content interesting. I’m happy to come away from this course with the knowledge I feel I’ve gained, I look forward to applying it in ECE 320 and beyond, but I sure do believe that this was a hard-earned grade on the transcript.

 

ECE 350 – Real-Time Operating Systems

Instructor: Prof. Seyed Zahedi

 

For a course in the x5x sequence, the content is actually very light on code (at least with Zahedi). I was thankful for that, as it let the important new takeaways of this course shine. The big things that this covers are various scheduling algorithms used in regular uniprocessor systems, multiprocessor systems, and real-time systems. Other concepts associated with modern multiprocessing, like caching, memory hierarchy, and I/O were revisited and expanded upon from their treatment in previous courses. All of Zahedi’s materials are available online if you’re interested.

 

The labs did involve a fair bit of coding, but I honestly just hammered each of the three parts out in a few-hour session or two each and didn’t have to think much of them for most of the term. Zahedi’s teaching was on par with most ECE profs but he had a pretty entertaining sense of humour at times. He posted recordings of all of his lectures, so many people skipped attending in-person. The midterm and final we had were both very fair and we were allowed cheatsheets with no restrictions on font size. He even told us that magnifiers were allowed. In the end, as he suggested himself, a kind member of the cohort worked with their favourite LLM to make a very comprehensive cheat sheet including practically all of the content on the slides that most of the class ended up using.

 

ECE 380 – Analog Control Systems

Instructor: Prof. Roya Firoozi

 

Control systems is something I have been at least passively interested in and curious about for a while now from my (surface-level) interactions with the topic on co-op. This course definitely provided me with the background knowledge I was hoping to get out of it and I intend to expand upon it in my 4th year Technical Electives. The course covers the classic introductory controls content, which includes review of the Systems content from ECE 207 (you’ll be making good use of the Laplace transform in this course), performance characteristics of linear systems, stability, state-space models, the Nyquist criterion, and a few basic controller designs including PID and lead-lag compensators. My advice for the course is simple and typical: keep up with the pace of the content covered. If you do regular practice and review concepts taught in class, you should be ok. There isn’t really a whole lot of variety in terms of possible exam questions once you’ve got all the concepts down.

 

In terms of our instructor, this was her first term teaching the course, and first term teaching at UW overall. There may have been some bumps along the road but she was clearly quite knowledgeable and put her effort into conveying the material in an understandable way. The course notes she used, written by Christopher Nielsen, were quite well done. One notable thing for the labs for both this course and ECE 318 is that they were less “free” in terms of marks compared to our previous terms. They were run similar to circuits labs, where you show up, do some procedures, take some oscilloscope screenshots and measurements, answer some questions, and you’re done. I found in previous terms that getting 90+ in those was pretty standard. For some reason, the 380 and 318 labs were harder to do very well in. I consistently got 80s or high 70s, which isn’t so bad, but isn’t ideal for what’s supposed to be the grade-boosting part of the course. I’m not sure I have much advice for this other than to consistently ask the Lab TAs for help when something doesn’t look right, they tend to be pretty helpful.

 

Conclusion

 

As this post comes to a close, there is one notable omission — co-op! That’s because, as a Stream 4 student, this will be my first time doing back-to-back school terms. That means that this was my first ever academic term where I wasn’t searching for a co-op. It was sort of strange to be honest. At times it felt like something was missing or that I should be searching the job boards when I had some free time. But it was also very freeing and contributed to making this term the “lightest” yet.

 

What this means for me is that very shortly, just a couple weeks from writing, I’ll be back in Waterloo tackling my 3B term. This also makes me realize that, in 4 months, I’ll have completed 3rd year academically and will be eyeing up my second-to-last co-op, 4A and the sprint toward the finish line of this degree. Time truly flies. It feels like just yesterday that I was writing my post 1A blog post. At the same time, I know that I’ve grown immensely since I first showed up to Waterloo in 2023 and the experiences I’ve had have changed me for the better. For now, I’ll stay focused on the present and enjoy the journey that I’m so lucky to be on. So long, dear reader. I’ll see you in a few months.