uwloo

CS 343Concurrent and Parallel Programming

Units
0.50
Faculty
Mathematics
Subject
Computer Science

When it runs

  1. F24
  2. W25
  3. S25
  4. F25
  5. W26
  6. S26
  7. F26
  8. W27
  9. S27

Ran in 6 of the last 7 terms. Winter 2027: scheduled, 2 lecture sections. Spring 2027: schedule not out yet.

An introduction to concurrent and parallel programming, with an emphasis on language constructs. Major topics include exceptions, coroutines, atomic operations, critical sections, mutual exclusion, semaphores, high-level concurrency, deadlock, interprocess communication, process structuring, shared memory, and distributed architectures. Students will learn how to structure, implement, and debug concurrent programs.

Prerequisites

Antirequisites

None listed.

Leads to

No course lists it as a requisite.

Fall 2026 sections

Enrolment from UW Open Data, which can trail Quest by up to two days. Instructors and rooms: Schedule of Classes.
SectionClassEnrolledMeets
LEC 001609884 / 100TTh 13:00–14:20
LEC 002617178 / 100TTh 14:30–15:50
TST 1015928162 / 200Nov 4 19:00–20:50

Winter 2027 sections

Enrolment from UW Open Data, which can trail Quest by up to two days. Instructors and rooms: Schedule of Classes.
SectionClassEnrolledMeets
LEC 00156960 / 90TTh 10:00–11:20
LEC 701218644 / 9999Online or by arrangement
TST 10162330 / 90Mar 3 19:00–20:50

Resources

Around the web

Found by uwloo’s link finder, which checks that each page names CS 343.

Suggest a resource.

Reviewed on UW Flow

65% liked it40% easy67% useful

