ECE 252Systems Programming and Concurrency
- Units
- 0.50
- Faculty
- Engineering
When it runs
- F24
- W25
- S25
- F25
- W26
- S26
- F26
- W27
- S27
Ran in 5 of the last 7 terms. Winter 2027: not on the schedule. Spring 2027: schedule not out yet.
Processes and threads (pthreads); system calls; concurrency (semaphore, mutex, monitors, and barrier synchronization); user-level memory management. Performance and correctness of concurrent systems. Deadlock detection and recovery; file systems.
Prerequisites
- Complete all of the following
- Complete 1 of the following
- Must have completed at least 1 of the following:
- Must have completed the following:
- Students must be in level 2B or higher
- Complete 1 of the following
- Enrolled in H-Software Engineering
- Enrolled in a BASc program
- Complete 1 of the following
Antirequisites
Leads to
Fall 2026 sections
| Section | Class | Enrolled | Meets |
|---|---|---|---|
| LEC 001 | 5012 | 142 / 148 | MF 08:30–09:50 Sep 10 11:30–12:20 Sep 24 11:30–12:20 Oct 8 11:30–12:20 Oct 29 11:30–12:20 Nov 12 11:30–12:20 Nov 26 11:30–12:20 |
| LAB 201 | 5014 | 41 / 42 | Sep 17 13:30–16:20 Oct 1 13:30–16:20 Oct 22 13:30–16:20 Nov 12 13:30–16:20 Nov 26 13:30–16:20 |
| LAB 202 | 5087 | 38 / 42 | Sep 14 13:30–16:20 Sep 28 13:30–16:20 Oct 19 13:30–16:20 Nov 9 13:30–16:20 Nov 23 13:30–16:20 |
| LAB 203 | 5272 | 37 / 38 | Sep 15 13:30–16:20 Sep 29 13:30–16:20 Oct 20 13:30–16:20 Nov 10 13:30–16:20 Nov 24 13:30–16:20 |
| LAB 204 | 5273 | 26 / 26 | Sep 16 13:30–16:20 Sep 30 13:30–16:20 Oct 21 13:30–16:20 Nov 11 13:30–16:20 Nov 25 13:30–16:20 |
| TUT 101 | 5013 | 142 / 148 | T 16:30–17:20 |
Resources
Around the web
Found by uwloo’s link finder, which checks that each page names ECE 252.
- ECE252 Other · ece.uwaterloo.ca · posted on r/uwaterloo Jul 2024 Remove
Reviewed on UW Flow
93% liked it33% easy94% useful
From 89 ratings and 18 comments on UW Flow. The most helpful comments, quoted as written, without names. Read them all on UW Flow.
I'm a Management Engineering student and I love this course. It is quite time consuming and the labs are no walk in the park, especially since this is my first time programming in a low-level language. That being said, one can definitely finish this course with a mark they desire, even if it's a 90+.
Expect to put in a lot of time, but it'll be worth it as you'll come out a better programmer.Nov 2020 · liked it · 1 found this helpfulOn UW FlowRemove this
Very interesting and useful (I was asked a lot of questions about concurrency in interviews and this course let me answer them). But the labs took a VERY long time to do. Make sure you do a good job on Lab 1 (catpng) because that is used a lot in the later labs.
Jul 2019 · liked it · 1 found this helpfulOn UW FlowRemove this
This course is amazing, and not hard to learn because Professor Zarnett has all the materials well organized.
Oct 2026 · liked itOn UW FlowRemove this
The most useful course for computer engineering students so far. The labs are long but are useful and relevant to the content learned in lectures. However the lab tests are brutal, they require you to have additional coding knowledge beyond the scope of ECE150, 250 and 252.
Dec 2025 · liked itOn UW FlowRemove this
Extremely useful course with cool concepts. Enjoyed it. Labs were a bit tedious at times.
Dec 2025 · liked itOn UW FlowRemove this
Discussed on r/uwaterloo
49 posts and comments in 44 threads mention ECE 252, February 2018 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
Most academically difficult term so far? 25 points, 39 comments
“Wondering which year/term was the most challenging for you? Preferably students in engineering or more specifically mech eng.”
u/RandomDude_102: “2B ECE for sure. ECE 298, 252, 224 had a lot of labs and deliverables”
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. :)”
Spring 2024
ECE 252 3 points, 1 comment
u/bomankleinn01: “I’ll be taking this course in the upcoming Fall, wanted to know what I should brush up on for this course (outside of basic C). Since the prerequisite is ECE 250: Data Structures and Algorithms, which common dsa concept(s) should I expect and hone in from this to best prepare. …”
ECE 252 Override? 3 points, 2 comments
u/bomankleinn01: “Is it possible to override into ECE 252 (Systems Programming and Concurrency) for those who are outside of Engineering? …”
u/ilikeapple437: “Most of the materials can be found here: https://ece.uwaterloo.ca/\smzahedi/crs/ece252/”
Winter 2024
ECE 2B S24 1 point, 2 comments
u/Tight_Document_1513: “Has anyone been taught by these professors during their 2B term? ECE298 - Pope ECE207 - Dabbagh ECE224 - Pellizoni R ECE208 - Harris ECE203 - Yang E-H ECE252 - Zarnett Any advice/tips would be appreciated.”
Fall 2023
snprintf 30 points, 8 comments
u/pooptagupta: “ECE 252”
Winter 2023
ECE 252 Slides that have been living in my head rent-free 63 points, 5 comments
How to get a course override 7 points, 9 comments
u/Thefuturyfututist: “I wanna take ECE 252 next term. I don’t have the prerequisite, ECE 250, but I have its anti requisite, MSCI 240. I know you need a prof to do a course override form. …”
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/_Burgr: “ece252 labs and ece224 labs were the most time consuming”
Spring 2022
Do you regret your engineering major choice? 18 points, 41 comments
“If so, why?”
u/SoundsLikeSomeHoopla: “Imo MGME is the easiest engineering program you can go through to still end up with a very good chance at big tech”
u/EquivalentParsnip319: “… Many MGTE students have taken ECE 252, for example. If you like the OR/IE courses, load up on them with your TEs: 433, 435, 452, 531, 551, 555. By the way, if you weren't in MGTE, you'd have to take CSEs in place of 211, 311, 263 and not other TEs. 261 is required econ by CEAB. …”
What are the top 2 most useful software courses? 2 points, 9 comments
“I am pursuing a computing option and I need to pick 2 software courses. Excluding the introductory Programming courses and a introductory data structures and algorithms course, what in your opinion …”
u/cormack_gv: “You say, "Excluding the introductory Programming courses and a introductory data structures and algorithms course" so I had no idea what courses you have already taken or meet the prerequisites for. …”
u/marcbisp: “… Right now I’m considering trying to take ECE 454 (Distributed Computing) which would mean I would also need to take either ECE 252 (Systems Programming and Concurrency) or SE 350 (Operating Systems) before that to fulfill prerequisite requirements. …”
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