ECE 350Real-Time Operating Systems
- Units
- 0.50
- Faculty
- Engineering
When it runs
- F24
- W25
- S25
- F25
- W26
- S26
- F26
- W27
- S27
Ran in 4 of the last 7 terms. Winter 2027: scheduled, 2 lecture sections. Spring 2027: schedule not out yet.
Memory and virtual memory and caching; I/O devices, drivers, and permanent storage management; process scheduling; queue management in the kernel; real-time kernel development. Aspects of multi-core operating systems.
Prerequisites
- Complete all of the following
- Must have completed the following:
- ECE252 - Systems Programming and Concurrency (0.50)
- Students must be in level 3A or higher
- Complete 1 of the following
- Enrolled in H-Software Engineering
- Enrolled in a BASc program
- Must have completed the following:
Antirequisites
Leads to
Winter 2027 sections
| Section | Class | Enrolled | Meets |
|---|---|---|---|
| LEC 001 | 4887 | 119 / 130 | TTh 08:30–09:50 Jan 18 11:30–12:20 Feb 1 11:30–12:20 Feb 22 11:30–12:20 Mar 8 11:30–12:20 Mar 22 11:30–12:20 Apr 5 11:30–12:20 |
| LEC 701 | 1972 | 2 / 9999 | Online or by arrangement |
| LAB 201 | 4889 | 36 / 35 | Jan 25 13:30–16:20 Feb 8 13:30–16:20 Mar 8 13:30–16:20 Mar 22 13:30–16:20 Apr 5 13:30–16:20 |
| LAB 202 | 4890 | 33 / 35 | Jan 26 13:30–16:20 Feb 9 13:30–16:20 Mar 9 13:30–16:20 Mar 23 13:30–16:20 Apr 6 13:30–16:20 |
| LAB 203 | 4891 | 35 / 35 | Jan 27 13:30–16:20 Feb 10 13:30–16:20 Mar 10 13:30–16:20 Mar 24 13:30–16:20 Apr 7 13:30–16:20 |
| LAB 204 | 5183 | 15 / 25 | Jan 28 13:30–16:20 Feb 11 13:30–16:20 Mar 11 13:30–16:20 Mar 25 13:30–16:20 Apr 8 13:30–16:20 |
| TUT 101 | 4888 | 119 / 130 | M 09:00–09:50 |
Resources
Around the web
Found by uwloo’s link finder, which checks that each page names ECE 350.
- ECE350 Other · ece.uwaterloo.ca · posted on r/uwaterloo Aug 2021 Remove
Reviewed on UW Flow
84% liked it36% easy87% useful
From 64 ratings and 21 comments on UW Flow. The most helpful comments, quoted as written, without names. Read them all on UW Flow.
The first half of the course is like an extension of ECE252 and the second half is like an extension of ECE222. Surprisingly, this course doesn't focus too heavily on RTOS. Our exams were way too easy compared to Zernett's
Aug 2026 · liked itOn UW FlowRemove this
I actually quite liked this course, it was quite informative in telling what going on under the hood in an operating system. The labs are continuous and by the end you have a full operating system. Very cool. Don't leave this course to the last minute, the content is dense but very interesting
Aug 2026 · liked itOn UW FlowRemove this
took this as a math student for an elective, went in with a decent amount of C/systems programming background but no embedded, and it worked out fine, wouldn't say you need much beyond comfort with C and being willing to read datasheets/register docs as you go. you build a preemptive RTOS kernel from scratch on bare metal ARM doing your own context switching and scheduling, workload is pretty light for an ECE course honestly and the labs are genuinely the best part, actually makes you think about what's going on in the hardware instead of just trusting some API to do its thing. reading https://lwn.net/Kernel/LDD3/ on the side helped a lot conceptually too. midterm is pretty easy with an…
Jul 2026 · liked itOn UW FlowRemove this
The labs were great, very useful. The lectures however, are often dense by nature and don't feel logical. Obviously there is a reason for why the systems you learn about work the way they work, but the course can't possibly cover the derivations or prove certain behaviours given the breadth of the outline. This makes the course feel weirdly like a bio course in the way you study it. Make the font of you cheat sheet as small as possible and colour code everything. Prof. Zahedi said we could bring a magnifying glass if we wanted to. Given the memorization nature of the course, the cheat sheet was so much more useful than in other courses.
Jul 2026 · didn’t like itOn UW FlowRemove this
A mix of computer hardware and philosophy in a way. When Zarnett teaches it, many exam questions can be open-ended, in which the most correct answer aligns most with his way of thinking about it. That requires some memorization of the lecture slides, so I recommend going through them early rather than last minute. And vibe coding the labs won't help. They'll be grilled about on the final exam so you might as well spend the time anyways.
May 2026 · liked itOn UW FlowRemove this
Discussed on r/uwaterloo
51 posts and comments in 38 threads mention ECE 350, July 2016 to December 2024. Quoted word for word, newest first; each reply sits under the post and the comment that started its branch. Search r/uwaterloo for newer posts.
Fall 2024
ECE 350 Horror Stories 2 points, 3 comments
u/Tight_Document_1513: “How hard and tedious are ECE350 labs compared to ECE252/298 labs? I'm quite interested in knowing how fucked the labs are. If any upper year can provide their experience with the course, that would be great. :)”
u/ehhthing: “ECE 350 Labs are great, brush up on ECE 222 ARMv7. Note that the board you'll be using is the same as ECE 198. For how much the labs are worth, they're not actually that much work although lab 2 was somewhat frustrating to debug. …”
Spring 2024
ECE 252 Override? 3 points, 2 comments
“Is it possible to override into ECE 252 (Systems Programming and Concurrency) for those who are outside of Engineering? …”
u/ehhthing: “252 labs are cool but the course content is sometimes painful. Would recommend taking the CS alternative and then taking ECE 350 instead.”
My experience with CS 444, 452, 488 34 points, 4 comments
u/proturtle46: “The bugs are similar to what I found in ece 350 lol Compilers might not be able to optimize your code the same way if you have prints using a var as you’ve probably learned in the compilers class lol so printf might appear to change the behaviour of your code A big issue I found …”
Winter 2024
tutoring for ece 350 3 points, 1 comment
u/AdFar6976: “hey, anyone willing to tutor me for ece 350 (real time operating systems course) or an equivalent course (e.g SE 350) ? I'm really struggling with the labs. I'd pay ofc!”
Best Eng Program to get into Machine Learning? 19 points, 32 comments
“I'm applying to Waterloo Engineering this year. What is the best engineering programs besides software eng to get into machine learning?”
u/kawaiiggy: “theres so much to ML. the mathematical architecture behind models? cs/math/co/software if u take a lot of math courses the systems and infrastructure to run ML? …”
u/kawaiiggy: “… courses like ECE254, ECE350, ECE351 i would imagine would be good to know”
Fall 2023
cs350 students, are yall really that dumb 1 point, 39 comments
“My friend works with the grad students in Ali's lab. He found out 73 students failed the final. That's like 22% of the class lmaooo”
u/Remote_State6124: “What about ece 350 vs. Se 350?”
Spring 2023
What are your core courses? 8 points, 11 comments
“Basically title - What are several courses that you think really define your program? Any thoughts on them, and how they went? Looking forward to the discussion (ノ◕ヮ◕)ノ\:・゚✧”
u/Xierumeng: “Computer engineering: ECE 224 ECE 320 ECE 327 ECE 350 ECE 423 ECE 455 Honourable mention: ECE 105 ECE 106 Douglas Harder Peter Levine Paul Ward The ECE advisors”
Winter 2023
Biggest disaster of a course you have ever been in and why? 82 points, 30 comments
“In honor of stat231, share the biggest clusterfuck of a course you have ever taken and why. Mine isn’t super bad but ENVS278 this semester lost 1/3 of the class between first and second midterm, …”
[deleted]: “ECE 350 - heaviest lab component I've ever had. This course was like a full time job. More of a late hazing ritual than a clusterfuck tbh. ECE 298 online - since this was online, we had to use some shitty simulation software that didn't work half the time. …”
What’s been your easiest and hardest year so far? 10 points, 16 comments
u/TheRealArjun: “… 467, ECE 459, PMATH 332 4A - ECE 222, ECE 351, PHYS 434, PHYS 442, PHYS 454, PHYS 475 WT5 - ECE 350, ECE 454, Coop 5 4B is looking bad and its only been one month...”
Download MangoTango on VSCode 109 points, 11 comments
“Have you ever wanted to sabotage a curriculum and feel like a revolutionary? This is your chance. &x200B; There was a question in CS136L that which one of the following is not a VSCode extension. …”
u/ghfsigiwaa: “Me at 3am working on ece350 https://i.redd.it/nm961znck8ha1.gif”
Fall 2022
how hard is Comp Eng 2B? 21 points, 16 comments
“How hard is 2B compared to 2A for comp eng? Which courses tend to be the hardest or most time consuming? Have the courses changed at all after COVID?”
u/superuwu1000: “get used to the lab stress in 2B, because 3A is 10 times worse (ECE 350). Then, as long as you don't take ECE 320 in 3B, you're chill for the rest of your program, unless you take a heavy lab course electively. …”
Spring 2022
CE vs math 20 points, 46 comments
“Iam planning to pursue SWE. I dont like physics, hardware. Iam only interested in software things. Sadly i got rejected from cs and se so i need to choose between math and ce. Iam a math lover”
u/TheRealArjun: “… Don't count on being able to do this but what I did was take interesting CE courses as electives for fun just by asking the course instructor (ECE 252, 350, 351, 454, 459), so maybe thats an option if you take the math offer. …”
Check it elsewhere for Fall 2026
- Undergraduate Calendar, 2026–27The official entry
- Requirements for Fall 2026Waterloo’s requisite checker
- Schedule of Classes, Fall 2026Instructors, rooms, live seats
- Quest Class SearchWhere you enrol
- Course outlinesSyllabi from past terms (UW login)
- UW FlowStudent ratings and reviews
- WClassesPast sections back to 2004, and who taught them