CS 145Designing Functional Programs (Advanced Level)
- Units
- 0.50
- Faculty
- Mathematics
- Subject
- Computer Science
When it runs
- F24
- W25
- S25
- F25
- W26
- S26
- F26
- W27
- 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
Leads to
Fall 2026 sections
| Section | Class | Enrolled | Meets |
|---|---|---|---|
| LEC 001 | 6157 | 64 / 100 | TTh 10:00–11:20 |
| LEC 002 | 6346 | 66 / 100 | TTh 13:00–14:20 |
| TUT 101 | 6158 | 62 / 100 | F 14:30–15:20 |
| TUT 102 | 5935 | 68 / 100 | F 11:30–12:20 |
| TST 201 | 6523 | 130 / 200 | Oct 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.
- CS 145: Home Course website · student.cs.uwaterloo.ca Remove
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”
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. …”
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”
CS 146 after cs 135? 3 points, 1 comment
u/monkerpopo: “Does anyone have experience with taking cs 146 after cs 135? Are there any major knowledge gaps that I should review since I didn’t take CS 145?”
Withdrawing from CS145 3 points, 12 comments
u/Physical_Scholar_325: “If I WD from cs145, can I take 135 and 136 simultaneously in the next term? If not, then how do you catch up? Has anyone done it before?”
u/Altruistic-Peace3715: “Have you talked to your CS 145 prof? Many of the Faculty of Math advanced courses are curved. Is it possible that you are doing better than you think?”
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!”
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”
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...”
I am lonely 17 points, 2 comments
u/Disastrous_Escape933: “CS 145 is taking up all my time, now my friends don't want me anymore because I don't shower as I spend all my time growing and shrinking my trees. What should I do?”
Is there a curve for CS 145? 2 points, 1 comment
u/Super_Juicy_Fruit: “With troy vasiga”
IAmA UW CS student that doesn't shower. AMA! 19 points, 21 comments
u/SpaceEnthusiast3: “Were you in my CS 145 class”
u/uwcsdontshower: “Nope, I'm not a first year student. Also, I have never taken CS 145.”
Where is CS 145 lecture? 1 point, 1 comment
u/fisherfam: “Look on quest. Enroll >> search for classes (make sure you have the correct term selected). Then look up CS 145.”
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