ECE 459Programming for Performance
- Units
- 0.50
- Faculty
- Engineering
When it runs
- F24
- W25
- S25
- F25
- W26
- S26
- F26
- W27
- S27
Ran in 2 of the last 7 terms. Winter 2027: scheduled, 4 lecture sections. Spring 2027: schedule not out yet.
Profiling computer systems; bottlenecks, Amdahl's law. Concurrency: threads and locks. Techniques for programming multicore processors; cache consistency. Transactional memory. Streaming architectures, vectorization, and SIMD. High-performance programming languages.
Prerequisites
- Complete all of the following
- Must have completed at least 1 of the following:
- Students must be in level 4A or higher
- Complete 1 of the following
- Enrolled in H-Software Engineering
- Enrolled in a BASc program
Antirequisites
None listed.
Leads to
No course lists it as a requisite.
Winter 2027 sections
| Section | Class | Enrolled | Meets |
|---|---|---|---|
| LEC 001 | 4572 | 0 / 149 | MF 08:30–09:50 Jan 15 16:00–17:20 Feb 5 16:00–17:20 Mar 5 16:00–17:20 Mar 26 16:00–17:20 |
| LEC 002 | 4893 | 0 / 149 | MF 11:30–12:50 Jan 22 16:00–17:20 Feb 12 16:00–17:20 Mar 12 16:00–17:20 Apr 2 16:00–17:20 |
| LEC 003 | 5109 | 0 / 149 | MW 17:30–18:50 Jan 15 17:30–18:50 Feb 5 17:30–18:50 Mar 5 17:30–18:50 Mar 26 17:30–18:50 |
| LEC 701 | 1858 | 335 / 9999 | Online or by arrangement |
| LAB 201 | 4970 | 0 / 447 | Online or by arrangement |
| TUT 101 | 4573 | 0 / 149 | T 19:00–19:50 |
| TUT 102 | 4894 | 0 / 149 | M 20:00–20:50 |
| TUT 103 | 5020 | 0 / 149 | W 19:00–19:50 |
Reviewed on UW Flow
86% liked it86% easy85% useful
From 51 ratings and 12 comments on UW Flow. The most helpful comments, quoted as written, without names. Read them all on UW Flow.
BEST (most relevant) course I took in all of my undergrad.
Assignments take long (> 20hrs each for me) but super interesting:
1: parallelization via threads vs non-blocking I/O
2: openMP and compiler optimizations
3. GPU programming (OpenCL)
4. load-balancing, queuing theory, and profilingApr 2019 · liked it · 4 found this helpfulOn UW FlowRemove this
Despite being easy to do well in, I didn't get much out of this course. There were so many digressions and sidenotes making lecture content frustrating to follow. Lots of the programming tasks were very obviously deliberately slowed down programs that we had to fix and assignment marking was odd and inconsistent. All content that wasn't review from past courses was covered at too shallow of a depth to be useful in industry despite that being the common praise for this course. I think for most (but not all) students, they would benefit more from a standard technical elective like compilers or graphics which goes deeper into a specific topic instead of P4P.
Feb 2020 · didn’t like it · 2 found this helpfulOn UW FlowRemove this
Jeff Zarnett wrote this course and he's great, but Patrick Lam has no knowledge of the course content and puts no effort into lecturing. He shows up to class and tells us he has no idea what this content is and that he hasn't reviewed the slides yet. Proceeds to spend 10 minutes figuring out how the code samples work and spends another 10 minutes bitching about Trump and Palantir. We're multiple lectures behind Zarnett's section.
Mar 2026 · didn’t like it · 1 found this helpfulOn UW FlowRemove this
This course combines concepts from lots of prior courses (eg computer architecture, operating systems, concurrency) together as a cohesive whole. Lots of topics are covered at a fairly shallow depth; if you're in SE you've likely been exposed to much of it already in earlier courses. 60% of the mark for this course comes from programming assignments and the exams have a fairly low weight.
Apr 2017 · liked it · 1 found this helpfulOn UW FlowRemove this
Excellent course, definitely take it. A bit slow at times, and really great notes mean you don't have to go to lecture (so few people do) but lectures are great if you do. Assignments are tough but interesting and rewarding, and the course teaches actually useful stuff. Great elective.
Apr 2017 · liked it · 1 found this helpfulOn UW FlowRemove this
Discussed on r/uwaterloo
55 posts and comments in 48 threads mention ECE 459, August 2014 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.
Spring 2024
Technical Elective offered this term to take while being away from waterloo 6 points, 1 comment
u/uni_ca_007: “… For example, I took ECE 459 last term, and it would've been a perfect candidate, with call the lectures being on youtube from covid times, and no in person deliverables other than the final exam. Do you know any courses offered this term that come close? …”
Fall 2023
ECE 4B Electives 1 point, 0 comments
u/namomontbleau: “Opinions on ECE423 and ECE459? How did you find the course, what was the workload like? Do both or do one? etc!!”
Is ECE 406 do-able on co-op term? 1 point, 3 comments
u/Safi_world: “… to be online): MSCI 446, SYDE 522, SYDE 572, ECE 417, ECE 451, ECE 452, ECE 453, ECE 457B, ECE 459. …”
CS vs SE 1 point, 12 comments
“I’m currently a 3B CS student and I have the option to transfer into SE at 2B level. This means my graduation is delayed by a year. Should I do it or not?”
u/atifmi: “… with SE you have technical electives you may take in both engineering and CS, ECE 459 comes to mind as an S tier ECE course. CE you will have to take more rf and architecture courses. &x200B; CS with AI specialization lets you take some interesting TE in the engineering faculty. …”
Where to learn stuff like file systems, nvidia GPU monitoring etc 1 point, 3 comments
“I’m not really sure what to call the things mentioned in the title, but for context a lot of my co-ops have been related to machine learning. …”
u/atifmi: “ECE 459 Programming for performance covers CUDA and some file system stuffs. You are better off doing some self learning rather than trying to go through academia.”
Winter 2023
What’s been your easiest and hardest year so far? 10 points, 16 comments
u/TheRealArjun: “EZ: 1B - CHEM 123, MATH 138, PHYS 122/122L, PHYS 124, PHYS 175/175L Not EZ (tied in difficulty tbh): 3B - AMATH 353, AMATH 373, CS 436, CS 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 …”
4B CE technical electives 1 point, 1 comment
u/Forsaken_Dark_1353: “looking for opinions on course load, difficulty, projects etc in the following classes: ECE423, ECE459,ECE495, and ECE406. has anyone taken 423? there is no information out there for this one”
Looking for a tutor to help me with Rust 4 points, 5 comments
“I’m an upper year but I have weak programming fundamentals and learning rust is kicking my butt. Please DM if you think you can help!”
u/amxnday: “ece459?”
Fall 2022
To anyone taking ECE 459 next term 0 points, 0 comments
u/Co-opPlease: “Hi, would you like to swap sections with me? I'm in the Monday/Wednesday 5:30pm-6:50pm lecture slot (no early mornings!) with Prof. Huanyi Chen, tutorial 7:00pm on Thursday. …”
Spring 2022
A GUIDE ON HOW TO PLAN AN OPTION 29 points, 15 comments
u/1000Ditto: “Hey all, here's an example (by yours truly) of how to plan an option. as someone who has been trying to get many options in but having a hard time, might as well write down my process so others can kind of benefit from it. …”
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. …”
What kind of laptop will do just fine for a Physics Undergraduate at UWaterloo? 3 points, 21 comments
u/TheRealArjun: “Anything that turns on is good enough. No need to go out all out on a crazy laptop.”
u/TheRealArjun: “… In that case you could just use the MFCF GPU servers, you could also use the ECE servers but I'd just ask Eng IT in advance so you don't mess up someones ECE 459 lab lol. …”
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