From 266 ratings and 58 comments on UW Flow. The most helpful comments, quoted as written, without names. Read them all on UW Flow.

  • This course has ruined how I feel about queues, bathrooms, sodas, and so much more. My friends think I am slightly deranged now. I walk up to the William's in the Plaza and someone lets me go ahead and I back off at the same time and I go "holy shit this is just like livelocks from CS343". Then someone walks in front of both of us and I go "holy shit this just like barging from CS343". Then I talk to my friends and they stop saying what they were saying to talk to me and I'm like "holy shit this is just like raising an exception to another task in"
    10/10 would recommend.

    Dec 2022 · liked it · 19 found this helpfulOn UW FlowRemove this

  • Peter Buhr is an engaging lecturer whose explanations of concurrency fundamentals are memorable. His enthusiasm for the subject keeps lectures lively and accessible. Unfortunately, the rest of CS 343 does not share this polish. The assignments and course structure often feel disconnected from his teaching quality, leaving students frustrated by the workload rather than deepened in understanding.
    Over the last four assignments, much of my time has been spent on boilerplate code rather than on concurrency itself. Instead of focusing on synchronization, mutual exclusion, and task coordination, I’ve spent hours wiring up parsing logic, argument handling, and I/O scaffolding. The conceptual…

    Sep 2025 · didn’t like it · 13 found this helpfulOn UW FlowRemove this

  • A challenging, useful, and interesting course in concurrency and control flow.
    The assignments are some of the hardest in the CS department (biweekly and easily 20-30 hours each, if you make no mistakes and understand all the content perfectly).
    A lot of people complain about uC++. However, this course is taught in uC++ because no other language has all the concurrency mechanisms that uC++ has (uC++ is just a teaching language). After taking this course, you're able to write concurrent programs in a number of different languages (C++, Go, Rust, Java, ...) because of all the different mechanisms used.
    This course also requires a high level of attention to detail in the code itself (both…

    Dec 2022 · liked it · 9 found this helpfulOn UW FlowRemove this

  • ragebait course

    Nov 2025 · didn’t like it · 4 found this helpfulOn UW FlowRemove this

  • Long assignments, only spent 1% of the time thinking about concurrency, the rest of the time was spent debugging obscure micro c++ details. The course also spent a great deal of time discussing some of the less relevant parts of concurrency, at least in terms of how most people will use it. That's fine and all, but it's only useful-ish. Pretty much everything was already covered in the operating systems course, so basically this course only adds a couple new concurrency styles (ex. actors) and goes deeper into locks.

    Oct 2019 · didn’t like it · 4 found this helpfulOn UW FlowRemove this

Discussed on r/uwaterloo

342 posts and comments in 253 threads mention CS 343, February 2012 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

CS 349 vs 348 vs 370 vs 442 vs 365 2 points, 6 comments

“Which one should I take for the most useful course alongside other courses (one which adds the most value to my degree)? …”

u/shrimpFriedRice49: “… Quick aside, my personal favorite from 300 level cs courses is cs343 - concurrent and parallel programming. Its hard, but extremely useful. …”

View on RedditRemove this

Racket and uCplusplus on resume 2 points, 6 comments

u/Upbeat_State_8122: “Guys my friend showed me her resume and she has racket and ucplusplus (cs343 language made by Peter buhr) on her resume can u guys pls tell her in the comments that's not a good idea pls she won't listen to me”

u/Dazzling-Deer-9689: “Racket and cplusplus are valid languages??? Ur friend is unlucky to have such an ignorant fool like you as an acquaintance!”

u/Upbeat_State_8122: “Read the post properly before you call others ignorant fools, i said ucplusplus, NOT c++, an esoteric language known only to the ones who take cs 343”

View on RedditRemove this

CS 343 Video Lectures & Midterm Advice 3 points, 0 comments

u/S3132: “Hi everyone! I’m taking CS 343 this term and finding it pretty challenging. I missed a few lectures, so I’m wondering if anyone could share the video lectures if they don't mind, thanks a lot! (Also, any tips for the midterm would be really appreciated! Thanks in advance! 🌷”

View on RedditRemove this

CS 343 2 points, 0 comments

u/Organic_Midnight1999: “Does anyone know where I can find the course notes? I tried looking for them but couldn’t find anything. Also, is there any textbook that is followed for the course (non-UW author).”

u/breakbake: “https://student.cs.uwaterloo.ca/cs343/F24/notes.pdf The course website also has relevant textbooks and videos”

View on RedditRemove this

Spring 2024

Interesting courses for CS upper year (3A+) 13 points, 14 comments

“I am in CS, and I am just (after exams) done with with 2B. I only have CS 341 and CS 350 left in the mandatory courses for CS, and I will be on my 3A term in the coming Winter term. …”

u/james_dev_123: “… CS 343 was also good. Concurrency is very useful. You also shouldn't graduate without knowing anything about networking. It's kind of embarrassing if you have a CS degree but you don't even know how DNS or TCP works. So, CS 454 seems like an obvious choice. But... …”

u/james_dev_123: “… CS 343, on the other hand, is quite a hard course. The assignments were extremely difficult, as far as I remember. It is comparable to MATH 239 or CS 241. But... it's definitely useful. …”

View on RedditRemove this

CS499T 2 points, 0 comments

u/imokipullup: “Anyone have experience taking 499T? What's the workload like compared to other courses - CS350, CS 343, CS 452 Also it would be cool to see some examples of old CS499 theses, I remember finding some on the internet but I lost the link 😂😂😂😂😂”

View on RedditRemove this

Winter 2024

IMPORTANT CS courses 8 points, 15 comments

“Hey: I finished all my mandatory CS courses and now I need to consider what upper year classes are USEFUL. I don't care if the course is "fun" or not. …”

u/rngpenguin: “CS 343 - concurrent programming is a great skill to have in many swe areas”

u/rngpenguin: “… ive spent two coop terms at one of {tesla, apple, nvidia} (dont want to doxx myself) working on runtime / systems level software and knowledge from cs 343 has been helpful in a lot of my work. …”

u/Fatdayuu: “CS 343, this is very important in industry based on my coop experience as a math student”

View on RedditRemove this

Check it elsewhere for Fall 2026

Calendar versions

Undergraduate Calendar