uwloo

CS 145Designing Functional Programs (Advanced Level)

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.

CS 145 is an advanced-level version of CS 135.

Prerequisites

None listed.

Antirequisites

  • Not completed nor concurrently enrolled in any of the following:
    • CS115 - Introduction to Computer Science 1 (0.50)
    • CS135 - Designing Functional Programs (0.50)
    • CS137 - Programming Principles (0.50)
    • CS138 - Introduction to Data Abstraction and Implementation (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 001615764 / 100TTh 10:00–11:20
LEC 002634666 / 100TTh 13:00–14:20
TUT 101615862 / 100F 14:30–15:20
TUT 102593568 / 100F 11:30–12:20
TST 2016523130 / 200Oct 8 19:00–20:50
Nov 9 19:00–20:50

Resources

Around the web

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

Suggest a resource.

Reviewed on UW Flow

81% liked it59% easy70% useful

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

  • Course was enjoyable and somewhat easy until after the second midterm. Even with prior competitive programming experience, the difficulty and effort required to tackle lambda calc and friends is brutal. Expect spending 10+ hours on assignments weekly and a nuclear final. Would not recommend taking this over CS 135, unless you really really enjoy learning about pure cs and are confident in your programming skills.

    Dec 2022 · didn’t like it · 3 found this helpfulOn UW FlowRemove this

  • My favourite course of 1A! It was really interesting learning about the programming concepts and although half the assignments were pretty challenging, it was extremely satisfying once you got them right (you can see if your code pasts all the tests or not on a cooldown). Furthermore, the tight-knit (online) community for CS145 was sublime. It was incredible conversing with so many super smart people and the TAs (Rivers and Benjamin) were really helpful, knowledgeable, and welcoming. If you like CS and you have the option to take this course - TAKE IT!!

    Dec 2020 · liked it · 2 found this helpfulOn UW FlowRemove this

  • If you love CS and are confident in your programming abilities, this is the course to choose. Assignments are pretty simple, tests weren't.

    Nov 2015 · liked it · 2 found this helpfulOn UW FlowRemove this

  • Definitely worth taking compared to CS 135

    Mar 2015 · liked it · 2 found this helpfulOn UW FlowRemove this

  • Even if you are a begginner at programming, CS145 is the best introduction to Computer Science if you are willing to put the work in. The TAs are very helpful and the assignments were interesting but fairly challenging (atleast for me).
    Put in the work and you will get smarter. ENROLL IN CS145!!!!

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

Discussed on r/uwaterloo

660 posts and comments in 395 threads mention CS 145, September 2010 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

How cooked am I next term 33 points, 27 comments

“https://preview.redd.it/sja2uyioa4ae1.png?width=652&format=png&auto=webp&s=da6f9cb5427cd275561128caa48f6851333be88b I am probably going to regret this. Is this too big of a course load?”

u/shitfartpissballs: “148 is absolutely fucked”

u/Outside_Buddy6449: “… Also, if you're into CS, you should take CS 146, it's a lot of fun and imo a lot better than CS 145. MATH 146 is usually okay but I heard Spiro can be hard if you have him. …”

u/No_Carrots_: “I did not take cs 145 (took 135), and didnt get 90% to transfer up into 146 sadly”

View on RedditRemove this

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 145 (and I think CS 135), it covers functional programming, which I'm pretty sure the only other Canadian uni that starts with it is UBC. CMU also has a similar course. Other unis might teach some of the content in third year and above. …”

View on RedditRemove this

Failed CS 135 54 points, 28 comments

“Grades just came out and I got like a 46 final on CS 135. I’m extremely disappointed and lowkey considering switching out of CS. Came into 1A with high 90s in highschool. …”

u/ramen_kui_ni_ikou_ze: “I only got 87 in cs 145 without much studying I think you need to do more projects and leetcode, I just continued doing what I loved and coursework just became natural”

u/StarGazingHomies: “I only got 99 in CS 145 without studying at all, I think you need to NOT do projects or leetcode, I just continued doing what I loved (not projects, not leetcode) and coursework just became natural. /hj”

View on RedditRemove this

Should I drop to CS146 1B 1 point, 7 comments

u/Master-Personality26: “I really like working on personal projects, so I want to ask if CS136 will take less time for me to complete and get similar marks to CS146. I am in CS145 right now, and I think it's fine (I got \85 on midterm). Assignments for CS145 normally take around 2 to 3 hours. Thanks!”

View on RedditRemove this

GPA boosters 9 points, 14 comments

“Basically the title. Looking for some super easy/"common sense" courses to take. I've heard about the CLAS courses and any other suggestions would be appreciated!”

u/Dazzling-Deer-9689: “CS145 I heard is crazy easy”

View on RedditRemove this

Dropping CS135 :( 30 points, 23 comments

“As a CS major with no programming experience, CS135 so far has been hella tough. I did really well (98%) on assignment 1 which was about functions. …”

u/bee_like_honey: “on a more helpful note tho, cs135 is more of an introduction to computer science then it is to programming. …”

u/NQ241: “Is cs145 also more of an introduction?”

u/bee_like_honey: “personally didnt take cs145 so idk but I would assume its more abstract and heavy in content so probably? idk”

u/ChasingZephyr: “Probably not, didn't take CS145, but I remember someone who did, was doing binary trees by Assignment 2 or something. I would say for CS145, you should at least have some programming experience...”

View on RedditRemove this

Check it elsewhere for Fall 2026

Calendar versions

Undergraduate Calendar