uwloo

ECE 459Programming for Performance

Units
0.50
Faculty
Engineering
Subject
Electrical and Computer Engineering

When it runs

  1. F24
  2. W25
  3. S25
  4. F25
  5. W26
  6. S26
  7. F26
  8. W27
  9. 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:
      • ECE252 - Systems Programming and Concurrency (0.50)
      • MTE241 - Introduction to Computer Structures and Real-Time Systems (0.50)
      • SE350 - Operating Systems (0.50)
    • Students must be in level 4A or higher
    • Complete 1 of the following

Antirequisites

None listed.

Leads to

No course lists it as a requisite.

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 00145720 / 149MF 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 00248930 / 149MF 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 00351090 / 149MW 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 7011858335 / 9999Online or by arrangement
LAB 20149700 / 447Online or by arrangement
TUT 10145730 / 149T 19:00–19:50
TUT 10248940 / 149M 20:00–20:50
TUT 10350200 / 149W 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 profiling

    Apr 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

Fall 2023

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. …”

View on RedditRemove this

Winter 2023

Fall 2022

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. …”

View on RedditRemove this

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. …”

View on RedditRemove this

Check it elsewhere for Fall 2026

Calendar versions

Undergraduate Calendar