uwloo

CS 241EFoundations of Sequential Programs (Enriched)

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 3 of the last 7 terms. Winter 2027: not on the schedule. Spring 2027: schedule not out yet.

Enriched version of CS 241.

Prerequisites

Antirequisites

  • Not completed nor concurrently enrolled in any of the following:
    • CS230 - Introduction to Computers and Computer Systems (0.50)
    • ECE351 - Compilers (0.50)

Leads to

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 0018422111 / 130TTh 11:30–12:50
TUT 1018424111 / 130W 14:30–15:20
TST 2018425111 / 130Nov 4 16:30–18:20

Resources

Around the web

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

Suggest a resource.

Reviewed on UW Flow

94% liked it46% easy92% useful

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

  • Amazing course, definitely better than 241, their assignments, midterms, and finals were annoying and weird. This course's assignments were still hard, but not too much of a leap and always felt doable, with great course support. Course notes were also super well-made, and the midterm was not a surprise at all. Enrolling in 241E was the best decision I've made at UW.

    Jan 2025 · liked it · 1 found this helpfulOn UW FlowRemove this

  • 2018 lebron

    Dec 2024 · liked it · 1 found this helpfulOn UW FlowRemove this

  • A great course and not very difficult as well. At the end, we have a fully working compiler with garbage collection.

    Dec 2024 · liked it · 1 found this helpfulOn UW FlowRemove this

  • Ts is a full time job

    May 2026 · liked itOn UW FlowRemove this

  • This course uses Scala to build a compiler from scratch, compiling Lacs, a simplified version of Scala, into MIPS. The compiler supports type checking, closure creation and invocation, tail-recursion optimization, and garbage collection. Unlike CS 241, this course is taught in a bottom-up order, starting from machine code and assembly, then moving through variable access, the stack, expressions, procedure calls, register allocation using graph colouring, closure creation, scanning, parsing with the CYK algorithm, type checking, and garbage collection using Cheney’s algorithm. The course explains in detail how each layer of a compiler is constructed step by step, and the notes include many…

    May 2026 · liked itOn UW FlowRemove this

Discussed on r/uwaterloo

87 posts and comments in 77 threads mention CS 241E, August 2015 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

compsci program 1 point, 16 comments

“could anyone tell me what sets apart waterloo's comp sci program from other comp sci programs in other universities? would be greatly appreciated :)”

u/Opening_Kiwi6441: “as far as the actual academics go, i’d say it’s on par with most other unis, like UofT, UBC, McGill, Mac, etc. …”

u/mreifslp: “… For CS 241E, it was a pretty standard introduction to compilation of programs. The entire course was basically building a compiler from scratch for a subset of Scala. …”

View on RedditRemove this

Spring 2024

Is CS 241E doable over co-op remotely? 8 points, 6 comments

u/Pretend_Photograph97: “I will move to Toronto for co-op next term but I also want to take CS 241E. Folks who have taken it before or taking it now - is it doable online? I understand that I will have to be in person for the midterm/final, but apart from that, can I do it without attending any classes? …”

u/UnboxTheCat: “Yes, CS241E is a lot easier than CS241. You can even get away by just reading the prof's lecture notes (the condensed pdf that's basically a compiler textbook), assume ur prof is Ondrej. CS241E was such an enjoyable course, not recommend doing it online tho.”

u/Pretend_Photograph97: “Thank you all for the replies. My other choice is to take CS241 in the winter term (no CS241E in the winter). Which is better: CS241e online or CS241 in person?”

u/Josh-Jo1: “CS 241E > CS 241 any day imo”

View on RedditRemove this

Winter 2024

Fall 2023

CS 240E/241E from CS 136 1 point, 2 comments

u/planarsimplex: “Are these two doable coming from CS 136 (after taking 246E)? Worried about the extra compilers stuff that was covered in 146 but not 136.”

u/Ylvy_reddit: “I'm currently taking CS 241E (and 246E, although there isn't really much of an overlap between those courses aside from the occasional remarks about C++ compilers) and I took taken CS 146 last year. …”

View on RedditRemove this

Winter 2023

Does CS get better in 2nd year? 0 points, 16 comments

“So I am in 1B CS and up till now nothing much interesting has been covered. The math courses are fine but most of the stuff taught is like bs and only some of the stuff looks like it's gonna be of …”

u/UnboxTheCat: “you may be interested in CS241E. a very cool compiler course taught by the genius prof Ondrej. u learn how stack, heap, assembly, garbage collector, closure, parsing tree work in details, and code ur own language in scala.”

View on RedditRemove this

Fall 2022

Spring 2022

Reviewing CS courses (Up until 2B) 42 points, 12 comments

“Since I started CS, I’ve wanted to review all the mandatory courses we’re meant to take for the first two years. Some good, some horrendous. …”

u/Osteospermum: “My stance on these courses MATH 247 = CS 146 > MATH 135 > MATH 146 > CS 241E > CS 246 > STAT 241 > CS 135 >>> CS 240E > MATH 239 > MATH 137 > CS 245 > CS 251 > MATH 235 >>> MATH 148 (online snew :( )”

View on RedditRemove this

CS students, what courses have you taken each term 9 points, 21 comments

“Inspired by https://www.reddit.com/r/uwaterloo/comments/v3b8nj/can\any\current\mathcs\students\let\me\know\their/ but recognizing that one term is a very narrow view, What courses have you taken each …”

u/Osteospermum: “1A CS 135, MATH 135, MATH 137, CLAS 104, ENGL 109 1B CS 146, MATH 146, MATH 148, STAT 230, CHEM 120 2A CS 245, CS 246, CS 251, MATH 235, MATH 247 Coop 1 CS 241E 2B CS 240E, PMATH 351, STAT 241, CLAS 252 Coop 2 MATH 239 I’m in 3A in the fall, going to (hopefully) take CS 341, …”

View on RedditRemove this

Winter 2022

Check it elsewhere for Fall 2026

Calendar versions

Undergraduate Calendar