uwloo

CS 136Elementary Algorithm Design and Data Abstraction

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 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)

Corequisites

  • Completed or concurrently enrolled in:
    • CS136L - Tools and Techniques for Software Development (0.25)

Antirequisites

  • Complete all of the following
    • Not completed nor concurrently enrolled in any of the following:
      • CS137 - Programming Principles (0.50)
      • CS138 - Introduction to Data Abstraction and Implementation (0.50)
      • CS146 - Elementary Algorithm Design and Data Abstraction (Advanced Level) (0.50)
    • Not completed any of the following:

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 001616654 / 90TTh 16:00–17:20
LEC 002787690 / 90TTh 10:00–11:20
TUT 101672390 / 90F 14:30–15:20
TUT 102672454 / 90F 14:30–15:20
TST 2016454144 / 180Nov 9 19:00–20:50

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 00157180 / 100TTh 10:00–11:20
LEC 00257610 / 100TTh 11:30–12:50
LEC 00357620 / 90TTh 08:30–09:50
LEC 00457850 / 90TTh 10:00–11:20
LEC 00558270 / 90TTh 11:30–12:50
LEC 00658890 / 90TTh 13:00–14:20
LEC 00759100 / 90TTh 13:00–14:20
LEC 00861910 / 90TTh 14:30–15:50
LEC 00961920 / 90TTh 14:30–15:50
LEC 7012175771 / 9999Online or by arrangement
TUT 10163190 / 100F 08:30–09:20
TUT 10263200 / 100F 08:30–09:20
TUT 10363210 / 90F 08:30–09:20
TUT 10463220 / 90F 08:30–09:20
TUT 10563230 / 90F 08:30–09:20
TUT 10663240 / 90F 08:30–09:20
TUT 10763250 / 90F 08:30–09:20
TUT 10863260 / 90F 08:30–09:20
TUT 10963270 / 90F 08:30–09:20
TST 20157460 / 830Mar 8 19:00–20:50

Resources

Around the web

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

Suggest a resource.

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. …”

View on RedditRemove this

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. …”

View on RedditRemove this

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”

View on RedditRemove this

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.”

View on RedditRemove this

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.”

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/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.”

View on RedditRemove this

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.”

View on RedditRemove this

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.”

View on RedditRemove this

Check it elsewhere for Fall 2026

Calendar versions

Undergraduate Calendar