ECE 351Compilers
- 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: not on the schedule. Spring 2027: schedule not out yet.
Programming paradigms, compilation, interpretation, virtual machines. Lexical analysis, regular expressions, and finite automata. Parsing, context-free grammars, and push-down automata. Semantic analysis, scope and name analysis, type checking. Intermediate representations. Control flow. Data types and storage management. Code generation.
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:
- Must have completed at least 1 of the following:
- Complete 1 of the following
Antirequisites
None listed.
Notes
Leads to
No course lists it as a requisite.
Fall 2026 sections
| Section | Class | Enrolled | Meets |
|---|---|---|---|
| LEC 001 | 5099 | 134 / 134 | WTh 13:00–14:20 Sep 28 16:00–17:20 Oct 26 16:00–17:20 Nov 16 16:00–17:20 Dec 7 16:00–17:20 |
| LEC 002 | 5158 | 59 / 134 | W 10:00–11:20 Th 08:30–09:50 Sep 23 16:00–17:20 Oct 21 16:00–17:20 Nov 11 16:00–17:20 Dec 2 16:00–17:20 |
| LAB 201 | 5246 | 193 / 268 | Online or by arrangement |
| TUT 101 | 5100 | 98 / 134 | T 19:00–19:50 |
| TUT 102 | 5159 | 95 / 134 | T 20:00–20:50 |
Resources
Around the web
Found by uwloo’s link finder, which checks that each page names ECE 351.
- ece351 lab manual Course notes · ece.uwaterloo.ca · posted on r/uwaterloo Jun 2015 Remove
Reviewed on UW Flow
76% liked it77% easy80% useful
From 93 ratings and 16 comments on UW Flow. The most helpful comments, quoted as written, without names. Read them all on UW Flow.
Labs are not fun. You are not really building a compiler that compiles something executable. The lecture material is boring (Parsing, grammar design, dataflow analysis). The only fun part is garbage collection, which is the last lecture.
Dec 2025 · didn’t like it · 2 found this helpfulOn UW FlowRemove this
Not sure if it was the prof or the course, but this wasn't that good
Oct 2025 · didn’t like it · 1 found this helpfulOn UW FlowRemove this
I hated the labs tbh
Jan 2026 · didn’t like itOn UW FlowRemove this
As other review have said this isn't the most practical course and you aren't making a compiler that creates an executable. Some of the concepts are interesting. The labs are a lot of work and strangely not worth that much (but for me you had to pass them to pass the course). Be very careful not to fall behind on the labs because they are mostly cumulative and falling behind will kill you.
Dec 2025 · didn’t like itOn UW FlowRemove this
Labs are of pretty poor quality, as others have states, feels juts like fillig parts of code someone deleted. The course focuses on parsing theory for over 75% of the course, with only two modules at the end of the class for optimization and codegen.
Nov 2025 · didn’t like itOn UW FlowRemove this
Discussed on r/uwaterloo
48 posts and comments in 41 threads mention ECE 351, December 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
CE 3B Elective Advice 3 points, 3 comments
u/ivythe1st: “I plan to take ECE 351, 356, and 358 (compilers, database systems, and computer networks), along with 307 (stats 2). I was thinking of doing another TE as well so I can free up space in 4A and 4B: I'm really interested in SYDE 522 (Foundations of AI) or MSE 446 (Intro to ML). …”
Winter 2024
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”
Spring 2023
ECE 3B TEs 9 points, 8 comments
u/NFLYoungGuy: “… I’m locked in on taking ece351 - compilers and ece358 - computer networks, but stuck between 320 and 356. Realistically I’d like database stuff more, but I think Paul Ward could be teaching in the fall and I’ve heard nothing but bad things. …”
Winter 2023
What’s been your easiest and hardest year so far? 10 points, 16 comments
u/TheRealArjun: “… 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 its only been one month...”
CE 4A TEs 8 points, 30 comments
u/OkCelery1514: “… Control Systems ECE 493, Special Topics: IOT Signal Processing I took ECE 358, ECE 356, & ECE 351 in 3B and performed at the average in all these courses. I took ECE 380, ECE 318, & ECE 327 in 3A and performed at the average in all these courses. …”
Spring 2022
ECE 3B advice 8 points, 10 comments
u/OkCelery1514: “I'm taking ECE 307, 351, 356, and 358 next term, and I'm wondering if anyone has any advice in terms of order of difficulty, time consumption, textbook needed, etc.?”
u/IcyProfit03: “… Make sure you can do most of the problems and try to ride the curve (I had him for 318 and that's how that course went) ECE 351 : Didnt take it but heard nothing but good things about it. …”
ECE 351: Compilers 3 points, 7 comments
u/namomontbleau: “Thoughts and opinions on this course? ECE208 was not my favourite course, barely got through it tbh so I’m a little concerned seeing it as a pre-req. Is this class proof heavy? What’s the general feeling on this course? Thanks! edit: prof will be Arie Gurfinkel for reference”
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. …”
Winter 2022
ECE transfer to Math advise 0 points, 2 comments
“I just finished my 2b term in ECE(CE) and I also applied to BMath, as I feel ECE courses are not very useful or interesting. …”
u/amxnday: “… i’m currently arranging my upcoming terms so that i’m only taking software related courses in 3B 4A 4B which is doable because there are a lot of software TEs like ECE 351, 356, 358, 452, 455, 457, 406, 451 etc.”
Relative difficulty for Computer Engineering 3B? 0 points, 8 comments
[deleted]: [deleted]
u/abracotam: “ECE 351?”
Fall 2021
Study tips for ECE students 2 points, 6 comments
“What are the best study tips you can offer a computer engineering student (going into 3A with a lot of labs). …”
u/AAstar2: “I was in ECE Stream 4 in CE. ECE 316 is hardest and ECE 380 is easiest. The rest are in moderate difficulty. Study post-midterm material first, then brush up on pre-midterm material. …”
u/AAstar2: “I was in the old curriculum. I think we took these in 3A. ECE 300A Electrical and Computer Engineering Practice ECE 316 Probability Theory and Random Processes ECE 380 Analog Control Systems ECE 327 Digital Hardware Systems (computer) ECE 351 Compilers (computer)”
u/uwgooseman: “… The labs for ECE 327 and ECE 351 take a lot of time (ECE 327 has fewer labs but they take longer ECE 351 labs take less time but there’s more of them) I think the 2023s got fucked with 298 being in 3a because ECE 298 is a dog shit course simply because it was poorly run. …”
Fall 2019
What can I do to get ahead for CE 3A 5 points, 1 comment
u/hairboi7878787: “I'm trying to get a decent average, so I want to begin reading about my courses. What can you tell me about ECE306 ECE327 ECE351 ECE380”
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