uwloo

CS 442Principles of Programming Languages

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: scheduled, 2 lecture sections. Spring 2027: schedule not out yet.

An exposure to important concepts and issues in contemporary programming languages. Data types, abstraction, and polymorphism. Program structure. Lambda calculus and functional programming, logic programming, object-oriented programming. Semantics of programming languages. Critical comparison of language features and programming methodologies using examples drawn from a variety of programming languages including Lisp, Prolog, ML, Ada, Smalltalk, Icon, APL, and Lucid. Programming assignments involve the use of some of these languages.

Prerequisites

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 00156100 / 70TTh 13:00–14:20
LEC 701219432 / 9999Online or by arrangement
TST 10164100 / 70Mar 1 16:30–18:20

Resources

Around the web

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

Suggest a resource.

Reviewed on UW Flow

77% liked it47% easy66% useful

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

  • Varies a lot depending on the professor. In Professor Richards offering, assignments could look daunting but usually weren't so bad once you get your head around them. Overall, cool course that teaches you lots of different ways to think about programming, which in my opinion is useful.

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

  • Super interesting course! You learn the theoretical underpinnings of 1980-era programming languages. Very neat. Assignments are a lot of fun, and are well suited to the material. Midterm felt a bit too long.

    Feb 2020 · liked it · 1 found this helpfulOn UW FlowRemove this

  • Very complex course that requires learning a deep understanding of the concepts in order to succeed in it. I think taking it will prove to be extremely useful in the rest of my life.

    Apr 2014 · 1 found this helpfulOn UW FlowRemove this

  • (Brad Lushman, W26) Great course! Content is kind of non-trivial but the midterm, assignments, and final were mostly easy -- I'd say if you understood the content like, 70% well you'd do great on each.

    Apr 2026 · liked itOn UW FlowRemove this

  • Under Brad Lushman there was a heavy focus on lambda calculus and functional programming (like 80% of the course), which was challenging but I definitely learned a lot. The assignments were mostly manageable, with a fair midterm and final. For both exams, you could bring a cheatsheet and had some choice in which questions you wanted to answer (only had to answer 8 out of 9 for the midterm and 8 out of 12 for the final).

    Apr 2026 · liked itOn UW FlowRemove this

Discussed on r/uwaterloo

112 posts and comments in 92 threads mention CS 442, January 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

Winter 2024

Exchange at UWaterloo advice 10 points, 1 comment

“So as in the title, I am going to do an exchange at UWaterloo in Fall 2024 term. I have some questions about it to get some advice from you, thanks, especially about the courses as the deadline for …”

u/rngpenguin: “… maybe also CS 442 is a bit harder but really unique and interesting. 3. CLAS 201 is great, intro course on ancient greece. really easy too! 4. …”

View on RedditRemove this

Should I take CS 365 or CS 442? 3 points, 2 comments

u/EducatedImagination: “… However, based on my schedule, I have the option to take only one of the following two courses: CS 365 or CS 442. I am wondering which one is more interesting conceptually and which one is more useful practically. …”

u/2kofawsome: “… CS365 (https://outline.uwaterloo.ca/view/nny8zs) will cover undecidability from CS245 and greatly expand on the complexity topics from CS341 CS442 (https://outline.uwaterloo.ca/view/n8uwb9) is for those "who loved CS245" according to the prof this term in the first lecture”

View on RedditRemove this

Fall 2023

make up final for cs 246 cs 245 ? 3 points, 4 comments

“Hey does anyone know if I can do a make up final for CS 246, 245 ? because of some medical reasons I can only do 2 out of the 4 finals that I have, ie. I won't be able to do CS 245 and CS 246 final. …”

u/winniejy: “I think they will give you a mark of INC and you will have to take the exam the next term (but you don't necessarily have to take 4 months off).”

u/2kofawsome: “… All the previous ones + CS348, CS360, CS370, CS442, CS449, CS487, CS492 All in all, it won't be the end the world, but it will make things way harder to plan courses.”

View on RedditRemove this

Spring 2022

Is there any 4xx CS course that can be taken safely on a coop term? 4 points, 9 comments

“Currently, I am thinking about taking (one of) CS451 and CS488. I wonder if these 2 courses will provide enough information online, so I don't need to attend lectures physically. …”

u/tendstofortytwo: “I don't know how much Gregor Richards plans to change his CS442 offering, but if it's like winter then that course is complete-able without attending a single lecture. …”

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/BubblesfromSunnyvale: “… 227 2B: CS 240, CS 241, CS 251, MATH 239, STAT 231 Co-op 3: CS 341 3A: CS 350, CS 480, CS 442, PMATH 340, ECON 371, CO 487 3B: CO 250, MUSIC 140, CS 360, CS 458, CS 370 4A: CS 444, CS 462, CO 331, MUSIC 246 4B: CS 486, CO 342, CO 380, GEOG 181 In 4B now, would be happy to talk …”

View on RedditRemove this

CS course suggestions because advisors didn’t help 2 points, 9 comments

“Hi there! In 2B CS. For some particular reasons, I only have CS courses left as part of my degree requirements. I’ve taken CS 135, 136, 245, 246, and 251. …”

u/2kofawsome: “I think you can take CS 346, CS 348, CS 370, CS 457 But, I dont think its possible in 2B CS to have only CS courses left. …”

u/2kofawsome: “… After you take 240 and 241 this term it will open up CS 341, 349, 350, 360, 365, 442, 449, 487, 492 and taking 370 would open CS 475, 476, 479, 484 for next term, so after this term you will have tons of options. …”

View on RedditRemove this

Winter 2022

CS452 (Trains) + CS480 (ML) = overkill? 5 points, 21 comments

“Hey all, I'm trying to plan my future course pathway and was wondering on any upper-year / alums' opinions on taking CS452 + CS480 in the same semester (alongside 3 other bird courses). …”

u/AutomaticClass7289: “It's overkill....plan it out so that u take them one by one in each term”

u/KnowledgeVampire: “Currently the plan is CS454, 456 for summer term, CS448, CS442, CS444, CS451 for a winter term.”

View on RedditRemove this

Check it elsewhere for Fall 2026

Calendar versions

Undergraduate Calendar