CS 341Algorithms
- Units
- 0.50
- Faculty
- Mathematics
- Subject
- Computer Science
When it runs
- F24
- W25
- S25
- F25
- W26
- S26
- F26
- W27
- S27
Ran in 7 of the last 7 terms. Winter 2027: scheduled, 5 lecture sections. Spring 2027: schedule not out yet.
The study of efficient algorithms and effective algorithm design techniques. Program design with emphasis on pragmatic and mathematical aspects of program efficiency. Topics include divide and conquer algorithms, recurrences, greedy algorithms, dynamic programming, graph search and backtrack, problems without algorithms, NP-completeness and its implications.
Prerequisites
- Complete all of the following
- Must have completed at least 1 of the following:
- Must have completed at least 1 of the following:
- Must have completed at least 1 of the following:
- Must have completed at least 1 of the following:
- Enrolled in H-BBA & BCS Double Degree, H-Computer Science (BCS), H-Computer Science (BMath), JH-Computer Science (BCS), JH-Computer Science (BMath), H-Computing & Financial Management, H-Data Science (BCS), H-Data Science (BMath), or H-Software Engineering
Antirequisites
Leads to
Fall 2026 sections
| Section | Class | Enrolled | Meets |
|---|---|---|---|
| LEC 001 | 6003 | 83 / 100 | TTh 13:00–14:20 |
| LEC 002 | 6546 | 99 / 100 | TTh 11:30–12:50 |
| LEC 003 | 6547 | 86 / 100 | TTh 10:00–11:20 |
| LAB 101 | 6358 | 99 / 100 | F 10:30–11:20 |
| LAB 102 | 6438 | 83 / 100 | F 11:30–12:20 |
| LAB 103 | 5934 | 86 / 100 | F 13:30–14:20 |
| TST 201 | 6549 | 268 / 300 | Oct 5 18:00–19:50 Nov 9 18:00–19:50 |
Winter 2027 sections
| Section | Class | Enrolled | Meets |
|---|---|---|---|
| LEC 001 | 5607 | 0 / 90 | TTh 10:00–11:20 |
| LEC 002 | 5845 | 0 / 90 | TTh 11:30–12:50 |
| LEC 003 | 5891 | 0 / 90 | TTh 13:00–14:20 |
| LEC 004 | 5945 | 0 / 90 | TTh 14:30–15:50 |
| LEC 701 | 2185 | 273 / 9999 | Online or by arrangement |
| TUT 101 | 5997 | 0 / 90 | F 10:30–11:20 |
| TUT 102 | 5998 | 0 / 90 | F 11:30–12:20 |
| TUT 103 | 5999 | 0 / 90 | F 13:30–14:20 |
| TUT 104 | 6000 | 0 / 90 | F 14:30–15:20 |
| TST 201 | 5912 | 0 / 360 | Feb 22 18:00–19:50 |
Resources
Around the web
Found by uwloo’s link finder, which checks that each page names CS 341.
- CS 341: Algorithms Course website · student.cs.uwaterloo.ca Remove
- CS 341 - Algorithms - Spring 2025 Course website · Spring 2025 · cs.uwaterloo.ca · from Lap Chi Lau’s site Remove
- CS 341: Algorithms Course website · Spring 2024 · cs.uwaterloo.ca · from Shalev Ben-David’s site Remove
- CS 341 - Algorithm - Winter 2023 Course website · Winter 2023 · cs.uwaterloo.ca · from Lap Chi Lau’s site Remove
- CS 341 - Algorithms - Spring 2021 Course website · Spring 2021 · cs.uwaterloo.ca · from Lap Chi Lau’s site Remove
- CS 341 - Algorithms - Spring 2017 Course website · Spring 2017 · cs.uwaterloo.ca · from Lap Chi Lau’s site Remove
- CS 341 - Algorithms - Winter 2016 Course website · Winter 2016 · cs.uwaterloo.ca · from Lap Chi Lau’s site Remove
- CS341, Winter 2011 Course website · Winter 2011 · cs.uwaterloo.ca · from Ming Li’s site Remove
12 more links
- CS 341 | SCS Course website · cs.uwaterloo.ca · from Jonathan Buss’s site Remove
- notes Course notes · cs.uwaterloo.ca · from Shalev Ben-David’s site · gone now; archived copy from Jun 2021 Remove
- Algorithms Course notes · plett.dev · from Josiah Plett’s site, CS webring Remove
- CS341 Course Notes Course notes · jaidenratti.com · from Jaiden Ratti’s site, CS webring Remove
- Course Highlight Course notes · david-duan.me · posted on r/uwaterloo Mar 2022 Remove
- CS 341 notes Course notes · github.com · posted on r/uwaterloo Jun 2016 Remove
- CS341 | Anthony Zhang Course notes · anthony-zhang.me · posted on r/uwaterloo Jul 2020 Remove
- lecture notes Course notes · agony.retrocraft.ca · posted on r/uwaterloo Jan 2024 Remove
- cs341-notes: Class notes for CS 341 in the Fall '11 term at the University of Waterloo. Course notes · github.com · by mvisser on GitHub Remove
- Remove
Lecture videos, 3 pages youtube.com · from UWaterloo Links (SE)
- Graph Traversal (Depth/Breadth First Search) - VisuAlgo Other · visualgo.net · from UWaterloo Links (SE) Remove
- CS 341 | SCS Other · cs.uwaterloo.ca · posted on r/uwaterloo Jun 2021 Remove
Reviewed on UW Flow
87% liked it52% easy97% useful
From 772 ratings and 109 comments on UW Flow. The most helpful comments, quoted as written, without names. Read them all on UW Flow.
First I want to say something about the comment below which says Algorithm should be an elective for CS students, I will suggest you change to SE because you clearly don't know what is "science" in CS.
The course is not in depth and touches a lot of things. The assignments and exams are SO STUPID LONG. They do not provide any solution for assignments midterms or ect, they ask us to write idea, proof of correctness, runtime and pseudocode. I am pretty sure they will just look at the questions and say yes it's easy to solve it but have no clue how hard is it to write it formallyDec 2024 · didn’t like it · 4 found this helpfulOn UW FlowRemove this
This course was a sh!t-show. The profs running it (Petrick and Buss) are terrible at teaching. Classes were so empty at the end of the term that there were only 1-2 students in Buss's sections. Everyone else just decided to study off slides and CLRS. Marking was so late to be returned (it's Dec 29th and A5 marking isn't done; final marking hasn't even started) after TAs quit their jobs that the ISC (Sylvie, bless her heart) wrote a review on all the factors that went wrong. The assignments were long and hard. The exams were relatively less scary. There's a reason I'm posting this anonymously: I'm scared of retribution from these profs who shouldn't be teaching at Waterloo.
Dec 2022 · didn’t like it · 4 found this helpfulOn UW FlowRemove this
Took this as an elective... It honestly wasn't that hard. The graph theory stuff was interesting!!
Apr 2018 · liked it · 3 found this helpfulOn UW FlowRemove this
The most useful CS I've ever taken..... Both useful for academic and interview. Be sure not to miss anything!
Jul 2019 · liked it · 2 found this helpfulOn UW FlowRemove this
Fuck this course
Aug 2018 · didn’t like it · 2 found this helpfulOn UW FlowRemove this
Discussed on r/uwaterloo
1,528 posts and comments in 1,095 threads mention CS 341, June 2011 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
MR GOOSE GIVE ME MY FUCKING CS341 MARKS 29 points, 7 comments
u/UWFoieGrasChef: “FUCK MR GOOSE AND HIS WHOLE FAMILY”
Bad CS student needing advice on doing math research and double majoring? 1 point, 2 comments
“I’m a 4B CS major not in coop who would normally graduate next term but I want to try adding a math major and adding years to my undergrad to do research. …”
u/amsyed10385: “… So if you liked math 239, math 235, cs 341, I think that is probably a good indicator you may like CO”
CS 341 Final 6 points, 0 comments
u/amolven16: “How did y'all do? View Poll”
Mr Goose has failed me again 53 points, 5 comments
u/UWFoieGrasChef: “Just failed CS341 FUCK MR GOOSE”
Alternatives to CS240 and CS341 open to Honours Math? 12 points, 15 comments
u/Original-Jackfruit12: “2nd year in computational mathematics, really wanna take both these but can’t, are there similar alternatives I can take?”
u/Intelligent-Show-815: “Co353 is somewhat an alternative to cs341”
u/Super_Lettuce6166: “Cs234 is an alternative for cs240 I guess”
u/Organic_Midnight1999: “… I took the harder CS 341 but I didn’t walk out being ready. No course does that for you. All you need is a bit of guidance to understand how to get started and then do your own self study. Especially for technical interviews. …”
Fall 2024 Good Prof Appreciation Thread 69 points, 58 comments
u/Arsh0911: “Trevor Brown for CS341”
Thoughts on Course Load 3 points, 11 comments
u/goose-ctrl: “CS 341 CS 348 CS 349 CS 350 ECON 424 Thoughts on the course load for these 5 courses ?”
u/_spooky_77: “from personal experience (so ymmv), cs349 is pretty free, cs348 is fine as long as david toman isn’t teaching it, cs341 and 350 might be a bit painful (341 was kinda tough for me cus I’m garbage with proofs and don’t grind leetcode), econ424 is easy according to uwflow, I’d say …”
2B CS Course Selection 1 point, 1 comment
“https://preview.redd.it/nosxancxrv3e1.png?width=612&format=png&auto=webp&s=bdbc72fbc91b3301a578a69a84f06dc3a84b12bd Trying to decide which path to go for, mainly looking to maintain a decent GPA, but …”
u/amsyed10385: “Since youre thinking about interviews, I honestly found CS 341 alot more useful for interviews than 240. If you took CS240 during workterm instead of 241 maybe you can fit CS 341 into 3A. CS 348 isn’t really a good course, would prioritize 341/350 over 348. …”
2B CS course selection 2 points, 3 comments
“As of now, these are the classes I am enrolled into: \- CS 245, 246, Math 239, Stat 231 and an elective Could someone walk me through how the term would look like if i go ahead with this option? …”
u/iamanaybaid555: “Your best combination would be: • CS 246 (pre-requisite for CS 241 and CS 240) • CS 251 (pre-requisite for CS 350) • MATH 239 (pre-requisite for CS 341) • CS 245 (pre-requisite for CS 240) • One elective Two reasons for not taking 231 with this would be a heavier workload and no …”
CS135 Withdrawing 4 points, 5 comments
“I barely passed the CS135 midterm and I need a 50% in the final exam to pass the course. Is it doable to get a 50% in the final or should I consider withdrawing?”
u/iamanaybaid555: “… If this ever happens to you again while you're doing CS 136, 246, 240, 341; you'll face it with some experience rather than going in blind. …”
UW Math Viable 2A Courseload? 14 points, 13 comments
“https://preview.redd.it/sewy50msawyd1.png?width=376&format=png&auto=webp&s=164f19f51cf2407d9f633857108cece82aac7e1c”
u/iamanaybaid555: “Are 237 and 235 really time consuming? How are those like”
u/iamanaybaid555: “Okay that sounds very reassuring considering I'll be taking it with CS 350, 341, 346 and 348. I've had a decent bit of practice from 128 and now doing a bit in STAT 231 too but will make sure to brush up on concepts before I head into term to make it a bird course for myself. …”
Calling everyone named Alex (Alex Meetup) 29 points, 10 comments
“Hi everyone, I’m Alex I’m looking to host a meetup for everyone named Alex in Waterloo. I think this could be a great chance to strengthen our community and build new bonds. …”
u/ZealousidealCry1415: “hi im alex. can i take cs 341, 350, 346, math 237 and co 250?”
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