CS 136Elementary Algorithm Design and Data Abstraction
- 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, 10 lecture sections. Spring 2027: schedule not out yet.
This course builds on the techniques and patterns learned in CS 135 while making the transition to use an imperative language. It introduces the design and analysis of algorithms, the management of information, and the programming mechanisms and methodologies required in implementations. Topics discussed include iterative and recursive sorting algorithms; lists, stacks, queues, trees, and their application; abstract data types and their implementations.
Prerequisites
- Complete 1 of the following
- Must have completed the following:
- CS145 - Designing Functional Programs (Advanced Level) (0.50)
- Earned a minimum grade of 90% in each of the following:
- CS115 - Introduction to Computer Science 1 (0.50)
- Earned a minimum grade of 70% in each of the following:
- CS116 - Introduction to Computer Science 2 (0.50)
- Earned a minimum grade of 60% in each of the following:
- CS135 - Designing Functional Programs (0.50)
- Must have completed the following:
Corequisites
- Completed or concurrently enrolled in:
- CS136L - Tools and Techniques for Software Development (0.25)
Antirequisites
- Complete all of the following
Leads to
Fall 2026 sections
| Section | Class | Enrolled | Meets |
|---|---|---|---|
| LEC 001 | 6166 | 54 / 90 | TTh 16:00–17:20 |
| LEC 002 | 7876 | 90 / 90 | TTh 10:00–11:20 |
| TUT 101 | 6723 | 90 / 90 | F 14:30–15:20 |
| TUT 102 | 6724 | 54 / 90 | F 14:30–15:20 |
| TST 201 | 6454 | 144 / 180 | Nov 9 19:00–20:50 |
Winter 2027 sections
| Section | Class | Enrolled | Meets |
|---|---|---|---|
| LEC 001 | 5718 | 0 / 100 | TTh 10:00–11:20 |
| LEC 002 | 5761 | 0 / 100 | TTh 11:30–12:50 |
| LEC 003 | 5762 | 0 / 90 | TTh 08:30–09:50 |
| LEC 004 | 5785 | 0 / 90 | TTh 10:00–11:20 |
| LEC 005 | 5827 | 0 / 90 | TTh 11:30–12:50 |
| LEC 006 | 5889 | 0 / 90 | TTh 13:00–14:20 |
| LEC 007 | 5910 | 0 / 90 | TTh 13:00–14:20 |
| LEC 008 | 6191 | 0 / 90 | TTh 14:30–15:50 |
| LEC 009 | 6192 | 0 / 90 | TTh 14:30–15:50 |
| LEC 701 | 2175 | 771 / 9999 | Online or by arrangement |
| TUT 101 | 6319 | 0 / 100 | F 08:30–09:20 |
| TUT 102 | 6320 | 0 / 100 | F 08:30–09:20 |
| TUT 103 | 6321 | 0 / 90 | F 08:30–09:20 |
| TUT 104 | 6322 | 0 / 90 | F 08:30–09:20 |
| TUT 105 | 6323 | 0 / 90 | F 08:30–09:20 |
| TUT 106 | 6324 | 0 / 90 | F 08:30–09:20 |
| TUT 107 | 6325 | 0 / 90 | F 08:30–09:20 |
| TUT 108 | 6326 | 0 / 90 | F 08:30–09:20 |
| TUT 109 | 6327 | 0 / 90 | F 08:30–09:20 |
| TST 201 | 5746 | 0 / 830 | Mar 8 19:00–20:50 |
Resources
Around the web
Found by uwloo’s link finder, which checks that each page names CS 136.
- CS 136: Home Course website · student.cs.uwaterloo.ca Remove
- Carmen's CS 136 Resources Page Course website · cs.uwaterloo.ca · from Carmen Bruni’s site Remove
- CS136 | Anthony Zhang Course notes · anthony-zhang.me · posted on r/uwaterloo May 2021 Remove
- CS 136 (Notion page) Course notes · grave-space-21c.notion.site · posted on r/uwaterloo Jan 2024 Remove
- Remove
Past final, 2 PDFs agony.retrocraft.ca · posted on r/uwaterloo Jan 2024
- CS 136 | SCS Other · cs.uwaterloo.ca · posted on r/uwaterloo Dec 2024 Remove
Reviewed on UW Flow
80% liked it57% easy92% useful
From 892 ratings and 199 comments on UW Flow. The most helpful comments, quoted as written, without names. Read them all on UW Flow.
W23: I can't even begin to list how mind-blowingly terrible this course was. This course is a disgrace to Waterloo's faculty of Mathematics. Poorly organized. The first half of the course moved at such a slow pace for the simple content, with unbelievably cancerous (and useless) assignments. I still cannot believe I went to this school to print "stylized X's" in C. The second half of the course introduced some more useful content, but the assignment questions were essentially incomprehensible. I'm genuinely concerned with the writing skills of whoever wrote those problems, because maybe they'd benefit from a Grade 6 English class. Moreover, when you asked a question in the FAQ, they often…
Apr 2023 · didn’t like it · 11 found this helpfulOn UW FlowRemove this
Mere words cannot describe how poorly designed and taught this course is. I would rather drop out and work at mcdonalds for the rest of my life rather than take this course again
Apr 2023 · didn’t like it · 9 found this helpfulOn UW FlowRemove this
in W23, this course was so dogwater god awful underwater coral reef, coffin level graveyard. course content was actually cool, but they ran it so poorly. assignments were writing ascii art for the first half of the course, and then in the later half literally didn't explain the functions you were supposed to write. "refer to the .expect file on how to format the print function" -🤓. Literally made you self learn the whole course, only 1 lecture per week where they don't teach you anything while making shit copypasta modules and braindead assignments. im in 1b and this is definitely the worst course i will ever take in my uni career
Apr 2023 · didn’t like it · 8 found this helpfulOn UW FlowRemove this
W23: Idk why they made us learn everything independently on edX and made the lectures into mediocre tutorials (I think, I did not go to any lecture after the first). Assignments took up to 4-8 hours and in addition to 3ish hours for lab, the workload was quite high.
Apr 2023 · didn’t like it · 5 found this helpfulOn UW FlowRemove this
W23: Yes, CS courses require the most independent work out of most courses in UW, but even when having the utmost respect I can give to everything about this course, I swear this is the worst course in terms of how it's taught, how it's structured, and what professors provide overall (worse than BU 111 and 121 LOL). CS 135 was taught beautifully IMO and the assignment questions were more enjoyable. The silver lining is that you become way more independent, organized, and resourceful, but honestly what comes with that is... P71... and that's all she wrote. I loved Cameron Morland's attitude and straightforwardness in the classroom at least (but speaking of the classroom, 4-5 people attend…
Apr 2023 · liked it · 4 found this helpfulOn UW FlowRemove this
Discussed on r/uwaterloo
3,282 posts and comments in 1,999 threads mention CS 136, 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/Surprised-Egg: “… As far as the other courses go, cs136/cs136l could be really new for you but depending on your programming background/ability you might be able to find it okay. Just start assignments early and get help from office hours and stuff if you're struggling. …”
math to cs transfer 2 points, 4 comments
“Is 95 cs avg good enough to get me transfer to cs?”
u/Whalesftw123: “Next term's cs136 is the most important. Get 95+ and you should be good.”
u/Affectionate-Let-499: “… I will say I'm in the 70s for my first semester, but the way I've been studying for the past few weeks and the stuff I have for cs136 might get me a possible 93. …”
sort of failed cs135 but im enrolled in 136 so what happens? 11 points, 6 comments
u/Ok_Music_9008: “Did you get above 50 but below 60 in CS135? You can also take CS116 and try to get above a 70 average to take CS136 as well if that's what you meant by sort of failed, otherwise you'll prob have to retake 135 next term yea”
u/SoopaChris: “Cs136 prof will drag u to the middle of the mc dc demolition pit and break ur kneecaps then execute u unit 731 style”
Anyone have previous years study modules cs136?? 8 points, 5 comments
u/Responsible-Age-9407: “I know it’s the break and everything, but I have so much free time on my hands and I rllly wanna do good in this course if anyone has the 2023 or recent year course slides for cs136 it would be greatly appreciated if you could message me 🙏🙏”
u/Glum-Protection9912: “look at the textbooks on https://cs.uwaterloo.ca//current/courses/coursedescriptions/cDescr/CS136 The lecture materials all have watermarks with the individual's WATIAM so you could probably only get them from somebody that you know and trusts you. …”
u/Whalesftw123: “The end goal of CS136 is basically to be able to solve leetcode easy's using C. If you can do that you know basically everything you need for the course.”
u/Constant_Reaction_94: “… You could get 100 in cs136 without being able to solve a lc easy.”
Failed a CS course, feeling lost. 18 points, 6 comments
u/RealMrG005e: “Cs135/racket is just a big pile of shit(forgive me), it’s an awkward language. Getting a low mark doesn’t mean anything. Racket is completely different from python and c. You can still do well in next term cs116/136. I got 70ish in 135 and a high 90 in 136.”
CS 136, does anyone know what language it is gonna be in? Is it C? 1 point, 3 comments
u/ApocalypseCalculator: “Search CS136 on Google and look at the course outline”
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/Intelligent-Show-815: “Clearly you are doing something right given you got an 88 and 86 in math 135/7. Take a deep breath because atleast you are not fucked given most students struggle with math more than cs. …”
u/rgtb123: “… So I would be going into my co-op term without cs136. How would all this affect my co-op? …”
u/Fancy_Bear_8352: “… then after that u can either take cs136 during the summer, or just take it on ur second year and ull be caught up w others in terms of classes taken.”
CS 135 to 136 transition 2 points, 3 comments
“Did hella shit on CS 135 (fuck Racket), how much harder or easier is CS 135/136L, is it worth considering dropping down to 116 to boost GPA?”
u/my_copingmechanism: “i did very well in cs135 but was crushed by cs136 😭 plus the labs in cs136l take way too long and aren't even counted towards your gpa. if you didn't do well in cs135 i would not recommend taking cs136, definitely drop down to cs116 instead”
u/CSplays: “CS136 is easier than 135 tbh. Granted you should probably start to get comfortable with recursion.”
How feasible is it to take math136 & cs136 in the summer while on co op? 1 point, 0 comments
I might fail 1A (CS) 35 points, 10 comments
u/Formal_Start_9205: “Im really sorry to hear everything you’re going through. These are extenuating circumstances, so you should speak to the math advisors for the best advice. …”
u/Excellent-Cook-7363: “MAV only counts from CS136.”
Waterloo courseload 1 point, 8 comments
u/MinuteRemarkable9989: “Hello everyone I am going into my 1B math term with these courses MATH136 MATH138 CS136 STAT230 ECON101 (Online) Is this too much for me to do in one term, should I consider switching into lower level CS or should I stay in this schedule.”
Help with Honors Mathematics 1B and 2A term 9 points, 3 comments
u/MinuteRemarkable9989: “… STAT231, MATH237, (CS136 or CS231), and probably an easy elective and maybe stat communications”
u/Dinhbaon: “You can't take the stat communications course (ENGL 378) without stat 331, so take math 235 instead in your 2A. My courses were almost the same as yours except I did CS 136 in 1B and took math 235 in 2A”
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